생성자의 개념
생성자의 이름은 반드시 클래스의 이름과 같아야 합니다.
생성자는 클래스의 객체가 생성될 때, 생성자 안의 코드가 자동으로 실행됩니다.
메소드와 다르게 생성자는 자유롭게 호출할 수 없습니다.
때문에 생성자는 객체의 멤버에 자동으로 초기 값을 설정하는 용도로 사용하는 것이 일반적입니다.
생성자는 리턴 값이 없습니다.
생성자 사용방법
C_constructor 객체를 생성하였습니다.
아무런 함수를 호출하지 않았지만, 객체가 생성되면서 생성자 함수가 호출되었습니다.
이렇게 생성자는 private 의 기본값을 설정하는 대에 사용할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class Constructor {
public static void main(String[] args) {
// TODO Auto-generated method stub
C_constructor cc = new C_constructor();
}
}
class C_constructor
{
private int num;
private String name;
public C_constructor() {
System.out.println ("C_constructor 객체가 생성되었습니다.");
System.out.println ("private 변수값을 초기화 합니다.");
this.num = 0;
this.name = "mozi";
}
}
|
cs |
생성자 또한 public 으로 호출되는 함수 개념입니다.
함수로 볼 수 있기 때문에, 인자타입이나 갯수를 다르게 주면 오버로딩 개념으로 사용할 수 있습니다.
생성자 오버로딩 방법
클래스안에 생성자 인자를 다르게 하면, 여러개의 생성자를 구성할 수 있습니다.
이렇게 여러개의 생성자를 구성하는 방법을 생성자 오버로딩 방법이라고 합니다.
생성자 오버로딩은 메소드 오버로딩 개념과 동일합니다.
생성자의 인자 구분값에 따라, 호출한 인자와 일치하는 생성자 메소드가 호출됩니다.
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
29
30
31
32
|
public class Constructor {
public static void main(String[] args) {
// TODO Auto-generated method stub
C_constructor cc = new C_constructor();
C_constructor cc2 = new C_constructor(1, "blog");
}
}
class C_constructor
{
private int num;
private String name;
public C_constructor() {
System.out.println ("C_constructor 객체가 생성되었습니다.");
System.out.println ("private 변수값을 초기화 합니다.");
this.num = 0;
this.name = "mozi";
System.out.println(this.num + ", " + this.name);
}
public C_constructor(int n, String m) {
System.out.println ("n, m 인자가 있는 C_constructor 객체가 생성되었습니다.");
System.out.println ("private 변수값을 초기화 합니다.");
this.num = n;
this.name = m;
System.out.println(this.num + ", " + this.name);
}
}
|
cs |
자바 생성자
JAVA 생성자
자바 생성자 사용방법
자바 생성자 개념
자바 생성자 오버로딩 방법
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 클래스 라이브러리 원리 (0) | 2020.12.02 |
---|---|
[JAVA] 자바 클래스 변수와 클래스 메소드 ( Static ) (0) | 2020.11.29 |
[JAVA] 자바 오버로딩의 원리 알아보기 (0) | 2020.11.22 |
[JAVA] 자바 Private 와 Public 멤버의 차이 (1) | 2020.11.10 |
[JAVA] 자바 SET, GET 를 사용하는 이유와 예제 (0) | 2020.11.06 |