생성자
기본 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(); 만으로 객체생성을 할 수 있다
그 이유는 자동으로 생성된 생성자는 매개변수에 어떠한 타입도 가지고 있지 않기 때문이다
하지만 생성자에 개발자가 매개변수의 값을 선언하게되면 객체생성 때 그 값의 타입을 선언해야지만 객체생성이 가능하다
'IT_Web > Java' 카테고리의 다른 글
[Java] 상속자, 은닉변수, super(), this의 활용 (0) | 2020.06.14 |
---|---|
[java] 객체모델링(멤버변수, 매개변수, 로컬변수)활용 및 메서드 (0) | 2020.06.13 |
[Java] 메서드 선언과 호출, 반환형과 무반환형 method 활용 (0) | 2020.06.11 |
[Java] 명령행 매개변수 cmd창에 직접 값넣기 (0) | 2020.06.11 |
[Java] 삼항연산자 (논리연산자, 메서드) 활용법 (0) | 2020.06.10 |