class Puppy3{
String name; //타입 전역 변수 선언
int age; //타입 전역 변수 선언
//인수가 없는 생성자작성
//타입 전역변수에 "메리" 할당
public Puppy3(){
name = "메리";
}
//String 타입의 인수 1개를 받는 생성자작성
//String 타입 전역변수에 인수 할당
public Puppy3(String val){
name = val;
}
//String 타입의 인수 2개를 받는 생성자작성
//인수2개를 하나의 String으로 만들어
//String 타입의 인수 1개를 받는 생성자에게 인수로 주며 호출
public Puppy3(String val1, String val2){
this(val1 + val2); // 생성자에서 생성자를 호출할때는 first 문장에 기술 }
//boolean 타입의 인수 1개를 받는 생성자작성
//인수를 "쫑"과 붙여 하나의 String으로 만들어
//String 타입의 인수 1개를 받는 생성자에게 인수로 주며 호출
public Puppy3(boolean e){
this(e+"쫑");
}
//char 타입의 인수 1개를 받는 생성자작성
//인수가 없는 생성자를 호출하고
//인수를 int타입으로 변환하여 전역변수에 할당
public Puppy3(char ch){
this();
age = ch;
}
//메소드 printMemberVariable
//리턴 없슴
//전역변수를 출력
public void printMemberVariable(){
System.out.println("이름 : "+name+", 나이 : "+age);
}
}
public class ConstructorOverloadingExam{
public static void main(String args[]) {
//메인메소드에서
//Puppy3 클래스의 각 생성자를 한번씩 이용해 객체 5개 생성
//각 객체의 printMemberVariable메소드를 한번씩 호출
Puppy3 puppy1 = new Puppy3();
Puppy3 puppy2 = new Puppy3("컴퓨터과학과");
Puppy3 puppy3 = new Puppy3("이", "홍관");
Puppy3 puppy4 = new Puppy3(true);
Puppy3 puppy5 = new Puppy3('A');
puppy1.printMemberVariable();
puppy2.printMemberVariable();
puppy3.printMemberVariable();
puppy4.printMemberVariable();
puppy5.printMemberVariable();
}
}
- 결과