기본생성자와 매개변수가 있는 생성자의 개념과 차이
this 와 this()의 차이
인스턴스 변수를 초기화할 때 사용하는 메서드다.
생성자도 오버로딩이 가능하다.
생성자와 메서드의 차이
1. 생성자의 이름은 클래스의 이름과 같아야 한다.
2. 생성자는 리턴 타입이 없다.
생성자에는 크게 2가지로 구분이 가능하다.
1. 기본생성자(Default Constructor)
2. 매개변수가 없는 생성자
기본 생성자는 매개변수가 없는 생성자를 말한다.
아래 코드를 확인해보자.
DefaultConstructor(){} //매개변수가 없음
모든 클래스에는 하나 이상의 생성자가 있어야 한다.
자신이 속한 클래스에서 다른 생성자를 호출하는 메서드이다.
this()는 생성자 안에서만 사용이 가능하며 생성자의 첫줄에 사용해야 한다.
public class Main {
public static void main(String[] args) {
Example example1 = new Example();
Example example2 = new Example(6);
}
}
class Example {
public Example () {
System.out.println("This is default constructor");
};
public Example (int x) {
this();
System.out.println("This is not a default constructor");
};
/*
This is default constructor
This is default constructor
This is not a default constructor 로 출력된다
*/
아래 코드를 확인해보자.
public class Main {
public static void main(String[] args) {
Profile profile = new Profile("Daeun Kim", "Junior Programmer", 24);
System.out.println("제 이름은 " + profile.getName() + "이고, 직업은 " + profile.getJob() + "입니다.");
}
}
class Profile {
private String name; //인스턴스 변수
private String job;
private int age;
public Profile(String name, String job, int age) { //매개변수
this.name = name;
this.job = job;
this.age = age;
}
public String getName() {
return name;
}
public String getJob() {
return job;
}
}
인스턴스 변수와 매개변수의 이름 중복으로 인한 혼동을 방지할 수 있다.