(Java) 생성자

Jayden·2023년 2월 23일

Java

목록 보기
13/35

생성자

인스턴스가 생성될 때마다(new 연산자로 클래스로부터 객체를 생성할 때) 호출되는 인스턴스 초기화 메서드
(=> 초기화란? 객체를 만들고, 원하는 값으로 세팅 한 것!)

생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없다.

new 연산자에 의해 생성자가 성공적으로 실행되면 힙 heap 영역에 객체가 생성되고 객체의 번지가 리턴된다(주소값이 복사된다). 리턴된 번지(주소)는 클래스 변수에 저장된다.

	Time t = new Time();  		// *** t는 클래스 변수 ***

//   <<인스턴스 변수>>
	int hour;
	int minute;
	int second;


	t.hour = 12;			    // .으로~ 생성된 객체를 호출 + hour 매개 변수(메소드)를 호	출하여
								// 12의 값으로 초기화 했다는 의미!!!
	t.minute = 34;
	t.second = 56;

	TV를 원하는 시간 '12시 34분 56초' 으로 초기화 한 것이다.
	(객체를 만들고 _원하는 값으로 세팅 한 것_)

	=> Time t = new Time(12,34,56); 
	// 생성자 호출한 것 (=생성자 사용한것 = 일 시킨 것)

생성자의 생성 조건

  1. 생성자의 이름은 클래스의 이름과 같아야 한다.
  2. 생성자는 리턴 값이 없다.(void 안붙임)
  3. 모든 클래스는 반드시 생성자를 가져야 한다.

기본 생성자

  • 매개변수가 없는 생성자
  • 생성자가 하나도 없을 때만, 컴파일러가 자동으로 추가해준다.
    (클래스를 생성할 때 생성자를 생략하면 기본 생성자가 자동으로 추가된다)

class Car {
		
		String color;
		String gearType;
		int door;
		
		
		Car(){ } 								       // 기본 생성자
		 
		Car(String color, String gearType, int door){  // 매개변수 생성자
			this.color = color;
//            	   ㄴ>필드  ㄴ>매개변수 
			this.gearType = gearType;
//                 ㄴ>필드     ㄴ>매개변수 
			this.door = door;
// 				  ㄴ>필드  ㄴ>매개변수 
		}
	}
    

생성자 this( )

  • 생성자의 이름으로 클래스이름 대신 this를 사용한다.
  • 한 생성자에서 다른 생성자 호출시 반드시 첫 줄에서만 사용 가능하다.

참조변수 this

  • 인스턴스 자신을 가리키는 참조변수
  • 인스턴스 메서드(생성자 포함)에서 사용 가능
  • 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
this 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다.


this(), this(매개변수) 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.

0개의 댓글