접근 제어자의 종류
- private: 모든 외부 호출을 막는다.
- default: 같은 패키지안에서 호출은 허용한다.
- protected : 같은 패키지안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.
- public : 모든 외부 호출을 허용한다.
순서대로 private이 가장 많이 차단하고, public이 가장 많이 허용한다. private -> default -> protected -> public
- private 은 나의 클래스 안으로 속성과 기능을 숨길 때 사용, 외부 클래스에서 해당 기능을 호출할 수 없다.
- default 는 나의 패키지 안으로 속성과 기능을 숨길 때 사용, 외부 패키지에서 해당 기능을 호출할 수 없다.
- protected 는 상속 관계로 속성과 기능을 숨길 때 사용, 상속 관계가 아닌 곳에서 해당 기능을 호출할 수 없다.
- public 은 기능을 숨기지 않고 어디서든 호출할 수 있게 공개한다.
접근 제어자 사용 위치 접근 제어자는 필드와 메서드, 생성자에 사용된다. 추가로 클래스 레벨에도 일부 접근 제어자를 사용할 수 있다.
캡슐화
캡슐화는 데이터와 해당 데이터를 처리하 는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하 거나 제한할 수 있다.
캡슐화는 속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것이다.
문제와 풀이
쇼핑카트`
ShoppingCartMain 코드가 작동하도록 Item , ShoppingCart클래스를 완성해라.
요구사항
- 접근 제어자를 사용해서 데이터를 캡슐화 하세요.
-
해당 클래스는 다른 패키지에서도 사용할 수 있어야 합니다.
package access.ex;
public class ShoppingCartMain {
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
Item item1 = new Item("마늘", 2000, 2);
Item item2 = new Item("상추", 3000, 4);
cart.addItem(item1);
cart.addItem(item2);
cart.displayItems();
}
}
public class Item {
private String name;
private int price;
private int quantity;
//TODO 나머지 코드를 완성해라.
}
public class ShoppingCart {
private Item[] items = new Item[10];
private int itemCount;
//TODO 나머지 코드를 완성해라.
}
'언어 기초 > JAVA' 카테고리의 다른 글
final [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (1) | 2024.09.12 |
---|---|
자바 메모리구조와 static [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (2) | 2024.09.09 |
생성자 [JAVA | 학습을 위한 자료| 김영한 자바 기본] (0) | 2024.06.25 |
참조형 [JAVA | 학습을 위한 자료와 스크립트 | 김영한 자바 기본] (0) | 2024.06.07 |
클래스와 배열 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (0) | 2024.06.05 |