[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()라는 메서드를 찾아 실행한다.


블로그 이미지

필로그래머

,