[Java] 생성자(constructor)
생성자(constructor)
class Student3 {
String name;
int[] scores = new int[3];
int total;
float aver;
public Student3(String name, int kor, int eng, int math) { // 생성자
this.name = name;
this.scores[0] = kor;
this.scores[1] = eng;
this.scores[2] = math;
}
public void compute() {
this.total = this.scores[0] + this.scores[1] + this.scores[2];
this.aver = this.total / 3f;
}
public void print() {
System.out.printf("%s, %d, %d, %d, %d, %f \n",
this.name, this.scores[0], this.scores[1], this.scores[2], this.total, this.aver);
}
}
위 예제를 보면 class Student3 안에 public Student3(..){..}라는 메서드가 있는 것을
알 수 있다. 이 메서드는 new Student3(..) 명령어를 써주었을 때 인스턴스가 생성됨과
동시에 호출이 된다. 이런 메서드를 "생성자"라고 한다. 이 메서드 안에 있는 this는
생성된 인스턴스의 주소 값을 가리키며 name과 scores[] 값을 초기화시키고 있는데,
1) 생성자(메서드)의 이름은 반드시 클래스 이름과 같아야 하고
2) 보통 인스턴스 변수의 값을 초기화시키는 코드를 써주는 게 일반적이다.
3) 리턴 타입을 선언하지 않는다.
* main()에서 class Student3 안에 compute() 메서드를 호출시키는 코드
Student3 s = new Student("홍길동", 100, 100, 100);
// 생성자(메서드) 호출, 값 초기화
s.compute();
// 인스턴스의 주소 값이 저장된 s에서 compute()라는 메서드를 찾아 실행한다.
'Programming > java' 카테고리의 다른 글
[Java] 스태틱 블록 (static block), 인스턴스 블록 (instance block), 생성자 (1) | 2017.05.11 |
---|---|
[Java] 클래스 변수의 개념과 예제 (0) | 2017.05.10 |
[Java] 인스턴스 변수의 개념과 예제 (0) | 2017.05.10 |
[Java] 클래스 로딩과 메모리 영역 (stack, heap, method area) (0) | 2017.05.10 |
[Java] 클래스(class) - 인스턴스 메소드 (instance method), this 문법 (0) | 2017.05.10 |