[JAVA] 생성자(constructor)

seonjeong·2023년 1월 4일
0

Java

목록 보기
13/26
post-thumbnail

💖 생성자(constructor)란?

인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'

메서드명은 클래스명과 동일
return value가 없다
overload 가능
class생성시 자동 호출(1번)
별도의 호출 불가능 (!= 초기화)
생략 가능.
없을 경우 컴파일러가 자동적으로 추가해줌(기본 생성자)

💖 형식

클래스이름(타입 변수명, 타입 변수명, ...) {
	// 인스턴스 생성 시 수행 될 코드
    // 주로 인스턴스 변수의 초기화 코드를 적는다
}

💖 예시

수행되는 과정

1. 연산자 new에 의해 메모리(heap)에 BaseClass 클래스의 인스턴스가 생성된다.
2. 생성자 BaseClass()가 호출되어 수행된다.
3. 연산자 new의 결과로, 생성된 BaseClass 인스턴스의 주소가 반환되어 참조변수 bc에 저장된다.

public class Mainclass {
	public static void main(String[] args) {
    	BaseClass bc= new BaseClass();	// 객체생성 bc -> instance
        								// constructor가 실행됨
                                        
    	BaseClass bc1 = new BaseClass(5); 
        BaseClass bc2 = new BaseClass(3, "성춘향");
        
        // bc.BaseClass();		// 별도의 호출 불가능
    }
}

class BaseClass {
	int number;
    String name;
    
    public BaseClass() {	// 매개변수가 없는 constructor
    	System.out.println("BaseClass BaseClass()");
    }
    
    public BaseClass(int num) {		// 매개변수가 있는 constructor
    	System.out.println("BaseClass BaseClass(int num)");
    }
    
    public BaseClass(int num, String na) {	
    	System.out.println("BaseClass BaseClass(int num, String na)");
        number = num;
        name = na;
    }
}

// console
/*
BaseClass BaseClass()
BaseClass BaseClass(int num)
BaseClass BaseClass(int num, String na)
*/
profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보