캡슐화는 멤버변수에 접근할 수 있는 '통로'를 만들고
그 통로에 안전장치를 하는 개념입니다.
즉 외부에 노출할 필요가 없는 정보들을
캡슐처럼 감싸서 '은닉'하는 기능이라고 할 수 있습니다.
멤버변수를 외부에서 직접 건드릴 수 없도록 'private'를 걸어놓음으로써
캡슐화를 할 수 있습니다.
그러면 private 변수를 외부에 출력하거나 리턴은 어떻게할까요?
바로 getter와 setter기능을 이용해서 하면 됩니다.
getter와 setter 기능을 단축키를 심어서
사용하면 편리한데요.
단축키를 심는 과정입니다.
메뉴 - Window - Preferences - 왼쪽 상단에 'keys' 검색
- 화면 바뀌면 - 중앙 검색란에 'generate'를 검색 - Generate Getters and Setters 선택
- 원하는 단축 키 binding - Apply
getter - setter 함수를 만들어 볼까요?
public class Human {
private String name;
private int age;
private double weight;
클래스에 private로 변수를 선언하고
public Human() {
// TODO Auto-generated constructor stub
}
단축키를 누르면
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void printInfo() {
System.out.println(name);
System.out.println(age);
}
}
이렇게 get함수와 set함수가 생성됩니다.
Human h = new Human();
h.setName("hihi");
h.setAge(-25);
System.out.print(h.getName());
h.printInfo();
main에서 get함수를 사용해서
set함수로 넣은 변수를 불러올 수 있고
set함수를 사용해서 변수를 넣을 수 있습니다.
캡슐화를 함으로써
멤버 변수의 외부 노출을 막을 수 있고
외부에 영향을 주지않아서
유지 보수도 용이하기 때문에
앞으로 private 접근 제어자를 많이 사용할 것 같습니다.
'Java > 이론' 카테고리의 다른 글
[Java] 다형성(Polymorphism) (0) | 2024.12.13 |
---|---|
[Java] 추상화 (abstract) (0) | 2024.12.13 |
[Java] 접근 제어자(Access Modifier) (0) | 2024.12.13 |
[Java] 상속(Inheritance) (0) | 2024.12.12 |
[Java] A has B (0) | 2024.12.12 |