본문 바로가기

java

Getter와 Setter 메소드

1. Setter

 

일반적으로 객체지향 프로그래밍에서는 객체의 필드를 객체 외부에서 접근하지 못하도록 막습니다. 그 이유는 외부에서 마음대로 필드를 변경할 경우 객체의 무결성이 손상되기 때문입니다. 이러한 문제점을 해결하기 위해 객체 지향 프로그래밍에서는 메소드를 통해 필드를 변경하는 방법을 선호합니다. 필드는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도합니다.  그 이유는 메소드는 매개값을 검증해서 유효한 값만 객체의 필드로 저장할 수 있기 때문입니다. 이러한 역할을 하는 메소드가 Setter입니다.

 

2. Getter 

 

외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋습니다. 필드 값을 가공하여 사용해야 하는 경우가 많기 때문입니다. 이런 경우 Getter 메소드를 통해 필드 값을 가공한 후 외부로 전달합니다. 

 

클래스를 선언할 때 가능하다면 필드를 private으로 선언하여 외부로부터 보호하고, Setter, Getter 메소드를 통해 필드 값을 안전하게 사용, 변경하는 것이 좋습니다. 

 

필드 타입이 boolean일 경우에는 Getter는 get으로 시작하지 않고 is로 시작하는 것이 관례입니다. 만약 필드 이름이 'stop'이라면 'isStop'으로 작성하면 됩니다. 

 

+ 이클립스에는 Getter, Setter 메소드를 자동으로 작성해주는 기능이 있습니다. 필드를 선언한 후 [Source] - [Generate Getters and Setters] 메뉴를 선택하면 선언된 필드에 대한 Getter와 Setter를 자동으로 생성시킬 수 있는 대화상자가 실행됩니다.

 

다음 코드의 실행 결과는 0,  0입니다. 

메인 메소드에서 처음 속도를 -50으로 설정하고자 했을 때 세터가 이를 걸러서 0으로 설정해줍니다. 

그 다음 속도를 60으로 변경하고 stop 필드를 Setter로 true로 바꿔주면 속도가 다시 0이 됩니다.

 

'java' 카테고리의 다른 글

다형성  (0) 2021.01.25
메소드 재정의(오버라이딩 Overriding)  (0) 2021.01.24
상속과 super(); + this()  (0) 2021.01.24
java 이클립스 단축키 모음  (0) 2021.01.24
싱글톤(singleton)이란?  (0) 2021.01.24