[Java] 접근 제어 지시자와 get(), set() 메서드

2023. 2. 7. 13:47·Java/Base
728x90
728x90

접근 제어 지시자 (Access modifier)

  - 특정 대상에 대해, 클래스 외부로부터의 접근 권한을 부여하는 명령어

      → 대상 : 변수, 메서드, 함수, 클래스 등 대부분

 

// 예시
private int 변수;

 

접근 제어 지시자
private 같은 클래스 (java 파일) 내부에서만 접근 가능
default (기본값) 같은 패키지 내부에서만 접근 가능
protected 같은 패키지 내부에 있거나,
다른 패키지여도 상속 관계의 클래스일 때는 접근 가능
public 같은 프로젝트 내라면 어디에서든지 접근 가능

#  외부에서 멤버변수의 값을 수정하지 못하게 하기

  - 멤버변수에 접근 제어 지시자 'private' 할당

      → 메서드를 이용한 값 수정은 가능하지만, 멤버변수에 직접 값을 수정할 수는 없게 됨

 

  1) 'private'이 할당된 변수에 대한 정보만 읽고 싶다면?

      → get() 메서드

  2) 'private'이 할당된 변수에 대해 수정이 필요하다면?

      → set() 메서드

 

 

반응형
728x90

get() 메서드

  - 'private'로 선언된 멤버변수(필드)에 대해 접근해서 값을 읽을 수 있는 메서드 (read-only)

  - 반드시 'return' 키워드를 필요로 함

 

// 클래스 파일에서 get() 메서드 구현

public 반환자료형 get메서드명() {
    return this.멤버변수;
}

 

  - get() 메서드명에 대한 코딩 컨벤션 

    1) 변수가 boolean 타입일 때

        : is + 변수명을 카멜 노테이션 표기법으로

            ex) 변수명 : abc → 메서드명 : isAbc()

    2) 그 외

        : get + 변수명을 카멜 노테이션 표기법으로

            ex) 변수명 : abc → 메서드명 : getAbc()

 

set() 메서드

  - 'private'로 선언된 멤버변수(필드)에 대해 값을 수정할 수 있는 메서드

  - 기본적으로 'return' 키워드를 필요로 하지 않음 (반환 자료형이 없음)

      → 방어적 코드 작성에는 활용할 수 있음 (메서드를 종료시키는 용도)

 

// 클래스 파일에서 set() 메서드 구현

public void set메서드명(자료형 매개변수) {
    // 방어적 코드 작성 가능
    if (조건식) {
        값이 잘못되었을 때 코드;
        return; // 메서드 종료
    }
    // 멤버변수의 값 수정
    this.멤버변수 = 매개변수;
}

 

  - set() 메서드명에 대한 코딩 컨벤션 

    : set + 변수명을 카멜 노테이션 표기법으로

        ex) 변수명 : abc → 메서드명 : setAbc()

#  get(), set() 메서드 자동 생성 단축키

  - [Shift] + [Alt] + [S] → [Generate Getters and Setters]

 

 


정보 은닉 (Information hiding)

  - 필요한 만큼 최소한의 정보만 외부에서 접근 가능하도록 오픈하며, 나머지 정보들은 숨김

      → 객체의 오류 방지 & 클라이언트가 더 효율적으로 객체를 활용할 수 있도록 함

 

캡슐화 (Encapsulation)

  - 대부분의 멤버변수와 메서드를 감추고, 꼭 필요한 정보와 기능만 외부에 오픈하며 통합된 인터페이스를 제공함

 

 


기타 메모

- 코딩 컨벤션 : 언어별로 가지고 있는 클래스명, 변수명 등 작성 스타일에 대한 규칙
- 방어적 코드 : 값이 잘못 입력되었을 때를 대비한 코드
320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Java] this 키워드와 super 키워드  (0) 2023.02.08
[Java] 배열 - 도서 정보 등록·조회·삭제 프로그램 구현  (0) 2023.02.08
[Java] 객체와 클래스 3 : 생성자  (0) 2023.02.06
[Java] 객체와 클래스 2 : 메서드 (멤버 함수)  (0) 2023.02.06
[Java] 스택 메모리와 힙 메모리  (0) 2023.02.06
'Java/Base' 카테고리의 다른 글
  • [Java] this 키워드와 super 키워드
  • [Java] 배열 - 도서 정보 등록·조회·삭제 프로그램 구현
  • [Java] 객체와 클래스 3 : 생성자
  • [Java] 객체와 클래스 2 : 메서드 (멤버 함수)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    tailwindcss
    SEO
    cs
    SQL
    php
    Hotkeys
    vuejs
    HTML
    Codeigniter
    C#
    jsp
    개발일지
    jQuery
    Android
    SpringBoot
    Swing
    errorNote
    티스토리챌린지
    java
    git
    면접
    zapier
    오블완
    js
    http
    SWAGGER
    Wordpress
    typeScript
    CSS
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] 접근 제어 지시자와 get(), set() 메서드
상단으로

티스토리툴바