Language/JAVA

[JAVA] 생성자와 this

gangintheremark 2023. 7. 24. 11:19
728x90

생성자 (Constructor)

생성자는 인스턴스 변수를 초기화 시키는 역할을 한다. new 를 통해 객체의 인스턴스를 생성할 때 반드시 호출이되는 메소드이다.

  • 생성자는 반드시 클래스명과 동일하게 정의한다.
  • 생성자를 생략하면 컴파일러가 자동적으로 기본 생성자를 생성한다.
  • 생성자의 매개변수를 다르게 지정하여 정의하는 것을 생성자 오버로딩이라 한다.
public class Cat { 
    String name;
    int age;

    // 생성자
    public Cat() {  // 클래스명과 동일하게 정의 
    }

    // 생성자2
    public Cat(String name, int age) { // 오버로딩
        this.name = name;
        this.age = age;
    }
}
public class Main{
    public static void main(String[] args){
        Cat c = new Cat("야옹이", 2); // 생성자를 이용한 초기화    
    }
}

this

자바에서 this는 객체 생성 후에 heap 메모리에 생성된 자기 자신의 인스턴스를 가리키는 키워드이다. 다른 클래스에서는 참조변수명을 사용하여 생성된 인스턴스를 참조할 수 있지만, 자신이 참조할 때는this키워드를 사용한다.

 

💡 인스턴스 변수와 로컬변수 명이 동일한 경우 반드시 사용

public class Cat { 
    String name;
    int age;

    public Cat(String name, int age) { 
        this.name = name; 
        this.age = age;
    }
}
728x90