//생성자 소멸자 this키워드
public class MainClass {
public static void main(String[] args) {
//디폴드 생성자, 생성자 자동생성
ObjectClass obj1 = new ObjectClass();
//사용자 정의 생성자
ObjectClass obj2 = new ObjectClass(10);
//사용자 정의 생성자
int[] iArr = {10,20,30};
ObjectClass obj3 = new ObjectClass("java",iArr);
//소멸자
ObjectClass obj4;
obj4 = new ObjectClass();
obj4 = new ObjectClass();
System.gc(); //GC에 의해서 메모리에서 제거될때 호출 , 불른다고 바로와서 삭제하지는 않는다.
//this 키워드
int ints[] = {10,20,30};
ObjectClass obj5 = new ObjectClass(10,"Java", ints);
}
}
public class ObjectClass {
//디폴트 생성자
//객체가 생성될 때 가장 먼저 호출되는 생성자
//개발자가 명시하지 않아도 컴파일 시점에 자동생성
//생성자가없을떄 컴파일시 자동으로 생성된다.
//자동은 잘모르겟고..오류만나옴.. 전구에서 선택하면 되는데..?
public ObjectClass() {
}
//사용자 정의 생성자
//특정 목적에 의해서 개발자가 만든 생성자로, 매개변수에 차이가 있음.
public ObjectClass(int x) {
System.out.println("-- ObjectClass() --");
}
//사용자 정의 생성자
public ObjectClass(String s , int[] iArr) {
System.out.println("-- ObjectClass() --");
System.out.println("s ------> :" + s);
System.out.println("iArr ------> :" + iArr);
}
//this
//한객체안에서 변수선언후 this.~~로하여 현재의 객체를 가리킨다.
public int num;
public String str;
public int[] nums;
public ObjectClass(int i, String s, int[] is) {
System.out.println("UserDefined constructor");
this.num = i;
this.str = s;
this.nums = is;
System.out.println("num = " + num);
System.out.println("str = " + str);
System.out.println("nums = " + nums);
}
@Override
protected void finalize() throws Throwable {
System.out.println(" -- finalize() method --");
super.finalize();
}
}
결과값
-- ObjectClass() --
-- ObjectClass() --
s ------> :java
iArr ------> :[I@7852e922
UserDefined constructor
num = 10
-- finalize() method --
str = Java
nums = [I@4e25154f
'Develop > JAVA' 카테고리의 다른 글
JAVA 데이터 은닉 (0) | 2023.10.21 |
---|---|
JAVA 객체 패키지와 static (0) | 2023.10.21 |
JAVA 객체와 메모리(레퍼넌스) (0) | 2023.10.21 |
JAVA 메서드(선언, 호출, 중복) (0) | 2023.10.21 |
JAVA 객체지향 프로그래밍 (0) | 2023.10.21 |