개발 공부/Java | SpringBoot

[Java/ChatGPT] Day 5: 클래스의 캡슐화 개념과 Getter/Setter 메서드

dev.jelee 2025. 6. 14. 00:43

[ 학습목표 ]

  1. 캡슐화(Encapsulation)의 개념을 익히고, 데이터를 보호하는 방식 학습
  2. Getter/Setter 메서드를 통해 클래스 내부 데이터에 안전하게 접근
  3. private, public 키워드의 역할과 사용법 숙지

 

[ 이론 ]

1. 캡슐화(Encapsulation)

클래스 내부의 데이터를 숨기고, 메서드를 통해 접근하게 만드는 객체지향의 핵심 원칙

 

2. 관련 키워드

  • private: 외부에서 접근 불가 (정보 은닉)
  • public: 외부에서 접근 가능
  • getXxx(): 필드 값을 안전하게 가져오는 메서드
  • setXxx(): 필드 값을 검증하고 설정하는 메서드

 

3. 왜 사용하는가?

  • 잘못된 값을 직접 넣는 실수를 방지할 수 있음
  • 유지보수와 보안성이 올라감
  • 유효성 검사 등을 setter에서 처리 가능

 

[ 실습 미션 ]

✅ 실습 1: Book 클래스 캡슐화

package day5;

public class Book {
  private String title;
  private String author;

  // 생성자 함수
  public Book(String title, String author) {
    this.title = title;
    this.author = author;
  }

  // getter, setter
  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }
  
  public String getAuthor() {
    return author;
  }

  public void setAuthor(String author) {
    this.author = author;
  }

  public void printInfo() {
    System.out.println("제목: " + title + ", 저자: " + author);
  }
}

 

✅ 실습 2: Main 클래스에서 사용하기

package day5;

public class Main {
  public static void main(String[] args) {
    Book book = new Book("자바의 정석", "남궁성");

    // Getter 사용
    System.out.println("책 제목: " + book.getTitle());

    // Setter 사용
    book.setTitle("Effective Java");
    book.setAuthor("조슈아 블로크");

    // 출력 확인
    book.printInfo();
  }
}

 

 

 

 


[ 메모 ]

  • 캡슐화를 하는 이유: 유지보수와 보안성, 잘못된 값을 저장하는 것을 방지, setter를 통해 유효성 처리 가능
  • 캡슐화란? 클래스 내부의 데이터를 숨기고, 메서드를 통해 데이터에 접근하는 방식
  • 캡슐화에서 사용되는 키워드: private, public
  • private은 외부에서 접근 불가하다. public은 외부에서 접근이 가능하다.
  • private인 경우, getter와 setter를 사용해야한다.
  • get 메서드는 필드 값을 안전하게 가져오고, set 메서드는 필드 값을 검증하고 설정한다.
  • getter, setter 사용 방법 예시는
    • public String getTitle() { return title; }
    • public void setTitle (String title) { this.title = title; }