[Java] 클래스

원서연·2023년 10월 28일
0

캡슐화

  • 클래스는 필드(속성)와 메서드를 가집니다.
    • 해당 클래스와 관련된 필드/메서드를 가집니다.
  • 캡슐화란 관련된 내용을 모아서 가지고 있는 것을 말합니다.
  • 캡슐화란 필드와 메서드를 외부에 노출시키지 않고 감출 수 있습니다.
    • 예를 들어 본인의 나이나 몸무게를 외부에 알려주고 싶지 않을 수 있습니다.

접근제한자

  • 접근 제한자란 클래스의 멤버에 대해 접근을 제한하는 역할을 한다.
  • public
    • 어떤 클래스든 접근할 수 있다는 것을 의미합니다.
    • 모든 접근을 허용, 가장 넓은 의미(전체 공개)
  • protected
    • 같은 패키지인 경우 접근 허용
    • 다른 패키지라도 상속을 받은 경우 접근을 허용
  • default 접근 지정자
    • 접근제한자를 적지 않은 경우
    • 같은 패키지에서만 접근 허용
  • private
    • 자기 자신만 접근 가능, 가장 좁은 의미

접근 범위 넓은 순서대로 비교 : public > protected > default > private

접근제한자는 필드 뿐만 아니라 메소드, 클래스 앞에도 붙여서 사용할 수 있습니다.

package javaStudy;

public class AccessObj {
    public int p1 = 1;
    protected int p2 = 2;
    int d = 3; // default 접근 지정자
    private int p3 = 4;
}
package javaStudy;

public class AccessObjExam {
    public static void main(String[] args) {
        AccessObj obj = new AccessObj();
        System.out.println(obj.p1);
        System.out.println(obj.p2);
        System.out.println(obj.d);
        System.out.println(obj.p3); // 컴파일 오류가 발생합니다.
    }
}
package com.javaStudy;

import javaStudy.AccessObj;

    public class AccessObjExam extends AccessObj{
        public static void main(String[] args) {
            AccessObjExam obj = new AccessObjExam();
            System.out.println(obj.p1);
            System.out.println(obj.p2);
            System.out.println(obj.d);// 컴파일 오류가 발생합니다.
            System.out.println(obj.p3);// 컴파일 오류가 발생합니다.
        }
    }
profile
웹 백엔드 프로그래밍 Today I Learned

0개의 댓글