private : 정보 은닉
캡슐화란 멤버필드를 보호하기 위한 것이다.
객체의 필드와 메소드를 하나로 묶는 것
public class Ex04 {
int age;
String name;
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
}
public class Ex04Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex04 ex = new Ex04();
ex.setAge(15);
System.out.println(ex.age); // 15
ex.age = 20; // 은닉되어 있지 않다.
System.out.println(ex.age); // 20
}
}
public class Ex04 {
private int age;
private String name;
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
public class Ex04Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex04 ex = new Ex04();
ex.setAge(15);
// System.out.println(ex.age);
// ex.age = 20; // 은닉되어 있지 않다.
System.out.println(ex.getAge()); // 15
}
}
멤버 필드를 직접 사용할 수 없는 것을 은닉이라고 한다.
정보 은닉된 멤버 필드를 사용하려면 메소드가 필요하다.
멤버 필드와 메소드를 묶어 캡슐화라고 말한다.
public class Ex02 {
// 캡슐화
// 멤버 필드
private String name;
private double height;
private int age;
private String addr;
// 메서드
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setHeight(double height) {
this.height = height;
}
public double getHeight() {
return this.height;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getAddr() {
return this.addr;
}
}
public class Ex02Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex02 ex = new Ex02();
// 멤버필드를 직접 사용할 수 없는 것을 (정보)은닉이라고 함.
ex.setName("이현경"); // ex.name = "이현경";
ex.setAge(25); // ex.age = 25;
ex.setHeight(156.5); // ex.height = 156.5;
ex.setAddr("경기도"); // ex.addr = "경기도";
System.out.println(ex.getName());
System.out.println(ex.getAge());
System.out.println(ex.getHeight());
System.out.println(ex.getAddr());
System.out.println();
}
}