Person p1 = new Person();
인스턴스 p1을 기본 생성자로 만든 모습이다.
기본생성자로 인스턴스를 만들경우 인스턴스의 변수에 값을 넣어줄 때
따로 넣어주어야 한다는 단점이 있다.
이렇게
Person p1 = new Person();
p1.setName("SC");
p1.setAge(24);
}
하지만 생성자를 따로 만들어준다면
public Person(String pName, int pAge) {
name = pName;
age = pAge;
}
다음과 같이 정의할 수 있고
만든 생성자를 활용하여 인스턴스 변수에 값을 넣게 된다면
Person p1 = new Person("SC", 24);
}
이렇게 한번에 넣어주는것이 가능하다.
# 생성자 역시 하나의 메소드로 볼 수 있기 때문에 오버로딩이 가능하다.
# 생성자를 하나라도 정의한다면 기본 생성자를 이용할 수 없다.
생성자를 오버로딩 한 모습(파라미터의 개수에 맞추어서 어떤 생성자가 사용될지 정해진다)
자바에서 this는 메소드에서 현재 인스턴스를 가리키는 역할을 한다.
예를 들어
public class Person {
private String name;
...
public void setName(String name) {
name = name;
}
}
setName메소드 파라미터가 name이므로 인스턴스 변수 name과 겹쳐 결과적으로
name=name 꼴의 의미없는 코드가 된다.
이런 경우
public void setName(String name) {
this.name = name;
}
인스턴수 변수 앞에 this.을 붙혀줌으로써
현재의 인스턴스를 가리킨다는 의미을 더해줄 수 있다.