객체지향 프로그래밍 (OOP: Object-Oriented Programming)
우선 중요한 정보가 될 클래스의 멤버 변수를 보통 private 형으로 구현한다.
private String userId;
private String password;
이렇게.
여기서 이 'private' 의 형태를 '접근제어자'라고 한다. 이 접근제어자를 그냥 편하게 'public' 으로 하면 안되나?
public String UserId;
public String password;
-- 이렇게 말이다. 뭐,, 에러는 안난다. 그렇지만 문제가 되기 때문에 Getter와 Setter가 나왔겠지..!
정보 은닉(Information Hiding)과 '캡슐화(Encapsulation)'
-- 중요한 정보를 pubilc으로 외부에서 누구든지 마음대로 접근하고 읽고 쓰는 것이 가능하도록 허용해버리면 데이터가 안전하지 않을 뿐더러, 변수 지정에 중복이 생기거나 하는 경우엔 일관성을 깨뜨려 시스템 성능이 저하되는 문제가 생길 수 있다.
-- 그렇기 때문에 무분별한 값 변경으로 인한 에러 처리를 사전에 방지하고자, 다른 클래스에서 접근 시 내가 허용한 정보만 읽고 변경할 수 있게 정보 은닉(Information Hiding)을 해주는 것. 이것을 '캡슐화(Encapsulation)' 라고 한다.
-- 그럼 이 데이터들을 외부에서 읽거나 변경하고자 할때는 어떻게 해야할까? 위에서 설명하였듯 파라미터를 이용하여 매개 값을 검증해서 유효한 값만 데이터로 저장 이 때 사용하는 것이 바로 Getter 와 Setter이다.
Getter
-- 위에서 기재한 UserId와 password로 예를 들어 Getter를 메소드를 만들어보자면 다음과 같이 할 수 있다.
public String getUserId() {
return userId;
}
public String getPassword() {
return password;
여기서 Fieldname 은 필드 값의 첫번째 글자를 대문자로 바꿔서 'getUserId' 와 같이 써준다.
Setter
public void setUserId(String userId) {
this.userId= userId;
}
public void setPassword(String password;) {
this.password= password;
}
접근 제한자: public
return type: void
메소드명: set+Fieldname
매개변수(parameter) type: 필드의 변수와 동일
* setter 는 값을 변경해주는 메소드이기 때문에 파라미터를 받아 변경해준다. 때문에 return문이 없는 void 형을 사용한다.
-- 자 여기까지 간단하게 Getter 와 Setter 에 대해 정리해 보았다. 객체지향 프로그래밍의 느낌이 어느정도 정리가 되었길 바라며 마무리 하겠다.