생성자(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 소프트웨어가 주기적으로 삭제한다.(삭제하지 않으면, 메모리 과부하 됨)
'Software Development > Java' 카테고리의 다른 글
[Java] 패키지(Package) 만들기, this로 사용하는 멤버 변수 (0) | 2024.05.31 |
---|---|
[Java] static 사용 방법, 메모리 영역 (0) | 2024.05.31 |
[Java] 함수(Function) / 메소드(Method), 호출하기, void 타입 (0) | 2024.05.31 |
[Java] 배열(Array) - 여러개의 데이터 처리, 배열 선언과 생성, 배열에 값 넣기, 값 access하기, 배열 길이(.length) (0) | 2024.05.31 |
[Java] for/while 반복문 (0) | 2024.05.31 |