13. 생성자

thsamajiki·2022년 10월 25일
0

JAVA

목록 보기
12/24

생성자란?

  • 객체가 생성 될 때 초기화 목적으로 실행되는 목적어
  • 객체가 생성되는 순간 자동 호출

생성자의 특징

  • 생성자 이름은 클래스 이름과 동일
  • 생성자는 여러 개 작성 가능(생성자 중복)
public class Circle {
	public Circle() {...} // 매개 변수 없는 생성자
	public Circle(int r, String n) {...} // 2개의 매개 변수를 가진 생성자
}
  • 생성자는 객체 생성시 한 번만 생성
Circle pizza = new Circle(10, "자바피자"); // 생성자 Circle(int r, String n)호출
Circle donut = new Circle(); // 생성자 Circle() 호출
  • 생성자의 목적은 객체 생성 시 초기화
  • 생성자는 리턴 타입을 지정할 수 없음
public void Circle() {...} // 오류. void도 사용 안 됨

생성자의 선언 및 호출

public class Book { String title; String author;

		public Book(String t) { // 생성자
				title = t; author = "작자미상";
		}
		
		public Book(String t, String a) { // 생성자 (매개변수1, 매개변수2)
				title = t; author = a;
		}
		
		public static void main(String [] args) {
		    Book littlePrince = new Book("어린왕자", "생텍쥐페리");
		    Book loveStory = new Book("춘향전");
		    System.out.println(littlePrince.title + " " + littlePrince.author);
		    System.out.println(loveStory.title + " " + loveStory.author);
		}
}

출력 결과

어린왕자, 생텍쥐페리춘향전, 작자미상

기본 생성자

기본 생성자(default constructor)매개 변수 없고, 아무 작업 없이 단순 리턴하는 생성자

class Circle {
public Circle() { } // 기본 생성자 }

디폴트 생성자라고도 불림

기본 생성자가 자동으로 생성되는 경우

클래스에 생성자가 하나도 선언되어 있지 않을 때, 컴파일러에 의해 기본 생성자 자동 생성

public class Circle {
    int radius = 0;
    void set(int r) {
    	radius = r;
    }
    double getArea() {
    	return 3.14 * radius * radius;
    }
    //public Circle() {...} 식의 기본 생성자가 없음.
}

public static void main(String args[]) {
    Circle pizza = new Circle();
    System.out.println(pizza.set(5));
}

기본 생성자가 자동으로 생성되지 않는 경우

클래스에 생성자가 선언되어 있는 경우 컴파일러는 기본 생성자를 자동으로 생성하지 않는다

profile
안드로이드 개발자

0개의 댓글