2013년 6월 26일 수요일

(130626) 3일차 ConstructorOverloadingExam.java (3일차 6교시 문제 - 생성자오버로딩 문제)

 - 소스
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();
 }
}


 - 결과