Jindory
Jindory의 기록 라이프
Jindory
전체 방문자
오늘
어제
06-19 03:40
  • 분류 전체보기
    • 개발
      • AI
      • Java
      • Javascript
      • JPA
      • Python
      • Spring
      • Web
    • 데이터베이스
      • Database
      • Oracle
      • MySQL
    • 코딩테스트
      • 구름IDE
      • 백준
      • 코딩테스트 준비
      • 프로그래머스
    • 분석 및 설계
      • Design Pattern
      • UML
    • 트러블슈팅
      • Java
      • JPA
      • Spring
    • 개발 커리어
      • 면접
      • 멘토링
      • 포트폴리오
      • 프로젝트

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
Jindory

Jindory의 기록 라이프

[Java] Java 접근제한자/public,protected,default,private
개발/Java

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

2022. 4. 15. 13:18
반응형

안녕하세요. 개발자 Jindory입니다.

오늘은 Java의 접근제한자에 대해서 알아보는 글을 작성해보고자 합니다.


접근제한자(Access Modifier)

접근 제한자는 모든 접근을 허용하는 public부터 시작해서 차례대로 protected, dafault(friendly), private 이렇게 4가지 종류가 있습니다.

Public

public은 package, Class가 동일하지 않아도 모든 접근이 가능한 제한자이다.

같은 클래스내에서 허용, 같은 패키지 내의 다른 클래스 허용, 대른 패키지의 다른 클래스에서 허용한다.

Protected

Protected는 같은 package 에서만 접근을 허용하고 다른 package에서 접근하려면 해당 Class를 상속받을 시에만 접근이 가능한 제한자이다.

  • 같은 Class내에서 접근 허용
  • 같은 package의 다른 Class에서 접근 허용
  • 다른 package의 상속받은 Class에서 접근 허용
  • 다른 package의 다른 Class에서 접근 불가

default

default는 동일 package에서만 접근을 허용하는 제한자로, 접근 제한자가 생략되어 있을경우엔 기본적으로 default 접근 제한자가 적용된다.

  • 같은 Class내에서 접근 허용
  • 같은 package의 다른 Class에서 접근 허용
  • 다른 package에서 접근 불가

default는 자동으로 선언되어 지므로, 변수, 메소드 앞에 명시적으로 적어서는 안된다.

아무것도 선언되지 않았을 경우 default, friendly 접근 제한자로 선언되었다.

private

private는 동일 package, 다른 package 모두 접근이 불가능하고 같은 Class 내에서만 접근을 허용하는 제한자이다.

  • 같은 java 파일 안의 서로 다른 Class라도 접근 불가

접근 제한자별 사용 가능 범위

  • Class에 사용 가능
    public, default
  • Constructor
    public, protected, default, private
  • Member 변수
    public, protedted, default, private
  • Member method
    public, protected, default, private
  • 지역변수
    접근 제한자 사용 불가

이렇게 Java의 접근제한자에 대해서 알아봤습니다.

 

혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.

오늘도 Jindory 블로그에 방문해주셔서 감사합니다.

 

[참고]

https://velog.io/@gillog/Java-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C%EC%9E%90

반응형
저작자표시 비영리 (새창열림)

'개발 > Java' 카테고리의 다른 글

[Java] Windows 환경에서 jdk버전 2개 이상 관리  (0) 2022.09.26
[Java] Collection Framework(List,Set,Map)  (0) 2022.04.17
[Java] JPA와 MyBatis의 차이(ORM과 SQL Mapper)  (0) 2022.04.13
[Java] Java8의 변경사항  (0) 2022.04.12
[Java] 함수형 인터페이스(Functional Interface)란?  (0) 2022.04.09
    '개발/Java' 카테고리의 다른 글
    • [Java] Windows 환경에서 jdk버전 2개 이상 관리
    • [Java] Collection Framework(List,Set,Map)
    • [Java] JPA와 MyBatis의 차이(ORM과 SQL Mapper)
    • [Java] Java8의 변경사항
    Jindory
    Jindory

    티스토리툴바