메서드와 비슷한 기능을 가지고 있는데
굳이 생성자를 사용하는 이유
메서드를 사용하는 경우
Class MemberManagement 에
public Manage(int id, int roomnumber) {} 가 있다면
다른 클래스에서 사용할 때
MemberManagement m = new MemberManagement();
m.Manage(3, 301);
와 같은 방식으로 사용해야 한다면
생성자를 사용하는 경우
Class MemberManagement 에
public MemberManagement(int id, int roomnumber) {} 가 있을 경우
다른 클래스에서 사용할 때
MemberManagement m = new MemberManagement(3, 301);
와 같은 방식으로 사용한다
여기서 메서드의 두 번째줄은 생략해도 compile 오류가 발생하지 않아 잡아낼 수 없지만
생성자를 사용하면 매개변수가 등록되지 않은 경우 compile 오류가 발생하여
적절하게 잡아낼 수 있다 (실수 방지)
그러므로 메서드를 사용하려면 가능한 생성자를 이용하자
또한
생성자를 사용하면 객체지향적 설계에 더 가까워질 수 있다
클래스마다 필요한 권한만 부여하기 좋기 때문이다
생성자에서 this 사용
멤버변수 뿐 아니라 생성자를 호출할 때도 가능하다
생성자(name, age){
this(name, age, 50); }
의 this(name, age, 50); 는 아래의 생성자를 호출한다
생성자(name, age, grade){
this.name = name;
this.age = age;
this.grade = grade;}
단, this()는 생성자 코드의 첫 줄에만 사용 가능하다