1. 클래스 패스클래스 패스란, JVM이 실행하고자 하는 프로그램의 클래스파일이 위치한 경로를 의미한다. 환경변수에 클래스패스를 등록해두면 해당 프로그램의 여러 클래스파일이 여기저기에 위치해도 JVM이 알아서 찾아서 실행 시킬 수 있다. 2. 인스턴스와 객체 용어의 차이점인스턴스란 사례,실제 라는 뜻이다. 어떤 클래스로부터 실체화 되었다는 점을 강조할 때는 인스턴스라는 용어를 사용하고 현실세계의 어떤 객체를 프로그램상에서 표현하기 위해 사용할때는 객체라는 용어를 사용한다. 3. 인스턴스 참조 변수와 인스턴스 생성인스턴스를 생성하면 메모리에 어떤 공간을 차지한다는것이고 그 메모리의 주소를 참조 변수에 갖고 있는것을 의미한다.클래스를 정의하는것은 새로운 자료형을 정의하는것을 의미한다. 4. IEEE754 표..
객체 지향의 4대 특성 캡! 상추다 라고 외우자. 캡슐화상속추상화다형성 캡슐화란 비슷한 속성과 메소드를 하나의 클래스로 묶은것이다. 그리고, 클래스 내부를 외부에 공개하지 않음으로써 외부에서 이 클래스를 맘대로 수정하는 일을 못하게 한다.(정보은닉) 클래스 내부에 접근하는 유일한 방법은 public 메소드를 통한 방법 뿐이다. 이 public 메소드는 클래스를 설계한 사람이 만든것이기 때문에 이 클래스가 설계자가 의도한 대로만 동작하게끔 할 수 있다. 만약 멤버 변수가 private이 아닌 public이어서 정보은닉이 되어 있지 않다면? 객체 외부에서 맘대로 멤버 변수를 수정 할 수 있기 때문에 그 멤버 변수를 이곳 저곳에서 참조하게 되면 유지보수 하기가 굉장히 힘들게 될것이다. 상속이란 부모 클래스의 ..
붕어빵틀과 붕어빵? 컴퓨터 공학과 4학년인 지금.. 그동안 책을 보거나 학교에서 강의를 들을때 클래스와 객체의 관계를 붕어빵틀과 붕어빵에 비유 한것을 많이 보았다. 그때 당시에는 이 비유를 듣고 클래스가 뭐고 객체가 무엇인지 한번에 알 수 있어서 굉장히 좋은 비유라고 생각했다. 하지만, 사실은 이것은 오히려 객체지향을 제대로 이해하는데 방해가 되는 비유이다. 즉, 붕어빵틀(클래스)이 붕어빵(객체)를 만들어 낸다고 배웠었다.우리가 A라는 클래스에서 a라는 객체를 생성할때 다음과 같이 생성한다.(동적 할당)A a = new A();같은 논리로 붕어빵틀 붕어빵 = new 붕어빵틀(); -> 붕어빵틀을 만들었더니 붕어빵이 나왔다 (????) 뭔가 좀 이상하다. 붕어빵틀은 붕어빵을 만들어내는 팩토리이지, 클래스와..
다형성같은 모양의 코드가 상황에 따라 다른일을 하게 되는것. 오버라이딩,오버로딩,업캐스팅의 3가지 예가 존재함. 오버라이딩부모 클래스의 메소드를 자식 클래스에서 똑같은 모양으로 재정의 하는것.같은 모양의 함수가 어느 클래스에 속해있냐에 따라서 다른 일을 하게 되므로 다형성의 한 예이다. 동적 바인딩 부모 클래스형 포인터로 자식클래스를 가리키는 업캐스팅 상황에서 오버라이딩 된 부모 클래스의 메소드를 호출하게 되면 실행시간에 동적으로 자식 클래스의 메소드를 호출하게 되는것을 의미한다.자바에서는 딱히 다른 키워드를 쓰지 않아도 업캐스팅 상황에서 자동적으로 동적 바인딩이 일어나지만,C++에서는 virtual 키워드가 붙은 가상함수에 대해서만 동적 바인딩이 일어난다. class A{ virtual void pri..
아주 잘 정리되어있는 블로그 추상 클래스 -> 추상 클래스에는 이런 이런 기능을 하는 메소드(추상메소드)가 있는데(내용이 없고 선언만 되어있음), 이것을 상속받은 자식 클래스에서 그 내용을 오버라이딩(재정의)해서 구현하게끔 하기 위해서 사용함.-> 좀더 쉽게 말하자면, 추상클래스에는 껍데기만 있는데, 이것을 상속받은 자식 클래스에서 알맹이까지 구현하는것. 1. 인스턴스화 시킬수 없고, 오직 상속의 용도로만 사용된다.2. 반드시 하나 이상의 추상 메소드를 갖는 클래스. 추상 클래스는 일반 메소드도 포함가능하며, 추상 클래스를 상속받는 자식 클래스에서는 반드시 추상 클래스의 추상 메소드를 오버라이딩해야함. 물론, 부모 추상 클래스의 일반 메소드도 자식 클래스에 포함 되어 있음. 인터페이스 -> 추상 클래스의..
업캐스팅이란 부모 클래스의 자료형으로 자식클래스를 가리키는 것이다. 예를 들어 Person이라는 부모 클래스와 이 클래스를 상속받는 Student,Chile,Adult라는 3개의 자식 클래스가 존재한다고 해보자. 이때 Person* p = new Student(); 와 같이 부모 클래스의 포인터로 자식클래스를 가리키는 현상이다. 이렇게 되면 부모클래스 자료형 p로는 Student에 존재하는 public 멤버 중에서 Person의 멤버만 접근이 가능하다. 다운 캐스팅이란 업캐스팅된 p의 자료형을 다시 자식 클래스의 자료형으로 바꿔주는 작업이다. 이때는 명시적으로 형변환을 해줘야 한다. Student* s = (Student)p; //명시적 형 변환 이렇게 될 경우 Student 객체를 Student형 포인..
자바는 자바가상머신이라는 것을 사용한다.자바는 작성된 프로그램을 한번 컴파일 한뒤 인터프리터 방식으로 실행하게끔 설계되어있다. 자바 프로그램의 실행 순서는 다음과 같다.자바로 작성된 프로그램 -> 바이트 코드 -> 인터프리터 방식으로 바이트 코드를 한줄한줄 해석하면서 실행 즉 자바 프로그램은 한번 컴파일 할때 자바 가상 머신이 해석할 수 있는 형태인 바이트 코드로 변형이 되고그 바이트 코드를 자바 가상머신이 한줄한줄 해석하면서(인터프리터방식) 실행시키는 방식으로 진행이 된다.그렇기 때문에 자바 가상 머신만 있다면운영체제나 cpu에 종속적이지 않고 자바로 된 프로그램을 한번 작성하면 어떤 플랫폼에서든지 그 프로그램을 실행 시킬수 있다는 장점이 있다.(c나 c++같은 경우 cpu나 운영체제가 달라지면 같은 ..
- Total
- Today
- Yesterday
- reflow
- server side rendering
- await
- javascript
- react hooks
- rendering scope
- storybook
- state
- design system
- reducer
- props
- webpack
- Babel
- type alias
- promise
- es6
- typescript
- computed
- Action
- async
- hydrate
- mobx
- Next.js
- atomic design
- useRef
- Polyfill
- reactdom
- react
- return type
- useEffect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |