본문 바로가기
Java

생성자 ( Constructor ) / this

by KDW999 2023. 1. 6.

생성자

ㅡ 인스턴스 생성 때 호출되는 인스턴스 초기화 메서드 / 인스턴스 변수 초기화에 사용

생성자 이름은 클래스의 이름과 동일해야한다.

ㅡ 메서드와 비슷해보이나 생성자는 리턴 값이 없음

** 메서드도 반환타입이 void인 경우 리턴이 없어도 되긴함

 

ㅡ 모든 클래스는 생성자가 반드시 하나 이상 필요 / 따로 생성자를 선언하지 않으면 컴파일러가 자동으로 기본 생성자 생성

// 기본 생성자
클래스명() {}
Juice cola = new Juice("coke", "coca-cola", 200, 1000); // 생성자 매개변수로 인해 인스턴스 생성과 동시에 변수 초기화

Juice 클래스에 있는 String 변수 2개, int 변수 2개의 값을 실행과 동시에 초기화  → 생성자

 

 

class Juice{
	String name;
	String company;
	int kcal;
	int volume;
	
	// 생성자
	// 인스턴스가 생성됨과 동시에 실행됨
	Juice(){
		name = "coke";
		company = "coca-cola";
		kcal = 200;
		volume = 500;
	}
	
	// 오버로딩에 의해서 생성자도 또 사용 가능
	Juice(String name, String company, int kcal, int volume){
		this(); // 또 다른 자신인 Juice() 생성자를 호출하는 거, 이런게 있다라고만 알고있자
		this.name = name; // this.name은 class에서 선언된 인스턴스 변수를 가리킨다.
		this.company = company;
		this.kcal = kcal;
		this.volume = volume;
	}

 

this

ㅡ 생성자의 이름을 클래스 대신 this를 사용

ㅡ 생성자 내에서 다른 생성자 호출할 때는 첫 줄에서만 호출 가능

 

this : 인스턴스 변수를 가리키는 참조변수 / 주소 저장

this(), this(매개변수) : 같은 클래스의 다른 생성자 호출

'Java' 카테고리의 다른 글

HashMap  (0) 2023.01.10
상속 ( Inheritance ) / 오버라이딩 ( Overriding )  (0) 2023.01.09
오버로딩 ( Overloading )  (0) 2023.01.06
메서드 ( Method )  (0) 2023.01.05
인스턴스 변수 / 클래스 변수(static) / 지역 변수  (0) 2023.01.04

댓글