Coding/Java
Constructor
코딩;
2021. 12. 14. 19:50
˙ constructor : 생성자
객체 생성시에 호출.
메소드
클래스 명과 같다
return 값이 없다
overload가 가능하다
생략이 가능하다
별도의 호출이 불가능하다.(여러번 호출 불가)
첫번째값(초기값)을 집어넣기 위해 쓴다**
˙destructor : 소멸자 <- X 안씀(가비지 컬렉터)
public class MainClass {
public static void main(String[] args) {
int[] array = { 11, 22, 33 };
// MyClass[] cls = { 11, "홍길동" }; -> 클래스 내에서 불가능한 형태
// MyClass cls = new MyClass();
// MyClass cls= new MyClass( 1 );
MyClass cls= new MyClass(2, "hello");
System.out.println(cls); // 현재 저장된 heap영역의 주소가 출력!
// cls.MyClass(); -> 다시 별도의 호출이 불가
MyClass t = cls.getThis();
System.out.println(t);
MyClass cls1 = new MyClass();
System.out.println(cls1);
MyClass t1 = cls1.getThis();
System.out.println(t1);
}
}
public class MyClass {
// 멤버변수
int number;
String name;
MyClass() {
System.out.println("MyClass 기본생성자"); // Constructor
this.number = 12;
this.name = "홍길동";
}
MyClass(int num) {
System.out.println("MyClass(int num) 생성자");
}
MyClass(int number, String name) { // 가인수(외부에서 들어오는)의 값을 멤버변수의 값으로 설정하고 싶을때 this
this.number = number; // this. 는 현재 객체가 저장된 heap영역의 주소를 가르키는 포인터임
this.name = name; // this가 안붙은 것은 매개변수이거나 로컬변수로 생각하면 됨
System.out.println("MyClass(int num, String na) 생성자");
// this : 자기참조 -> 현재 객체가 저장되어 있는 주소
}
MyClass getThis() {
return this;
}
}