생성자
- this()
- 자기 자신 클래스의 다른 생성자를 호출하기 위해 사용되는 생성자
- 코드의 간결성(중복코드 제거를 위해 사용)
House.java
package kr.ac.daegu.bsy;
class House {
int price;
String dong;
int size;
String kind;
public House(){
//System.out.println(this보다 앞에서 실행");
this(100,32,"상계동","아파트");
}
public House(int price){
this(price,32,"상계동","아파트");
}
public House(int price,int size){
this(price,size,"상계동","아파트");
}
public House(int price,int size,String dong){
this(price,size,dong,"아파트");
}
public House(int price, int size, String dong, String kind) {
this.price = price;
this.size = size;
this.dong = dong;
this.kind = kind;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getDong() {
return dong;
}
public void setDong(String dong) {
this.dong = dong;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
@Override
public String toString() {
return "House " +
"price=" + price +
", dong='" + dong + '\'' +
", size=" + size +
", kind='" + kind + '\''
;
}
}
ThisConstructorTest.java
package kr.ac.daegu.bsy;
public class ThisConstructorTest {
public static void main(String[] args) {
System.out.println("ConstructorPractice2");
//p.201 ~ p.202
House house1 = new House();
System.out.println(
"house.price = " + house1.price
+ ", house.size = " + house1.size
+ ", house.dong = " + house1.dong
+ ", house.kind = " + house1.kind);
House house2 = new House(300);
System.out.println(
"house.price = " + house2.price
+ ", house.size = " + house2.size
+ ", house.dong = " + house2.dong
+ ", house.kind = " + house2.kind);
House house3 = new House(300,40);
System.out.println(
"house.price = " + house3.price
+ ", house.size = " + house3.size
+ ", house.dong = " + house3.dong
+ ", house.kind = " + house3.kind);
House house4 = new House(300,40,"서초동");
System.out.println(
"house.price = " + house4.price
+ ", house.size = " + house4.size
+ ", house.dong = " + house4.dong
+ ", house.kind = " + house4.kind);
House house5 = new House(300,40,"서초동","빌라");
System.out.println(
"house.price = " + house5.price
+ ", house.size = " + house5.size
+ ", house.dong = " + house5.dong
+ ", house.kind = " + house5.kind);
}
}
ThisConstructor2.java (ThisConstructor.java 메소드화)
package kr.ac.daegu.bsy;
public class ThisConstructorTest2 {
public static void main(String[] args){
System.out.println("ConstructorPractice2");
//p.201 ~ p.202
House house1 = new House();
printHouse(house1); // house의 멤버변수들 값을 출력하는 메소드
House house2 = new House(300);
printHouse(house1);
House house3 = new House(300, 40);
printHouse(house1);
House house4 = new House(300,40,"서초동");
printHouse(house1);
House house5 = new House(300,40,"서초동","빌라");
printHouse(house1);
}
private static void printHouse(House house) {
System.out.println(house.toString());
}
}
'JAVA' 카테고리의 다른 글
JAVA - 람다식(Lamda Expression) (0) | 2022.10.23 |
---|---|
2021-08-13 오후 (File) (0) | 2021.08.13 |
2021-08-13 오전 (File) (0) | 2021.08.13 |
2021-08-11(DateTime) (0) | 2021.08.11 |
2021-08-11(Interface) (0) | 2021.08.11 |