생성자의 조건
1. 생성자의 이름은 클래스의 이름과 같아야 함
2. 생성자는 리턴 값이 없음(void를 사용하지 않음 -> 생략)
Card c = new Card();
//1. 연산자 new에 의해서 메모리(heap)dp CARD클래스의 인스턴스가 생성됨
//2. 생성자 Card()가 호출되어 수행됨
//3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변수 c에 저장됨
``
//BaseClass bc = {1, "박예린"}; 이렇게 초기화가 불가능해서 생성자 이용
BaseClass bc = new BaseClass(); //생성자가 실행되는 부분 -> 객체 생성 옆에 있는 ();
// BaseClass BaseClass() 호출
BaseClass bc1 = new BaseClass(3); //BaseClass BaseClass(int num) 호출
BaseClass bc2 = new BaseClass(3, "박예린"); //호출되는 생성자 : int num, String na
//BaseClass BaseClass(int num, String na) 호출
//bc.BaseClass(); //error -> 별도의 호출은 불가능
}
}
`
//클래스
class BaseClass{
//멤버변수
int number;
String name;
//constructor(생성자)
//없어도 됨. 생략이 가능하지만 값을 넣고싶을 때는 생성자 사용
//overload
public BaseClass() {
System.out.println("BaseClass BaseClass()");
}
public BaseClass(int num) {
System.out.println("BaseClass BaseClass(int num)");
}
public BaseClass(int num, String na) {
System.out.println("BaseClass BaseClass(int num, String na)");
//초기값이 들어감
number = num;
name = na;
}
//메소드
//오버로드 -> 함수이름은 같지만 매개변수로 구분되어 다른함수가 됨
public void method() {
}
public void method(int n) {
}
}