다른 객체에게 자신의 정보를 숨기고 자신의 동작, 기능, 연산만을 통해 접근을 허용하는 것으로, 클래스 외부에서 특정 정보에 접근을 막는다는 의미이다.
※ 객체지향프로그래밍에서는 객체를 설계 할 때 상태정보를 정보은닉 시킨다.
정보은닉 된 정보에 접근하는 방법이다.
값을 저장
private String name;
private int age;
private String phone;
//setter method
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setPhone(String phone) {
this.phone = phone;
}
public class PersoninforHide {
public static void main(String[] args) {
//한 사람의 회원 정보를 저장할 객체를 생성
PersonVO vo = new PersonVO();
vo.setName("홍길동");
vo.setAge(50);
vo.setPhone("010-1111-1111");
값 얻어오기
public class PersonVO{
//getter method
public String getName() {
return name;//this.name
}
public int getAge() {
return age;//this.age
}
public String getPhone() {
return phone;//this.phone
}
}
System.out.println(vo.getName()+vo.getPhone()+vo.getAge());
private으로 정보를 감싸고 생성자를 통해 객체를 초기화 하게 되면 정보를 변경할 수 없다.(정보은닉)
public class PersonVO{
private String name;
private int age;
private String phone;
//생략된 생성자 메서드가 있다. => 기본 생성자
public PersonVO() {
//객체를 생성하는 코드는 내부에서 만들어진다.
//객체의 초기화를 한다.
this.name = "홍길동";
this.age = 50;
this.phone = "010-1111-1111";
}
※ 객체 생성 시 원하는 값으로 초기화하려면 생성자 메서드를 오버로딩해서 초기화 가능
public PersonVO(String name, int age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
- 다른 객체에게 자신의 정보를 숨기고 클래스 외부에서 특정 정보에 접근을 막는다는 의미는 무엇이라고 하는가?
→ private 정보은닉- 정보은닉 된 정보에 접근하는 방법 중 값을 저장하는 메서드를 무엇이라고 하는가?
→ setter 메서드- 정보은닉 된 정보에 접근하는 방법 중 값을 얻어오는 메서드를 무엇이라고 하는가?
→ getter 메서드- 정보은닉 된 정보에 접근하는 방법 중 객체를 초기화를 통해 접근하는 메서드는 무엇인가?
→ 생성자 메서드- 객체가 가지고 있는 값 전체를 문자열 형태로 넘겨주기 위해서 만드는 메서드는 무엇인가?
→ toString 메서드