Language/Java
[java] 자바 생성자(Constructor) 와 this
비독개
2020. 4. 19. 13:33
생성자(Constructor)
: 클래스명()
-초기화의 목적이 있다. (객체가 생성될때 자동으로 호출(new 명령어를 만났을때)되며 객체를 초기화한다.)
-메소드와 같은 기능을 가지고 있지만, 리턴이 없으며 리턴타입도 없다.
따라서 메소드라고 부르지않는다.
-인스턴스변수(클래스 내부변수) 초기화를 담당 한다.
-생성자는 중복정의 될 수 있다.(생성자 오버로드)
-생성자를 정의하지 않았을 때에는 컴파일러가 제공하는 생성자가 호출되어진다.(default)
ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class Ex {
private int year;
private int month;
public Ex(){ //생성자 생성(클래스명과 동일)
year = 2020;
month = 4;
}
public void print() {
System.out.println(year + "/" + month);
}
public static void main(String[] args) {
Ex ex = new Ex(); //생성자 호출
ex.print();
}
}
|
<실행결과>
2020/4
this
: 자신을 참조하는 참조변수
-class 메소드 내에서만 사용가능.
-클래스 내에서 자신의 멤버들을 직접 참조 가능.
-클래스 내에서 자기 자신을 참조할 수 있는 유일한 키워드.
ex)
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Ex {
String name; // name : 선언된 변수
int age;
String phone;
public Ex(String name,int age,String phone) {
super(); // ㄴ 입력받은 후, 멤버변수에 저장될 매개변수
this.name = name; //입력받은 후, 멤버변수에 저장될 매개변수
this.age = age;
this.phone = phone;
}
}
|
따라서, this.name 이라는것은, 멤버변수(전역변수)name에 저장된 매개변수 name을 뜻한다.