자바의 접근 제한자(Access Modifier)

2022. 4. 28. 09:30·Study/Java
728x90
반응형

오랜만에 Java에서의 접근 제한자(Access Modifier)라는 녀석을 소개해보겠다.

 

먼저 접근 제한자가 생긴 이유에 대해 생각해보자.

흔히 자바는 대표적인 OOP(Objective Oriented Programming) 객체 지향 프로그래밍이라고 한다.

 

정보은닉을 통해 외부에서는 기능만을 사용하고 안에 있는 값들은 마음대로 건드리지 못하게 하는 것이 기본이다.

 

접근제한자의 4가지 종류를 보안이 강한 순서대로 나열해보겠다.

 

1. private

2. (default)

3. protected

4. public

 

먼저 private 접근 제한자는 보안이 가장 강력한 녀석이다.

이 접근 제한자가 붙어있는 멤버변수(필드), 멤버함수(메소드)는 본인 클래스 내부에서만 접근이 가능하다.

 

두 번째로 default 접근 제한자는 ()를 포함해두었다. 왜 그랬을까?

기본적으로 접근 제한자를 명시하지 않으면 default 접근 제한자로 적용된다.

이 접근 제한자가 붙어있다면 같은 패키지 안에서는 객체 외부에서 .연산자로 접근이 가능하다.

당연히 다른 패키지에서는 접근이 불가능하다.

 

세 번째로 protected 접근 제한자이다. 이 녀석은 default 접근 제한자와 거의 똑같다.

다른 패키지에서는 접근이 불가능하다. 하지만, 상속 관계라면 접근이 가능하다.

 

마지막으로 public 접근 제한자이다. 예상하다시피 어디에서나 .연산자로 접근이 가능하다.

 

중간 정리를 하자면 기본적으로 객체지향프로그래밍에서는 정보은닉은 중요한 개념이다.

데이터, 즉 멤버변수는 기본적으로 private으로 설정하고 멤버함수(메소드)는 기본적으로 public으로 설정한다.

 

이 때 멤버변수에 값을 설정하거나 설정된 값을 가져오려면 Setter와 Getter 메소드가 필요하다.

 

이 둘은 말 그대로 설정하고 가져오는 메소드이다.

 

private String name;

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

public String getName() {
	return name;
}

위 코드처럼 구현될 수 있다.

 

하나의 멤버변수가 있고 여기에 2개의 Getter, Setter 메소드가 있다.

 

다음 글은 생성자에 관해 올려보도록 하겠다.

728x90
반응형
저작자표시 (새창열림)

'Study > Java' 카테고리의 다른 글

static 키워드  (0) 2022.05.01
자바의 생성자(Constructor)  (0) 2022.04.29
자바의 변수 종류  (0) 2022.03.25
자바에서의 메소드 - 2  (0) 2022.03.22
자바에서의 메소드  (0) 2022.03.10
'Study/Java' 카테고리의 다른 글
  • static 키워드
  • 자바의 생성자(Constructor)
  • 자바의 변수 종류
  • 자바에서의 메소드 - 2
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • Dev experience (86) N
        • Android (85) N
        • Kotlin (1)
      • Study (62)
        • Kotlin (26)
        • Swift (17)
        • Java (19)
      • 프로그래머스 (68)
      • 주저리주저리 (22)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    Kotlin
    viewModelScope
    getNumericValue
    jetpack
    Material
    티스토리챌린지
    SWIFT
    ios
    programmers
    오블완
    ViewModel
    자바
    databinding
    Observer
    room
    코틀린
    프로그래머스
    LiveData
    스위프트
    android
    MVVM
    CodeLab
    aac
    배열
    안드로이드
    daterangepicker
    PCCE
    코루틴
    coroutines
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
자바의 접근 제한자(Access Modifier)
상단으로

티스토리툴바