자바/캡슐화

Algo rhythm·2022년 6월 14일
0

자바

목록 보기
4/6

캡슐화(getter / setter)

캡슐화의 필요성

객체지향 프로그래밍에서 메소드를 통해 데이터를 변경

외부로 데이터를 직접 노출 방지, 메소드를 통한 데이터 접근(보안 및 에러 방지 목적)

규정된 방식 외의 데이터가 입력되는 경우를 방지

setter

  • 외부에서 메소드를 통해 변수를 초기화
  • return 을 가지고 있으며 접근 제어자가 private로 되어있는 변수의 값을 변경 가능

getter

  • 외부 접근 금지인 변수의 값을 메소드를 활용하여 받아오는 방식

캡슐화(setter / getter) 예시

public class Product {
    private String id;
    private String name;
    private int unitPrice;
    private String description;
    private String manufacturer;
    private String category;
    private long unitsInStock;
    private String condition;

    public Product(String id, String name, int unitPrice) {
        this.id = id;
        this.name = name;
        this.unitPrice = unitPrice;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(int unitPrice) {
        this.unitPrice = unitPrice;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public long getUnitsInStock() {
        return unitsInStock;
    }

    public void setUnitsInStock(long unitsInStock) {
        this.unitsInStock = unitsInStock;
    }

    public String getCondition() {
        return condition;
    }

    public void setCondition(String condition) {
        this.condition = condition;
    }
}

이클립스에서 getter / setter 자동 생성

  1. 좌측 상단의 탭 source 혹은 마우스 우클릭 source
    단축키 : Alt + Shift + s
  2. generate getters and setters
profile
배운 건 써 먹자

0개의 댓글