(객체지향 프로그래밍)캡슐화

Backend kwon·2023년 4월 18일

캡슐화

  • 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것

목적

  • 데이터 보호의 목적

  • 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출을 방지

  • 정보 은닉(data hiding)

 

패키지

  • 특정한 목적을 공유하는 클래스와 인터페이스의 묶음

  • 계층 구조 간 구분은 점(.)으로 표현

  • 소스 코드의 첫 번째 줄에 반드시 package 패키지명이 표시

 

import문

  • 다른 패키지 내의 클래스를 사용하기 위해 사용

import 패키지 명.클래스 명; 또는 import 패키지 명.*;

 

제어자(Modifier)

  • 클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여하는 키워드

  • 하나의 대상에 대해서 여러 제어자를 사용할 수 있다.
    하지만, 각 대상에 대해서 접근 제어자는 단 한 번만 사용할 수 있다.

접근 제어자 : public, protected, (default), private
기타 제어자 : static, final, abstract, native, transient, synchronized 등

접근 제어자

  • 접근 제어자를 통해 외부로부터 데이터를 보호하고, 불필요하게 데이터가 노출되는 것을 방지할 수 있다.

private : 동일 클래스에서만 접근 가능
default : 동일 패키지 내에서만 접근 가능
protected : 동일 패키지 + 다른 패키지의 하위 클래스에서 접근 가능
public : 접근 제한 없음

 

getter와 setter

  • 객체지향의 캡슐화의 목적을 달성하면서도 데이터의 변경이 필요한 경우.

  • 즉, private이 포함되어 있는 객체의 변수의 데이터 값을 추가하거나 수정하고 싶을 때 사용

  • 데이터를 효과적으로 보호하면서도 의도하는 값으로 값을 변경하여 캡슐화를 보다 효과적으로 달성할 수 있다.

setter

  • setter 메서드는 외부에서 메서드에 접근하여 조건에 맞을 경우 데이터 값을 변경할 수 있게 해줌
  • 일반적으로 메서드명에 set-을 붙여서 정의

getter

  • 설정한 변수값을 읽어오는 데 사용하는 메서드

즉, setter 메서드를 사용하여 이름, 나이, 아이디 등에 대한 데이터값을 저장하고, getter 메서드를 통해 해당 데이터 값을 불러와 변수에 담아 출력하는 것이다.

profile
백엔드개발자를 향해서

0개의 댓글