접근 제어자
자바에서 어떠한 데이터나 기능에 접근하는 것을 허용하거나 제한하기 위해 접근 제한자를 사용한다.
접근 제어자의 종류에는 다음 4가지가 존재한다.
- private: 자기 자신의 class 접근을 제외한 어떠한 접근도 차단.
- default: 자기 자신의 package 접근을 제외한 어떠한 접근도 차단. -> 아무것도 작성 안했을때 사용됨.
- protected: 자기 자신의 package 접근 허용, 상속관계의 접근 허용.
- public: 모든 접근 허용.
클래스에서의 접근 제어자
클래스에서 접근 제어자는 public, default 만 사용 가능하며,
하나의 자바 파일에는 하나의 public 클래스만 존재할수 있고, default 클래스는 무한정 만들 수 있다.
예시
item Class
package access.question;
public class Item {
private String name;
private int price;
private int quantity;
public Item(String name, int price, int quantity){
this.name = name;
this.price = price;
this.quantity = quantity;
}
String getName(){
return name;
}
int getTotal(){
return price * quantity;
}
}
ShoppingCart Class
package access.question;
public class ShoppingCart {
private Item[] items = new Item[10];
private int ItemCount;
private int TotalPrice;
public void addItem(Item item){
if(ItemCount >= items.length){
System.out.println("더이상 담을 수 없습니다.");
return;
}
items[ItemCount] = item;
ItemCount ++;
}
public void displayItems(){
System.out.println("장바구니 상품 출력");
for(int i=0; i<ItemCount; i++){
System.out.println("상품명:" + items[i].getName() + ", 합계:" + items[i].getTotal());
TotalPrice += items[i].getTotal();
}
System.out.println("전체 가격 합:" + TotalPrice);
}
}
ShoppingCartMain Class
package access.question;
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();
}
}
/* 출력되는 값
장바구니 상품 출력
상품명:마늘, 합계:4000
상품명:상추, 합계:12000
전체 가격 합:16000
*/
위의 코드들로 부터 알 수 있듯이, 개발을 함에 있어서 중요한 정보는 private을 통해 숨기고, 사용자가 직접 사용해야하는 정보는 public으로 접근할수 있게 만들어야 한다.
이를 통해 효과적인 개발을 할 수 있다.
'인프런 - 백엔드(김영한) > java' 카테고리의 다른 글
상속 (1) | 2024.11.09 |
---|---|
static / final (0) | 2024.10.25 |
class / 객체 (0) | 2024.10.11 |
배열 (0) | 2024.10.08 |
형변환 (0) | 2024.10.06 |