안녕들 하시죠!
이번시간에는 Java의 생성자에 대해 알아보겠습니다.
생성자란?
객체가 생성될 때 자동으로 호출되는 메소드로써 객체의 초기화를 위해 실행된다.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Rectangle {
int width;
int height;
public Rectangle() { // 매개변수 없는 생성자
width = 1; // 필드 초기화
}
public double getArea() { // 사각형의 면적 계산 메소드
return width * height;
}
}
|
cs |
위의 코드에서는 Rectangle (사각형)이라는 클래스를 생성해 너비(width)와 높이(height) 필드를 생성했습니다.
그 밑에 public Rectangle() 이라는 생성자를 만들어 너비 필드를 1로 초기화했습니다.
double 형의 getArea() 메소드는 너비와 높이의 곱을 반환해 면적을 계산하는 역할을 합니다.
1
2
3
4
5
6
7
8
9
10
|
public class hello {
public static void main(String[] args) {
Rectangle rec = new Rectangle(); // Rectangle 객체 생성
rec.height = 20; // 높이를 20으로 초기화
double area = rec.getArea(); // 면적을 계산하여 area
System.out.println(area); // 면적 출력
}
}
|
cs |
main문입니다.
객체 생성 후 width 값은 1로 초기화되어있는 것을 그대로 사용하고 height 값을 20으로 초기화하여 사용하는 부분입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.util.Scanner;
class Rectangle {
int width;
int height;
public Rectangle() { // 매개변수 없는 생성자
width = 1; // 필드 초기화
}
public Rectangle(int r, int n) { // 매개 변수를 가진 생성자
width = r; height = n; // 매개 변수로 필드 초기화
}
public double getArea() { // 사각형의 면적 계산 메소드
return width * height;
}
}
public class hello {
public static void main(String[] args) {
Rectangle Rrec = new Rectangle(5, 10); // 객체 생성. r에 5를 n에 10을 넣어 초기화.
double area = Rrec.getArea();
System.out.println(area);
}
}
|
cs |
11번 라인을 보시면 매개변수에 int형 r과 n을 넣었습니다.
main문에서 객체를 생성하고 초기화 할때 그 값을 지정해줄 수 있습니다.
또한, 이러한 경우에 매개변수 없는 기본 생성자를 지우게 된다면 컴파일러가 기본 생성자를 생성하기 때문에 문제는 없습니다.
주의할 점
* 생성자의 이름은 클래스 이름과 동일하다.
* 생성자의 목적은 객체가 생성될 때, 필요한 초기 작업을 위함이다.
* 생성자에 리턴 타입을 지정할 수 없다. 리턴값이 없다고 해서, void를 리턴 타입으로 지정해도 안된다.
* 생성자는 new를 통해 객체를 생성할 때 한번만 호출된다.
* 생성자는 여러 개 작성(오버로딩) 할 수 있다.
매개변수의 개수와 타입만 다르다면, 클래스 내의 생성자를 여러 개 둘 수 있다.
ex) public Rectangle()
public Rectangle(int r, int n)
참고서적 황기태,김효수 「명품 JAVA Programming」
'Java' 카테고리의 다른 글
Java의 == 연산자와 equals 메소드 (0) | 2019.05.13 |
---|---|
Java의 추상 클래스 (0) | 2019.05.11 |
Java의 length필드 사용법 (1) | 2019.04.29 |
Java의 변수와 데이터타입 (Data type) (0) | 2019.04.21 |
JDK & Eclipse 설치 (0) | 2019.04.21 |