[JAVA] 패키지와 접근제어자

2023. 4. 13. 14:28·Programming Language/Java

패키지 선언

  • 패키지의 물리적인 형태는 파일 시스템 폴더
  • 패키지는 클래스의 일부분, 클래스를 유일하게 만드는 식별자 역할
  • 클래스의 전체 이름은 패키지 이름 + 클래스 이름
  • package 상위패키지.하위패키지;

 

 

 

패키지 이름 작성 규칙

  • 숫자로 시작해선 안되고 _, $를 제외한 특수 문자를 사용해서는 안된다
  • java로 시작하는 패키지는 자바 표준API에서만 사용하므로 사용해서는 안된다
  • 모두 소문자로 작성하는것이 관례

 

 

 

import 문

  • 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있을 때 사용
  • import 상위패키지.하위패키지.클래스이름;
  • import 상위패키지.하위패키지.*;

 

 

 

접근제한자

  • 클래스 및 인터페이스 그리고 이들이 가진 멤버의 접근을 제한
  • public : 외부 클래스가 자유롭게 사용할 수 있도록 함
  • protected : 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 함
  • private : 외부에서 사용할 수 없음
  • default : 같은 패키지에 소속된 클래스에서만 사용 (기본값)
  • public > protected > default > private

 

 

 

클래스의 접근 제한

  • 클래스는 public, default 접근 제한을 가진다

 

 

 

public 접근 제한

  • 같은 패키지뿐만 아니라 다른 패키지에서도 아무런 제한 없이 사용할 수 있음
  • 라이브러리 클래스로 개발할 때 public 접근 제한자를 사용해야 함

 

 

 

생성자의 접근 제한

  • 생성자는 public, protected, default, private 접근 제한을 가진다
  • public : 모든 패키지에서 아무런 제한 없이 생성자 호출
  • protected : 같은 패키지에 속하는 클래스 또는 다른 패키지의 자식 클래스
  • default : 다른 패키지에서 생성자를 호출할 수 없음
  • private : 생성자를 호출하지 못하게 함

 

 

 

필드와 메소드의 접근 제한

  • 필드와 메소드는 public, protected, default, private 접근 제한을 가진다
  • public : 모든 패키지에서 아무런 제한 없이 필드와 메소드 사용
  • protected : 같은 패키지에 속하는 클래스 또는 다른 패키지의 자식 클래스
  • default : 동일한 패키지에서 제한 없이 사용
  • private : 오로지 클래스 내부에서만 사용

'Programming Language > Java' 카테고리의 다른 글

[Java] 자바에서 GitHub REST API 사용하기  (0) 2023.08.21
[Java] Github API 사용하기  (0) 2023.08.20
[JAVA] 소켓 프로그래밍, TCP 소켓 프로그래밍  (0) 2023.07.19
[JAVA] 네트워킹 이해하기 & InetAddress  (0) 2023.07.18
[JAVA] 인터페이스(interface)  (0) 2023.04.11
'Programming Language/Java' 카테고리의 다른 글
  • [Java] Github API 사용하기
  • [JAVA] 소켓 프로그래밍, TCP 소켓 프로그래밍
  • [JAVA] 네트워킹 이해하기 & InetAddress
  • [JAVA] 인터페이스(interface)
hurlud
hurlud
나와 같은 궁금증을 가진 사람들을 위해 오늘도! 🐥
  • hurlud
    주독야독
    hurlud
  • 전체
    오늘
    어제
  • 최근 글

    • ALL (106)
      • CS (13)
      • Linux (2)
      • Deploy (7)
        • AWS (6)
        • Docker (1)
      • IDE (13)
        • IntelliJ (5)
        • Android Studio (8)
      • DB (10)
        • MySQL (6)
        • MongoDB (4)
      • Programming Language (20)
        • JavaScript (10)
        • Java (8)
        • Python (2)
      • Framework (32)
        • Node.js (6)
        • SpringBoot (17)
        • React (6)
        • NestJS (2)
      • Git | Github (4)
      • ETC (5)
      • Akka (0)
  • 링크

    • 깃허브
  • hELLO· Designed By정상우.v4.10.0
hurlud
[JAVA] 패키지와 접근제어자
상단으로

티스토리툴바