Software Development/Java

[Java] 생성자(Constructor)란?

Mei99 2024. 5. 31. 14:39

생성자(Constructor)

: 객체(instance = 상태와 동작)가 생성될 때 자동으로 호출되는 메소드, 객체의 초기화를 위해 사용

 

 

 

생성자 특징

- 리턴 타입을 갖고 있지 않다.
- 생성자를 프로그래머가 만들지 않으면, 매개 변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다. 이것을 기본 생성자라 한다.
(생성자를 하나라도 만들었다면, 기본 생성자는 자동으로 만들어지지 않는다)

 

 

 

 

Product 클래스( 클래스를 만드는 쪽)

class : System, Product

instance : p1

public class Product {
	
	// 메모리에 저장할 변수를 만든다! Vs 테이블의 컬럼
	
	// 저장할 변수를 먼저 만들고 나서, 메소드는 나중에 필요에 의해 만든다.
	int number;
	String name;
	
	void printProduct(){
		System.out.println("제품번호 : " + number + ", 제품명 : " + name + " 입니다.");
	}
}

 

 

Product 객체 생성 및 사용(클래스를 사용하는 쪽)

public class ClassTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 클래스를 가지고, 실제로 데이터를 만든다! => 객체 생성
		// 클래스는 틀!  , 객체는 메모리에 생성된 상태!
		// Product() : 생성자, 생성자는 new 키워드 뒤에 온다. 
		Product p1 = new Product();
		p1.number = 1;
		p1.name = "컴퓨터";
		
		// 제품번호 2, TV를 만들자.
		Product p2 = new Product();
		p2.number = 2;
		p2.name = "TV";
		
		//제품번호 : 1, 제품명 : 컴퓨터 입니다.
		p1.printProduct();
		//제품번호 : 2, 제품명 : TV 입니다.
		p2.printProduct();
	}
}

 

 

cpu 과정

Stack의 함수가 끝난 후, 남은  Heap 메모리(number,name)는 garbage collector 소프트웨어가 주기적으로 삭제한다.(삭제하지 않으면, 메모리 과부하 됨)