[Java] 생성자

김제현·2024년 1월 10일

Java

목록 보기
4/13
post-thumbnail

왜 생성자가 필요할까

그냥 생성자는 객체 생성 직후 객체를 초기화하기 위한 특별한 메서드임!

MemberConstruct(String name, int age, int grade) {
     this.name = name;
     this.age = age;
     this.grade = grade;
}
  • 생성자는 메서드와 비슷하지만 다음과 같은 차이가 있다.
    생성자의 이름은 클래스 이름과 같아야 한다. 따라서 첫 글자도 대문자로 시작한다. 생성자는 반환 타입이 없다. 비워두어야 한다.
    나머지는 메서드와 같다.
package construct;
 public class MemberConstruct {
     String name;
     int age;
     int grade;
     
	MemberConstruct(String name, int age) {
    	this(name, age, 50); //변경
	}
    
	MemberConstruct(String name, int age, int grade) {
		System.out.println("생성자 호출 name=" + name + ",age=" + age + ",grade=" +
 grade);
         this.name = name;
         this.age = age;
         this.grade = grade;
     }
}

-this() 를 사용하면 생성자 내부에서 다른 생성자를 호출할 수 있다. 이 부분을 잘 활용하면 지금과 같이 중복을 제거 할 수 있다. 물론 실행 결과는 기존과 같다. 추가로 첫 번째 줄에만 사용할 수 있음

public class Book {
     String title;
     String author;
     int page;
     
	// 기본생성자 
    Book() {
         this("", "", 0);
    }
     
	// title과 author만을 매개변수로 받는 생성자 
    Book(String title, String author) {
         this(title, author, 0);
    }
     
	// 모든 필드를 매개변수로 받는 생성자
	Book(String title, String author, int page) {
         this.title = title;
         this.author = author;
         this.page = page;
    }
}

참고

김영한 - 실전 자바

0개의 댓글