728x90
반응형

생성자

기본 method 형식에서 클래스 변수로 method를 생성한 선언문이다

객체 생성할 때 매개변수 값을 동시에 선언하는 방식으로 식은 다음과 같다.

( 클래스 변수 식별자변수=new 클래스 변수(매서드 변수); )

 

class School{

String name;

School(String n){ name=n; } // 클래스 method 매개변수의 자료형과 타입을 같은 조건일 때 관계가 성립된다

}

 

class Student{

  School school;

  String name;

  Student(String n, School s){ name=n; school=s;

}                                    // 기존 method와는 클래스 이름으로 선언된 것 이외에

                                     // 호출방식과 선언방식이 동일하다

void gotoSchool(){                                             

  System.out.print(name+"이");

  System.out.println(school.name+"학교에간다");

  }

}

 

class T{

  public static void main(String[] args){

  School school1=new School("서울대");             

  School school2=new School("하버드");          

  Student s1=new Student("김상진",school1);       

  Student s2=new Student("김상훈",school2);         

  s1.gotoSchool();

  s2.gotoSchool(); 

  }

}

예로 class A{} 만들었다면 자동으로 A(){} 생성자가 클래스안에 생성되어진다

그래서 기존 A o=new A(); 만으로 객체생성을 할 수 있다 

그 이유는 자동으로 생성된 생성자매개변수에 어떠한 타입도 가지고 있지 않기 때문이다

하지만 생성자에 개발자가 매개변수의 값을 선언하게되면 객체생성 때 그 값의 타입을 선언해야지만 객체생성이 가능하다

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel