본문 바로가기

인프런 - 백엔드(김영한)/java

접근 제어자

접근 제어자

자바에서 어떠한 데이터나 기능에 접근하는 것을 허용하거나 제한하기 위해 접근 제한자를 사용한다.

접근 제어자의 종류에는 다음 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