728x90
반응형
안녕하세요. 스마트팩토리입니다.
자바 중급 018. this() 생성자에서 다른 생성자 호출에 대해 알아보겠습니다.
1. this() - 생성자에서 다른 생성자 호출
가. this() -
this():
-생성자 호출
-같은 클래스 내에서 다른 생성자를 호출할때 사용
-생성자의 첫 문장에서 사용
-this와 다르다.
나. this() 적용전
<< Relate.java 클래스>>
중간에 주석 부분은 고려하지 않고
기본 생성자와 매개변수가 있는 생성자만 고려해 봅니다.
package ex01;
public class Relate {
private String name;
private int age;
public Relate() {};
public Relate(String name, int age) {
this.name=name;
this.age=age;
}
public void show() {
System.out.println(" 성명: "+this.name+" 나이: " +this.age);
}
}
<< RelateEx.java 실행클래스 >>
c1, c2객체를 생성하여 show()메소드를 실행해 보면
기본 생성자에는 아무런 값이 없어서 기본값으로 초기화되어 출력되고
매개변수가 있는 c2 는 매개변수값에 맞게 출력되었습니다.
package ex01;
public class RelateEx {
public static void main(String[] args) {
Relate c1=new Relate();
Relate c2=new Relate("kim", 25);
c1.show();
c2.show();
}
}
다. this() 적용
매개변수가 없는 기본 생성자에
Relate(){}
--> Relate(){ this("Hong",45)
로 설정하였습니다.
이는 매개변수가 있는
public Relate(String name, int age) {
this.name=name;
this.age=age;
이 부분을 호출한 것입니다. 기본생성자도 매개변수가 있는 생성자의 모양을 그대로 따라서 초기값을 같는 것을 알 수 있습니다.
package ex01;
public class Relate {
private String name;
private int age;
//public Relate() {};
public Relate(String name, int age) {
this.name=name;
this.age=age;
}
public Relate() {
this("Hong",45);
}
public void show() {
System.out.println(" 성명: "+this.name+" 나이: " +this.age);
}
}
출력값을 보면 기본 생성자에 아무런 값이 들어가지 않았음에도 불구하고 기본생성자의 매개변수 값이 매개변수가 있는 생성자 형식을 가지고 출력된 것을 볼 수 있습니다.
매개변수가 있는 생성자를 한번 적어주고 그것을 따라 적용한 방법과 동일한 것을 알 수 있기에 코드를 보다 단순화 할 수 있다는 점이 특징이라 할 수 있습니다.
한꺼번에 보면 이렇습니다.
728x90
반응형
'Java' 카테고리의 다른 글
자바 중급 020. 인스턴스 복사 생성자, 인스턴스 복제 (0) | 2021.09.06 |
---|---|
자바 중급 019. this()- 생성자 , this-참조변수 (0) | 2021.09.06 |
자바 중급 017. 기본 생성자와 매개 변수가 있는 생성자 호출 (0) | 2021.09.04 |
자바 중급 016. 생성자 (constructor), 매개변수가 있는 생성자(파일분리) (0) | 2021.09.03 |
자바 중급 015. 매개 변수가 있는 생성자 (constructor) (0) | 2021.09.03 |
댓글