오버로딩
생성자도 메서드 오버로딩처럼 매개변수만 다르게 해서 여러 생성자를 만들 수 있다. MemberConstruct.java
public class MemberConstruct {
String name;
int age;
int grade;
//생성자 추가
MemberConstruct(String name, int age) {
this.name = name;
this.age = age;
this.grade = 50;
System.out.println("생성자 호출 name = " + this.name + ", age = " + this.age + ", grade = " + this.grade);
}
MemberConstruct(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
System.out.println("생성자 호출 name = " + this.name + ", age = " + this.age + ", grade = " + this.grade);
}
}
ConstructMain.java
public static void main(String[] args) {
MemberConstruct member = new MemberConstruct("user1", 15, 90);
MemberConstruct member2 = new MemberConstruct("user2", 15);
}
=> this.name, this.age
this()
위의 코드에 생성자를 보면 중복되는 부분이 있다.
this.name, this.age를 초기화 해주는 부분이다. 이 부분을 아래처럼 쓸 수 있다.
public class MemberConstruct {
String name;
int age;
int grade;
//생성자 추가
MemberConstruct(String name, int age) {
this(name, age, 50)
System.out.println("생성자 호출 name = " + this.name + ", age = " + this.age + ", grade = " + this.grade);
}
MemberConstruct(String name, int age, int grade) {
this.name = name;
this.age = age;
this.grade = grade;
System.out.println("생성자 호출 name = " + this.name + ", age = " + this.age + ", grade = " + this.grade);
}
}
this()라는 기능을 사용하면 생성자 내부에서 자신의 생성자를 호출할 수 있다.
this() 규칙
this()는 사용하려면 규칙을 지켜야 한다.
- this()는 생성자 코드의 첫줄에만 작성할 수 있다.
=> 오류가 발생하는 것을 확인할 수 있다.
* 인프런 '김영한의 실전 자바 - 기본편'을 참고하여 작성하였습니다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java 기본] 접근 제어자 이해 (0) | 2024.07.05 |
---|---|
[Java 기본] 패키지 (1) | 2024.07.05 |
[Java 기본] 생성자 - 도입 (0) | 2024.07.05 |
[Java 기본] 생성자 (0) | 2024.07.04 |
[Java 기본] 객체란? (0) | 2024.07.04 |