Develop/JAVA

JAVA 객체 생성자 소멸자 this키워드

roalwh 2023. 10. 21. 18:52

 

//생성자 소멸자 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