🦤 JAVA
- 일반 변수 값 할당👉🏻1️⃣ 오직 정수만 담을 수 있는 변수 x 생성. 규칙상 x에 정수 아닌 값이 들어있으면 안 되기 때문.
- 👉🏻2️⃣ x에 기존에 저장되어 있던 쓰레기값이 사라지고 20이 저장된다.
- 초기에는 x에 쓰레기 값인 0이 들어간다.
- 레퍼런스변수 값 할당👉🏻1️⃣ 오직 자동차 리모컨만 저장할 수 있는 변수 a자동차를 만든다.👉🏻2️⃣ 자동차 설계도(클래스)로 자동차 객체를 변수 외! 부! 에 만든다. 자동차 객체는 자신을 조종할 수 있는 리모컨(this)을 가지고 태어난다.👉🏻3️⃣ a자동차 변수에 안에 있는 리모컨의 달리다 버튼을 누른다. 해당 신호가 리모컨과 연결되어 있는 자동차 객체에 전달되어 달리다 기능이 실행된다.👉🏻5️⃣ 달리다 함수. 메서드 (함수).
- 👉🏻4️⃣ 자동차 설계도!, 절대 자동차가 아니다.!!!
- 즉 자동차 객체 만들 때 자동차 리모콘도 같이 만들어진다. 자동차 객체는 자신이 들고 있는 리모컨(this)을 복사해서 반환한다. a자동차 안에 들어있던 쓰레기 리모컨이 진짜 리모컨으로 대체된다.
- `a자동차` 에는 자동차 클래스로 만든 리모콘(쓰레기 리모컨)이 들어가게 된다.
- 상속을 통한 기능 중복 제거👉🏻 A is B 는 A extends B와 같다.
- B안에 들어있는 메서드 A에 복제된다.
- class A extends B {... }
- 메서드 오버라이딩
- 👉🏻즉, 상속받은 부모 클래스의 메서드를 재정의하여 사용하는 것을 의미.
- 💡 오버 라이딩(overriding)이란 상속 관계에 있는 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 같은 시그니쳐를 갖는 메서드로 다시 정의하는 것
- 다중 상속 지원하지 않는 이유
- 💡 GrandFather에 A()라는 메서드가 있어서 FatherA와 FatherB에서 오버 라이딩해서 구현했다고 생각해보자. 이러면 Son 입장에서는 A() 메서드를 호출 했을 때 누구의 메소드를 가져다 써야 할지 정할 수 없다. 따라서 컴파일도 되지 않는다.
- 클래스 👉🏻 할 수 있는 것 3가지
- 객체 생성
- 리모컨 생성
- 리모콘 변수 생성
- 메서드
- 객체를 만들 때
- ⇒ 실제로 활용할 수 있는 기능
- 리모컨을 만들 때
- 중복
- 객체지향, 디자인 패턴 등의 설계 기법들은 모두 중복 소스코드를 줄이기 위해서 존재함
- 중복을 최대한 지양해야 깔끔한 코드로 나옴 (사실 당연한 사실)
Static
- this를 쓰지 않을 경우에 사용 가능함
- 쓸 수 있는 상황에선 최대한 쓰기
- static을 붙이면 객체를 new 하지 않고 바로 쓸 수 있음
'Spring & Java > Programming' 카테고리의 다른 글
6. 핵심원리 기본편 (0) | 2022.08.02 |
---|---|
5. 개념 (0) | 2022.07.18 |
4. 스프링 웹 개발 기초 (0) | 2022.07.14 |
3. Java (TDD, GCC) (0) | 2022.07.14 |
2. 객체지향 Java (0) | 2022.07.14 |