무지개 곰
무지개곰의 성장이야기
무지개 곰
250x250
  • 분류 전체보기
    • 블록체인 공부
      • BlockChain
      • Ethereum
    • IT공부
      • Java
      • JavaScript
      • HTML + CSS
      • React
      • 프로그래머스 (TypeScript)
    • 독서
    • 영어 공부
      • 1일 1 작문
      • 영어 짧은 글
    • 홍보
hELLO · Designed By 정상우.
무지개 곰
IT공부/Java

[Java] Java의 캡슐화 이해하기

[Java] Java의 캡슐화 이해하기
IT공부/Java

[Java] Java의 캡슐화 이해하기

2022. 7. 6. 12:00
728x90

캡슐화 이해하기

  • 캡슐화란 무엇인가?
  • 캡슐화 예시

캡슐화란 무엇인가?

싱글톤에서 사용한 것처럼 객체의 변수는 private으로 직접적인 접근을 막고 메서드를 통하여 값을 설정하는 방식을 캡슐화라고 합니다. 변수의 값을 설정하고 불러오는 메서드라고 하여 getter, setter메서드라고도 부릅니다. 이러한 방법을 사용하는 이유는 외부에서 데이터 값에 직접 접근을 막으며 getter와 setter의 조건에 맞추어 값을 설정 혹은 불러올 수 있도록 하여 변수의 값을 보호하기 위해서 사용합니다.


캡슐화 예시

public class Student{
    private studentNum;
    
    public void setNum(int num){
        this.studentNum=num;
    }
    public int getNum(){
        return this.studentNum;
    }
}

public class StudentList{
    public static void main(String[] args){
        Student firstStudent = new Student();
        //firstStudent.studentNum=20; 사용불가능
        firstStudent.setNum(20); //studentNum을 20으로 설정
        System.out.println(first.getNum());//20출력
    }
}

위의 예시와 같이 Student클래스의 studentNum은 private으로 다른 클래스에서의 접근을 막아두었습니다. 따라서 studentNum을 설정하거나 불러오기 위하여 setNum과 getNum메서드를 만들었습니다. 이 두 메서드는 public이기 때문에 StudentList클래스에서 불러와 사용하였습니다. 지금의 코드는 접근만 막아두었고 다른 제약이 없습니다. 하지만 학생의 번호는 양수로 주고 싶기 때문에 setNum메서드를 수정하도록 하겠습니다.

public void setNum(int num){
    if(num<=0){ //입력받는 값이 0보다 작거나 같으면 return
        return;
    }
    this.studentNum=num;
}

setNum의 메서드에 if조건문을 사용하였습니다. studentNum을 설정하려고 하였지만 입력받은 값이 0 혹은 음수라면 return을 만나 종료되어 studentNum의 값이 변하지 않습니다. 캡슐화를 사용하지 않았다면 StudentList클래스에서 studentNum에 직접 값을 입력하여 조건에 부합하지 않는 값도 입력을 시키는 경우가 발생할 수 있지만 이러한 식으로 값의 설정에 조건을 달아주어 코드의 오류를 줄일 수 있습니다.

728x90
저작자표시 비영리 변경금지 (새창열림)
  • 캡슐화 이해하기
  • 캡슐화란 무엇인가?
  • 캡슐화 예시
'IT공부/Java' 카테고리의 다른 글
  • [Java] Java의 객체 배열 이해하기
  • [Java] Java의 배열의 종류와 각각의 배열 이해하기
  • [Java] Java의 싱글톤(singleton) 이해하기
  • [Java] Java의 static 이해하기
무지개 곰
무지개 곰
java solidity react javascript등 프로그래밍 공부 기록

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.