YSHUSH

Constructor 본문

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;
	}
}

'Coding > Java' 카테고리의 다른 글

Encapsulation  (0) 2021.12.14
Class 예제  (0) 2021.12.14
OOP(Object Oriented Programing)  (0) 2021.12.14
File writer  (0) 2021.12.14
File reader  (0) 2021.12.14