코딩하는 몽구리

생성자(Java) 본문

Java

생성자(Java)

코딩구리 2022. 7. 7. 22:38

생성자 선언 및 활용

생성자는 객체가 생성되는 순간에 자동으로 호출 되는 메소드로서, 객체에 필요한 초기화를 실행하는 코드를 담아야 한다. 

 

package java_study;
	public class Circle{
		int radius;
		String name;
		
		public Circle() {  //매개 변수 없는 생성자
			radius =1; name="";  // 필드 초기화
		}
		
		public Circle(int r, String n) {  //매개변수를 가진 생성자
			radius = r; name = n;		//매개변수로 필드 초기화
		}
		
		public double getArea() {
			return 3.14*radius*radius;
		}
		
	public static void main(String[] args) {
		Circle pizza = new Circle(10, "자바피자"); //객체 생성
		
		double area = pizza.getArea();
		System.out.println(pizza.name + "의 면적은 " + area);
		
		
		Circle donut = new Circle(); //객체생성
		donut.name = "도넛피자";
		area = donut.getArea();
		System.out.println(donut.name + "의 면적은 " + area);
	}
}

출력결과

생성자의 특징 정리 

 

  • 생성자의 이름은 클래스 이름과 동일하다. 
public class Circle{
	public Circle(int r, String n){...}  //생성자
    }
  • 생성자는 여러 개 작성(오버로딩)할 수 있다. 

매개변수의 개수와 타입만 다르다면, 클래스 내에 생성자를 여러 개 둘 수 있다. 

 

  • 생성자는 new를 통해 객체를 생성할 때 한 번만 호출된다.

객체 생성은 new를 통해서 이루어지고, 자동으로 한번만 호출된다. 

 

  • 생성자에 리턴 타입을 지정할 수 없다.

생성자는 어떤 값도 리턴하지 않기 때문에 리턴 타입을 선언해서는 안된다. 하지만, 생성자에서 return문을 사용할 수 없다는 뜻을 아니다. 생성자의 실행을 끝내고자 하면 생성자 코드 내 어디서든 retrun;문 사용이 가능하다. 

 

<예제>

제목과 저자를 나타내는 title과 author 필드를 가진 Book클래스를 작성하고, 생성자를 작성하여 필드를 초기화하라. 

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

예제 출력결과

 

'Java' 카테고리의 다른 글

생성자(constructor)  (2) 2023.11.22
클래스와 객체  (2) 2023.11.22
클래스의 객체 생성 및 활용(Java)  (0) 2022.07.30
다차원배열(Java)  (0) 2022.07.07
자바의 배열  (0) 2022.07.04