POST

JAVA 생성자, 설정자, 접근자

일단 간략하게 예를 들어 설명을 하자면

num이라는 클래스 내에 각각 생성자와 설정자 그리고 접근자가 있다고 한다면

생성자(constructor)는 단순히 Num클래스 의 필드의 초기값을 지정해 주는 것이다.

설정자(Mutator)는 이 초기화된 Num클래스의 필드값을 변경하는것 이다.

접근자(Accessor)는 변경된 필드값을 읽기 위한것이다.


EX)

class Num{

private int x;

}

-------------------------

생성자 : 필드값 초기화

public num(int x) { 

this.x=x;

 }


설정자 : 필드값 변경

public void setX(int x) { 

this.x=x; 

}


접근자 : 필드값 읽기

public int getX() {

 return x; 

}


여기서 생성자와 설정자는 같은 역할을 한다고 볼수 있는데 여기서 많이 햇갈리는 것 같다.

생성자는 객체의 생성과함께 필드의 값들을 사용가능한 상태로 초기화 시켜 준비 하는 역할을 한다.


반면 설정자는 준비완료된 상태의 필드들의 값들을 변경하여 필드의 값들을 연산에 사용하는 것이다.


생성자 메소드(method)의 특징은 클래스와 이름이 같으며 반환값을 지니지 않으며 반드시 이름앞에 public이라는 수식어가 붙어야한다.


설정자 메소드(method)의 특징은 생성자 처럼 반환값을가지지 않는다 하지만 클래스와 이름이 같지 않으며 보통 setMethod처럼 이름에 set을 추가한다.


접근자 메소드(method)의 특징은 반환값을 가지며 매게변수가없고 필드값을 반환하는 역할을 한다. 보통 getMethod처럼 이름에 get을 추가한다.




생성자는 일반적인 생성자와 디폴트 생성자가 있는데

일반적인 생성자는 클래스안에 생성자 메소드가 존재하지만 디폴트생성자는 클래스 내에 생성자 메소드가 없는것을 뜻한다.

클래스에 생성자가 없다면 컴파일러가 자동으로 디폴트 생성자를 만들어 준다.


일반적인 생성자를 호출할때는 아래처럼 작성을 하고 

Number num = new Number(10,20);


디폴트 생성자의 호출은 아래와 같다 

Number num = new Number(); 



객체와 클래스 - 바로가기