constructor
생성자
메소드(함수)
class명과 같은 명칭의 함수
return 값이 없음.
다시 호출할 수 없음. (!= 초기화)
기본 처리를 하는 경우가 많다.
over load가 가능하다.
class를 생성 시에 호출함.
destructor
소멸자
현재는 사용 안함 -> 가비지 콜렉터
import cls.MyClass;
public class MainClass {
public static void main(String[] args) {
// int[] array = new int[5];
int[] array = {1, 2, 3, 4, 5};
// MyClass cls = { 1, "홍길동", 171.2 };
// MyClass cls = new MyClass(1, "홍길동", 172.3, "01/03/05");
/*
MyClass cls = new MyClass();
cls.setNumber(2);
cls.setName("성춘향");
cls.setHeight(157.3);
cls.setBirth("00/05/17");
System.out.println(cls.getHeight());
System.out.println(cls.toString());
*/
// MyClass cls = new MyClass("일지매", 180.2);
MyClass cls = new MyClass();
// cls(); 생성자만 불러오는 것 안됨.
}
}
package cls;
public class MyClass {
private int number;
private String name;
private double height;
private String birth;
// 기본생성자
public MyClass() {
this(1000, "김성일", 172.5, "03/05/19");
System.out.println("MyClass MyClass()");
}
public MyClass(String name, double height) {
this();
System.out.println("MyClass(String name, double height)");
this.name = name;
this.height = height;
}
public MyClass(int number, String name, double height, String birth) {
System.out.println("MyClass(int number, String name, double height, String birth)");
this.number = number;
this.name = name;
this.height = height;
this.birth = birth;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
@Override
public String toString() {
return "MyClass{" +
"number=" + number +
", name='" + name + '\'' +
", height=" + height +
", birth='" + birth + '\'' +
'}';
}
}