[JAVA] 생성자

이현경·2021년 4월 16일
0

JAVA

목록 보기
26/77
  • 생성자
    new 연산자에 의해 호출되어 객체의 초기화를 담당

public class Ex04 {

	String name;
	int age;
	double height;
	
	// 클래스 명과 이름이 같은 메서드
	public Ex04() {}	// 생성자
	public Ex04(String name, int age, double height) {
		this.name = name;
		this.age = age;
		this.height = height;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	public int getAge() {
		return this.age;
	}
	
	public void setHeight(double height) {
		this.height = height;
	}
	
	public double getHeight() {
		return this.height;
	}
}

public class Ex04Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 객체 생성 후에 멤버 필드에 값을 저장
		Ex04 ex = new Ex04();	// 객체 생성
		ex.setName("이현경");
		ex.setHeight(156.5);
		ex.setAge(25);
		
		System.out.println(ex.getName());
		System.out.println(ex.getAge());
		System.out.println(ex.getHeight());
		System.out.println();
		
		Ex04 ex1;	// 객체변수 선언
		ex1 = new Ex04();	// 객체 생성
		
		// 객체가 만들어 질 때 멤버 필드에 값을 저장
		Ex04 ex2 = new Ex04("이슬기", 25, 162.0);
		System.out.println(ex2.getName());
		System.out.println(ex2.getAge());
		System.out.println(ex2.getHeight());
		System.out.println();
	}

}

개발자가 직접 생성자를 만들 경우 default 생성자는 생성되지 않는다.
따라서 default 생성자가 필요하다면 직접 명시해야 함

생성자의 이름은 같고, 매개 변수의 개수나 타입이나 순서가 다른 것을 오버로딩 이라고 한다.



public class Ex08 {

	String name;
	int age;
	double height;

	public Ex08() {}
	public Ex08(String name, int age, double height) {
		this.name = name;
		this.age = age;
		this.height = height;
	}
	
	public Ex08(String name, double height, int age) {
		this.name = name;
		this.age = age;
		this.height = height;
	}
	
	// 생성자의 이름은 같고, 매개 변수의 개수나 타입이나 순서가 다른 것을 오버로딩 이라 한다. 
	public Ex08(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public Ex08(int age, double height) {
		this.age = age;
		this.height = height;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	public int getAge() {
		return this.age;
	}
	
	public void setHeight(double height) {
		this.height = height;
	}
	
	public double getHeight() {
		return this.height;
	}
}

  • this 생성자
    this() (생성자)는 생성자에서 다른 생성자를 호출할 때 사용한다.

public class Ex09 {

	String company;
	String model;
	String color;
	int maxSpeed;
	
	public Ex09(String company, String model, int maxSpeed) {
		this(company, model);	// 공통인 속성을 갖고있는 생성자 호출
		this.maxSpeed = maxSpeed;
	}
	
	public Ex09(String company, String model, String color) {
		this(company, model);
		this.color = color;
	}
	
	public Ex09(String company, String model) {
		this.company = company;
		this.model = model;
	}
	
	public void setCompany(String company) {
		this.company = company;
	}
	
	public String getCompany() {
		return this.company;
	}
	
	public void setModel(String model) {
		this.model = model;
	}
	
	public String getModel() {
		return this.model;
	}
	
	public void setColor(String color) {
		this.color = color;
	}
	
	public String getColor() {
		return this.color;
	}
	
	public void setMaxSpeed(int maxSpeed) {
		this.maxSpeed = maxSpeed;
	}
	
	public int getMaxSpeed() {
		return this.maxSpeed;
	}
}
profile
25. 컴퓨터학과 졸업 / SQLD, 정보처리기사 취득

0개의 댓글