생성자와 this

송성빈·2024년 1월 6일
post-thumbnail

생성자

  1. 객체가 생성될 때 초기화 목적으로 실행되는 메소드
  2. 객체가 생성되는 동시에 호출된다.
public class ClassName {
	//기본 생성자 자동 생성
	public ClassName() {
    }
}

특징

  1. 클래스의 이름과 같다.
  2. 오버로딩처럼 여러개를 정의할 수 있지만 하나만 호출된다.
  3. 반환타입을 지정할 수 없다.
  4. 직접 정의한 생성자를 반드시 호출해야 되기 때문에 필수값 입력을 보장할 수 있다.
    • 생성자를 호출하지 않으면 컴파일 오류가 발생한다.
  5. 클래스에 생성자가 없으면 자바 컴파일러는 매개변수가 없고, 작동하는 코드가 없는 기본 생성자를 자동으로 만들어준다. (생성자가 하나라도 있으면 기본 생성자를 만들어 주지 않는다.)

this

  1. 멤버변수와 매개변수의 이름이 같을 때 구분하기 위해서 쓴다.
  2. static 메소드에서는 사용할 수 없다.
public class Student {
	String name;
    int age;
    int grade;
    
    public Student(String name, int age, int grade) {
		this.name = name; // this.멤버변수 = 매개변수;
        this.age = age;
        this.grade = grade;
	}
}

this()

  1. 생성자 내부에서 자신의 생성자를 호출하여 중복을 제거할 수 있다.
  2. 생성자 코드의 첫줄에만 작성할 수 있다.
    public class Student {
    	String name;
       int age;
       int grade;
       
       public Student() {
       }
       
       public Student(String name) {
       this(name, 0, 0);
       }
       
       public Student(String name, int age) {
       	this(name, age, 0);
       }
       
       public Student(String name, int age, int grade) {
    		this.name = name;
           this.age = age;
           this.grade = grade;
    	}
    }

0개의 댓글