Package[Java]

SnowCat·2023년 6월 2일
0

Java - Language

목록 보기
6/17
post-thumbnail

패키지

  • 자바에서 패키지는 클래스와 인터페이스의 집합을 의미함
  • 서로 관련이 있는 클래스, 인터페이스를 묶음으로써 파일을 효율적으로 관리 가능하고, 이름 충돌 문제를 해결할 수 있음
  • 패키지를 사용하기 위해서는 패키지 선언을 해야하며, 그렇지 않으면 이름 없는 패키지로 간주해 하나의 패키지에 포함시킴
package directory1.directory2.MyPackage // 패키지 경로까지 포함한 풀 네임을 명시해야함
  • 패키지를 가져오기 위해서는 import문을 사용
import packageName.className // 패키지의 특정 클래스만을 가져오고 싶을 때 사용
import packageName.* // 패키지의 모든 클래스를 가져오거나, 클래스 이름만으로 사용하고자 할 때 사용

접근 제어자

  • 제어자란 클래스와 클래스 멤버의 선언시 사용해 부가적인 의미를 부여하는 키워드를 의미함
  • 접근 제어자는 클래스 외부에서의 직접적인 접근 가능 여부를 설정하게 해주는 제어자를 의미함
  • 접근 제어자를 사용해 접근을 거부하는 멤버를 설정해 정보 은닉을 구체화 할 수 있음

private

  • private 접근 제어자를 사용한 클래스 멤버는 외부에 공개되지 않으며, 직접 접근할 수 없음
  • 해당 멤버에 접근하기 위해서는 해당 객체에 있는 다른 public 메서드를 통해서만 접근할 수 있음

public

  • public 접근 제어자를 사용하면 클래스 멤버가 외부로 공개되며, 해당 객체를 사용하는 프로그램 어디에서나 직접 접근할 수 있게 됨
  • public 메서드를 통해서만 객체 내부에 private에 접근할 수 있음 => private 메서드와 프로그램 사이의 인터페이스 역할을 수행한다고 볼 수도 있음

protected

  • protected 멤버는 부모 클래스에 대해서는 public처럼 취급되고, 외부에서는 private 멤버로 취급됨
  • 멤버를 선언한 클래스의 멤버, 클래스가 속한 패키지의 멤버, 클래스를 상속받은 다른 패키지의 멤버에서 접근이 가능함

default

  • 접근제어자를 설정하지 않으면 자동으로 default로 설정됨
  • default 멤버는 같은 패키지 내부에서만 접근할 수 있음

기타 제어자

final

  • 변경되면 안되는 값이 있을 때 final 제어자를 사용함
  • 필드나 지역 변수에 사용하면 값의 변경이 불가능해짐
  • 클래스에 사용하면 다른 클래스가 상속받을 수 없음
  • 클래스 내부의 메서드에 사용하면 메서드 오버라이딩이 불가능해짐

static

  • 일반 변수, 메소드를 클래스 변수, 클래스 메소드로 만들어주는 제어자
  • static 제어자를 가지는 멤버는 프로그램 시작시 단 한번만 초기화되며, 인스턴스 생성없이 바로 사용할 수 있게 됨
  • static 제어자를 가지는 멤버는 해당 클래스의 모든 인스턴스가 값을 공유함

abstract

  • 추상 클래스, 추상 메서드를 구현할 때 사용하는 제어자
  • 추상 메서드를 사용시 반드시 클래스에서 abstract 제어자를 붙여야 함

출처
http://www.tcpschool.com/java/java_usingClass_package

profile
냐아아아아아아아아앙

0개의 댓글