유수봉 교수의 자바 프로그램 9주차 생성자
3751 단어 유수봉 교수의 자바 프로그램유수봉 교수의 자바 프로그램
- 오늘은 자바의 생성자에 대해서 알아보도록 하겠습니다.
생성자?
- 생성자는 객체가 생성될 때 객체의 초기화를 위해 실행되는 메소드다. 이러한 생성자는 자바, C++, C#, Python 등의 모든 객체 지향 언어에 존재한다.
생성자의 선언 및 활용 방법
- 생성자는 객체가 생성되는 순간에 자동으로 호출되는 메소드로서, 객체에 필요한 초기화를 실행하는 코드를 담아야 한다.
// 생성자 작성 및 활용 예제
public class Circle {
int radius;
String name;
// 생성자 이름은 클래스 이름과 동일하다.
public Circle() { // 매개변수 없는 생성자
radius = 1; name = ""; // 필드 초기화
}
// 생성자는 리턴 타입 없음
public Circle(int r, String n) { // 매개변수를 가진 생성자
// 생성자는 radius와 name 필드 초기화
radius = r; name = n; // 매개변수로 필드 초기화
}
public double getArea() {
return 3.14 * radius * radius;
}
public static void main(String[] args) {
Circle pizza = new Circle(10, "자바피자"); // 객체 생성. 반지름을 10으로, 이름을 "자바피자"로 초기화
double area = pizza.getArea();
System.out.println(pizza.name + "의 면적은 " + area);
Circle donut = new Circle(); // 객체 생성. 반지름을 1, 이름을 ""로 초기화
donut.name = "도넛피자"; //이름 변경
area = donut.getArea();
System.out.println(donut.name + "의 면적은 " + area);
}
}
실행 결과
- 생성자의 이름은 반드시 클래스의 이름과 동일하게 작성해야 한다.
public class Circle { // 클래스 이름 Circle
public Circle(int r, String n) {....} // 생성자 Circle
}
생성자는 여러 개 작성(오버로딩)할 수 있다.
- 매개변수의 개수와 타입만 다르다면, 클래스 내에 생성자를 여러 개 둘 수 있다. Circle 클래스 역시 매개변수의 개수가 다른 2개의 생성자가 작성되어 있다.
public class Circle {
public Circle() {...} // 매개변수 없는 생성자
public Circle(int r, String n) {...} // 2개의 매개변수를 가진 생성자
}
생성자는 new를 통해 객체를 생성할 때 한 번만 호출된다.
- 객체 생성은 반드시 new를 통해서만 이루어지며, 생성자는 이 때 자동으로 한번만 호출된다. 즉, 호출하고 싶을 때 아무 때나 호출할 수 있는 메소드가 아니다.
Circle pizza = new Circle(10, "자바피자"); // 생성자 Circle(int r, String n) 호출
Circle dount = new Circle(); // 생성자 Circle() 호출
생성자에 리턴 타입을 지정할 수 없다.
- 생성자는 어떤 값도 리턴하지 않기 때문에 아래와 같이 리턴 타입을 선언해서는 안된다.
public Circle() {...} // 리턴 타입을 선언하지 않음
- 또한, 주의할 점은 리턴 값이 없다고 해서 void를 리턴 타입으로 설정하면 안된다.
public void Circle() {...} // 오류. void를 리턴 타입으로 사용할 수 없다.
- 하지만, 생성자에서 return문을 사용할 수 없다는 뜻은 아니며, return문은 실행을 끝내고 호출한 곳으로 돌아가라는 명령이므로, 생성자의 실행을 끝내고자 하면 생성자 코드 내 어디서든 return; 문을 사용하면 된다.
생성자의 목적은 객체가 생성될 때, 필요한 초기 작업을 위함이다.
Circle pizza = new Circle(10, "자바피자"); // 생성자 Circle(int r, String n) 호출
-
위의 객체 생성 문은 Circle 생성자를 호출하여 초기화한다.
-
즉, 생성자는 객체가 생성될 때, 필드 초기화, 필요한 메모리 확보, 파일 열기, 네트워크 연결 등 객체가 활동하기 전에 필요한 초기 준비를 하는데 이용된다.
// 생성자 선언 및 활용 연습
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 littleprince = new Book("어린왕자", "생택쥐페리"); //생성자 Book(string t, String a) 호출
Book loveStory = new Book("춘향전"); // 생성자 Book(String t) 호출
System.out.println(littleprince.title + " " + littleprince.author);
System.out.println(loveStory.title + " " + loveStory.author);
}
}
- 실행 결과
Author And Source
이 문제에 관하여(유수봉 교수의 자바 프로그램 9주차 생성자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dsph9245/유수봉-교수의-자바-프로그램-9주차-생성자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)