자바수업 기록

자바13강 Overriding, Overloading, this 키워드

JadeStone 2022. 10. 7. 17:37

JadeStone의 깃허브( 당일 수업 관련된 자료들은 매일 수업 후에 바로 등록되니 참고하세요!)

https://github.com/BigJadeStone/java-class

 

<어제의 복습>
-기본 타입(primitive type), 참조 타입(reference type) 영어이름까지도 좀 알아두기.

<오늘 수업>

오늘작업한 패키지.

day06 시리즈
Quiz06, 07, 08 

오버라이딩, 오버로딩 키워드 붙은 클래스들 모두.

자바교안 11강
 메서드 재정의(Overriding)
 
-상속의 짝궁이라고 생각하면 됨.
-메서드 재정의란 부모클래스로부터 상속받은 메서드를 자식클래스에서 행위를
 바꾸거나 보완하기 위해 다시 정의해서 사용하는 것을 말합니다.
-이는 부모클래스에서 특별한 용도로 사용하던 메서드를 자식클래스에서 다른
 용도로 사용할 때 필요합니다.
-부모클래스의 모든 메서드가 자식클래스에 맞게 설계되어 있다면 가장 이상적
 인상속이지만, 특정 메서드는 자식 클래스가 사용하기에 적합하지 않을 수도 있
 습니다.
-이 경우 상속된 일부 메서드는 자식클래스에서 재정의하여 사용해야 합니다.
-메서드가 자식클래스에서 재정의되었다면 자식객체를 통해 메서드를 호출했을
 때 새롭게 재정의된 메서드가 호출됩니다.

*메서드 재정의 규칙
1. 반드시 상속을 전제로 해야합니다.
2. 반드시 반환 유형이 같아야 합니다.
3. 메서드 이름이 같아야 합니다.
4. 매개 변수 선언이 정확히 일치해야 합니다.
5. 접근제한자는 같거나 더 제한이 없어야 합니다.(more public) -> 이거는 아직 생각 안 해도 됨.
-이렇게 메서드의 생김새는 똑같이 만들어주고 내용만 바꿔주면 된다.
-오버라이딩된(덮어 씌어진) 메서드가 항상 먼저 실행된다(먼저 튀어나온다.) - 나중에 헷갈리지 않으려면 잘 기억해두기.

오버라이딩이 되었다면 빨간 동그라미 안에 파란색부분에서 저렇게 화살표 모양이 나타난다고 함.



 메서드 중복(Overloading)
 
참고 package: day06.overload
-Overloading은 중복이라는 의미.
- 자바는 메서드나 생성자의 중복 선언을 허용합니다.
- 중복은 메서드 또는 생성자를 선언할 때 이름은 같지만 매개 변수의 유형이나 개수
를 다르게 선언해 놓는 것을 의미합니다.
- 중복을 사용하면 하나의 메서드로 매개 변수의 유형에 따라 다른 동작이 실행되게
합니다.

 

- 중복의 조건
1. 이름이 같아야 합니다.
2. 접근제한자나 반환유형은 영향을 미치지 않습니다.
3. 매개 변수의 유형이 달라야 합니다.
4. 매개 변수의 개수가 달라야 합니다.
5. 매개 변수의 순서가 달라야 합니다.

그럼 이렇게 중복되어 있는 메서드를 어떤걸 어떻게 실행시키느냐 ?
메서드 이름을 작성하고 각각 매개변수에 알맞은 매개변수값을 넣으면 알아서 해당하는 메서드가 실행됨.

 



자바교안 12강
 this와 super

-자바에서 변수는 가장 가까운 변수를 참조하게끔 되어있다. 이걸 해결해주기 위한 키워드가 바로 this.
-this 나 자신의 주소를 지정하는 키워드.

 #this
 - this는 자기 자신 객체를 지정할 때 사용하는 키워드입니다.
 - this. 을 사용하면 동일 클래스 내의 멤버(멤버변수, 메서드)를 참조할 수 있습니다.
 - this()를 사용하면 생성자 내부에서 자신의 다른 생성자를 호출할 수 있습니다.
 - this () 많이 나오지 않음.

<오늘 기억할 내용>
-import java.util.Scanner;
 package Quiz05; // 아래 임포트 스캐너 구문이 위로 올라오면 에러가 뜸.
 -> 수업 중 발견한 에러. 왜 이러냐면 패키지가 있고 그 안에 스캐너 클래스를 임포트 해와야 하는데
     구문이 임포트가 먼저 와버리면 패키지가 없는 상태에서 어디다가 임포트 해야하는지 모르기 때문에 순서를 

주의해줘야함.


-메서드 작성시. 우리가 평소 main 메서드 안에서 할 수 있었던 모든 것들을 할 수 있다는걸 기억하자.
-생성자는 상속이 안됨. 나 자신을 그냥 갖기만 함. ★★★★★★
- 오버라이딩 (재정의), 덮어씌우는 것.
  오버로딩 (중복)
-현재 메서드(함수) 헷갈리면 절대 안됨. 함수의 호출이 자유로워야됨. 생성자의 호출과 사용도 자유롭게 잘 할 수 있어야     됨.  특히 메서드랑 생성자 헷갈리면 절대 안됨.

 

<오늘 수업 후 해야할 일>
-자바오브젝트 프로젝트 내에 Quiz05에 ACCOUNT 문제 다시한번 살펴보기 내가 뭔가를 잘못 해놓은거같음.
-control 누르고 메서드 이름 누르면 메서드가 어떻게 생겼는지 보여주러 데려감.
-생성자의 연결은 왜 하는걸까 ? 다시 공부하기.
 선생님께 질문해서 듣고나서 정리한 내용 :
 우선 생성자의 사용은. 메인클래스에서 사용하는 것이 아니라.
 객체 클래스 내부에 한 생성자의 안에서 동일 클래스내에 다른 생성자의 내용을 참고하고싶을 때 사용.

 

<프로그래밍 관련 정보>

 inflearn.com

실.무. 에서 몇년 먼저 뛰고있는 친구가 여러가지 강의들을 사서 듣고 있다는 싸이트.
나도 나중에 더 필요한 내용들이 있으면 여기서 강의를 더 구해볼 수 있도록 해야겠다.