강잇
강이의 개발블로그
강잇
전체 방문자
오늘
어제
  • 분류 전체보기 (102)
    • Langauge (32)
      • Java-basic (29)
      • Java (3)
    • SpringBoot (7)
    • Algorithm (5)
      • BAEKJOON (5)
    • WEB (7)
      • HTML & CSS (7)
    • DB (1)
      • MySQL (1)
    • OS (17)
      • Mac (2)
      • Linux (4)
      • Terminal Command (11)
    • Computer Science (7)
      • Hard ware (1)
      • Database (1)
      • Data structure (2)
      • Algorithm (2)
      • Network (1)
    • Git (5)
      • 개념 (1)
      • 활용 (1)
      • Trouble Shooting (2)
    • ETC. (13)
      • Install (6)
      • IntelliJ (1)
      • Eclipse (2)
      • Error (3)
      • Tip (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • CSS 속성
  • til
  • 메서드
  • 메소드
  • 자바
  • 알고리즘 공부
  • 백준
  • CSS 박스 크기 설정

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
강잇

강이의 개발블로그

Langauge/Java-basic

[Java] 접근 제어자 public / protected / default / private

2022. 7. 23. 03:06

접근 제어자

  • 접근 제어자는 자바 제어자의 한 종류로, 사용 범위를 정의하는 역할을 한다.
  • 접근 제어자는 각 대상에 대해 딱 한 번 정의할 수 있다.
  • 접근 제어자는 클래스, 멤버, 생성자 앞에 위치할 수 있다.
  • 아무것도 지정하지 않으면 default 접근 제어자가 자동으로 설정된다.

멤버 및 생성자의 접근 제어자

멤버 및 생성자에는 public, protected, default(package), private라는 4가지 종류의 접근 제어자를 사용할 수 있다.

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

클래스의 접근 지정자

  • 클래스에서는 public, default 2가지 종류의 접근 지정자만 사용할 수 있다.
  • public class : 다른 패키지에서 임포트하여 사용 가능
  • class : 동일 패키지에서만 사용 가능
public class PublicClass { // public 클래스
    ...
}

class DefaultClass { // default 클래스
}

클래스 접근 지정자와 생성 접근 지정자의 관계

  • 컴파일러에 의해 생성된 기본 생성자는 클래스의 접근 지정자에 따라 결정된다.
  • 직접 생성자를 정의할 때는 클래스와 생성자의 접근 지정자를 다르게 지정할 수 있다.
  • 클래스가 임포트되지 않으면 생성자는 접근 지정자와 상관없이 호출 자체를 할 수 없다.
클래스 + 생성자 동일 패키지 다른 패키지
public class + deafult constructor 인스턴스 생성 가능 임포트 가능 / 생성자 사용 불가
public class + public constructor 인스턴스 생성 가능 임포트 가능 / 생성자 사용 가능
class + deafult constructor 인스턴스 생성 가능 임포트 불가 / 생성자 사용 불가
class + public constructor 인스턴스 생성 가능 임포트 불가 / 생성자 사용 불가
저작자표시 (새창열림)

'Langauge > Java-basic' 카테고리의 다른 글

[Java] final 키워드  (0) 2022.07.25
[Java] static 키워드  (0) 2022.07.24
[Java] 이너 클래스  (0) 2022.07.22
[Java] 외부 클래스  (0) 2022.07.21
[Java] this키워드와 this() 메서드  (0) 2022.07.21
    'Langauge/Java-basic' 카테고리의 다른 글
    • [Java] final 키워드
    • [Java] static 키워드
    • [Java] 이너 클래스
    • [Java] 외부 클래스
    강잇
    강잇
    학습한 내용을 정리 및 기록하는 블로그

    티스토리툴바