반응형
SMALL
생성자 오버로딩
생성자의 매개변수의 타입과 개수가 다른 같은 이름의 생성자를 여러 개 반들 수 있다.
public class Person{
String name;
int age;
public Person(){
}
public Person(String name){
this.name = name;
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
생성자 호출
public class Exam{
public static void main(String args[]){
Person c1 = new Person(); // 기본 생성자
Person c2 = new Person("홍길동");
Person c3 = new Person("홍길동", 25);
}
}
여기서 기본생성자를 호출했을 때,
["이름 없음", 0 ]
이라는 값을 넣고 싶다면 어떻게 해야 할까?
1. 기본
public class Person{
String name;
int age;
//변경된 부분
public Person(){
this.name = "이름없음";
this.age = 0;
}
//
public Person(String name){
this.name = name;
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
위의 코드처럼 적어도 문제는 없다.
하지만 this.name과 this.age 부분이 반복되서 나오고 있다.
코딩을 할 때는 반복되는 부분은 줄여주는 것이 좋다.
2. 반복 제거
public class Person{
String name;
int age;
public Person(){
// this.name = "이름없음";
// this.age = 0;
// 변경
this("이름없음", 0);
}
public Person(String name){
this.name = name;
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
여기서 this는 자기 자신을 가리킨다.
그렇기에 this("이름없음", 0)은 Person("이름없음", 0)을 호출하게 된다.
자기 자신의 생성자를 호출함으로써 유사한 코드의 중복을 방지할 수 있다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] JAVA의 기본형 타입 (0) | 2022.09.14 |
---|---|
JAVA 웹 크롤링(Web crawling) (0) | 2021.04.24 |
댓글