본문 바로가기
국비지원/JAVA

[JAVA] 11-3. 생성자(Constructor)

by cosmog 2022. 10. 5.
반응형
생성자(Constructor)
  • new 키워드 다음에 오는 것을 생성자라고 한다.
  • Class이름과 똑같다 + ()  예를 들어, Person()과 같이.
  • return이 없다. 

💡 객체가 생성될 때 객체의 멤버변수를 초기화하는데 사용한다.

💡 생성자는 여러개 만들수 있다, ()가 있기때문에 parameter값을 받을 수도 있다.

생성자에 대하여..

생성자는 method와 헷갈리면 안된다.

앞에 return data type이 없는 것이 생성자.

여러 생성자 사용 (초기화 역할)

package day11;

public class Phone {
	
	String model;
	int price;
	String color;
	
	/*
	 * 생성자
	 * 1. 클래스가 객체로 처음 생성될 떄 불려나가는 친구
	 * 2. 이름은 클래스 명과 동일하다.
	 * 3. 생성자를 만들지 않으면 자동으로 생성해 줍니다. 
	 */
	Phone(){ //**기본생성자 제일 많이 사용된다.**
		System.out.println("생성자 호출됨");
		//생성자의 주된 역할은 멤버변수 초기화 
		model = "iphone8";
		price = 380000;
		color = "pinkgold";
		
	}
	
	//()가 있기때문에 parameter값을 받을 수도 있다.
	Phone(String pModel){//생성자는 여러개 만들수 있다, 단 모형이 달라야 한다.
		model = pModel;
		price = 580000;
		color = "blue";
	}
	
	//생성자 중복 - consturtor overloading이라고 한다.
	Phone(String pModel, int pPrice){
		model = pModel;
		price = pPrice;
		color = "purple";
	}
	
	//자바는 data type을 중시하기 때문에 parameter값을 서로 바꿔서 사용하면 또하나의 생성자로 사용가능하다.
	Phone(int pPrice, String pModel){
		model = pModel;
		price = pPrice;
		color = "silver";
	}
	
	Phone(String pModel, int pPrice, String pColor){ //**모든 멤버변수를 parameter값으로 받는 생성자도 많이 사용된다.**
		model = pModel;
		price = pPrice;
		color = pColor;
	}
	
	void info() {
		System.out.println("===폰의 정보===");
		System.out.println("모델no: " + model);
		System.out.println("가격: " + price);
		System.out.println("색상: " + color);
	}

}
package day11;

public class PhoneMain {
	
	public static void main(String[] args) {
		
		//객체1
		Phone apple = new Phone();
		apple.info();
		
		//객체2
		Phone samsung = new Phone("zFlip");
		samsung.info();
		
		//객체3
		Phone blackberry = new Phone("Q10", 300000);
		blackberry.info();
		
		//객체4
		Phone nokia = new Phone(250000, "Nokia2");
		nokia.info();
		
		// 모든 멤버 변수를 매개변수로 받는 생성자 만들기
		// 초록, 10000, 아이폰을 전달해서 객체 생성
		
		Phone iphone = new Phone("iphone", 10000, "초록");
		iphone.info();
	}

}

 

반응형