반응형
https://mainpower4309.tistory.com/7
은닉화 (encapsulation): 캡슐화
캡슐화란 일반적으로 변수와 클래스를 하나로 묶는 작업이다.
캡슐화의 중요 목적은 중요한 데이터를 보존,보호하기 위해 사용하는 것이다.
객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는데, 객체 데이터를 외부에서 읽고 변경하게 되면 객체의 무결성이 깨질 수 있기 때문이다.
※무결성: 데이터의 정확성과 일관성을 유지하고 보증하는 것
결론적으로, 캡슐화는 클래스에 담는 내용중 중요한 데이터나 기능을 외부에서 접근하지 못하게하기 위해 사용한다고 알아 두면 된다.
- 캡슐화를 하는 방법
멤버 변수(필드) 앞에 접근 제어자 private를 붙여 자기 클래스에서만 접근할 수 있게 만든다.
이로써 각 필드는 다른 곳에서 데이터를 건드릴 수 없게 된다.
그리고 나서 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만들고, 외부에서 메소드를 통해 데이터에 접근하도록 한다. (getter와 setter)
setter
public void set필드명(자료형 필드명) {
this.필드명 = 필드명;
}
getter
public 자료형 get필드명() {
return 필드명;
}
getter와 setter의 호출은 객체 생성 후 메소드 사용하는 것과 똑같이 사용하면 된다.
예시
public class Objcet {
private String name;
private int price;
private int count;
public string getName() {
return name;
}
public void setName(string name) {
this.name = name;
}
public string getPrice() {
return price;
}
public void setPrice(string price) {
this.price = price;
}
public string getCount() {
return count;
}
public void setCount(string count) {
this.name = count;
}
}
public class ObjectTest {
Object ob = new Object();
ob.setName("코카콜라");
ob.setPrice(1000);
ob.setCount(5);
system.out.println("이름 : " + ob.getName());
system.out.println("가격 : " + ob.getPrice());
system.out.println("개수 : " + ob.getCount());
}
※이클립스에서 Source > Generate Getters and Setters... 를 이용하면 더욱 편하게 getter와 setter를 만들 수 있다.
반응형
'Study > JAVA' 카테고리의 다른 글
[JAVA] 객체지향 언어의 특징 정리 (0) | 2021.11.15 |
---|---|
[JAVA] 추상클래스(Abstract class), 인터페이스(Interface) (0) | 2021.11.15 |
[JAVA] 클래스의 구성 멤버 (0) | 2021.11.10 |
[JAVA] 데이터 타입(원시 타입, 참조 타입)과 메모리 사용영역 (0) | 2021.11.08 |
[점프투자바] 07 자바 날개달기 07-1 ~ 3 (0) | 2021.11.07 |