메서드 오버로딩

한 클래스 내의 같은 이름의 메서드를 여러 개 정의하는 것 (오버라이딩과 아무 관련 x)

 

오버로딩의 조건

  1.  메서드 이름이 같아야 한다.
  2.  매개변수의 개수 또는 타입이 달라야 한다.
  3.  반환 타입은 관계 없다.

 

생성자

인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드로 모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야 한다.

연산자 new가 인스턴스를 생성하는 것이지 생성자는 인스턴스를 생성하지 않는다.

클래스에 정의된 생성자가 하나도 없을 때만 컴파일러가 기본 생성자를 제공한다.

 

생성자의 조건

  1.  생성자의 이름 = 클래스의 이름
  2.  리턴 값이 없으나 void를 붙이지 않는다.

 

생성자 this()

생성자에서 다른 생성자를 호출할 때 사용

다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.

class Car2 {
    String color;
    String gearType;
    int door;
    Car2(){
        this("white", "auto", 4); // Car2(String color, String gearType, int door) 호출
    };
    Car2(String color){
        this(color, "auto", 4); // Car2(String color, String gearType, int door) 호출
    };
    Car2(String color, String gearType, int door){
        this.color = color; // this.color(iv) 와 color(lv) 구별
        this.gearType = gearType;
        this.door = door;
    }
}

 

참조변수 this

인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다.

인스턴스 메서드(생성자 포함)에서만 사용 가능 ➡️ 클래스 메서드(static 메서드)에서 사용 불가

지역변수와 인스턴스 변수를 구별하기 위해 사용한다.

위 코드에서 this.color는 String color;로 선언된 인스턴스 변수를 의미하고 color는 매개변수로 받은 지역변수 color를 의미한다.

참조변수 this와 생성자 this()는 아무런 관련이 없다.

'TIL > WEEK2' 카테고리의 다른 글

JAVA3 객체지향 프로그래밍1  (0) 2023.05.25
JAVA 2주차 배열과 컬렉션  (0) 2023.05.24
JAVA 2주차 조건문과 반복문  (0) 2023.05.23
JAVA 1주차  (0) 2023.05.22

+ Recent posts