포스트

[JAVA] 객체지향 프로그래밍-OOP(패키지,제어자)

패키지(package)

패키지란?

  • 서로 관련된 클래스의 묶음
  • 자바 클래스를 모아놓은 일종의 디렉토리

패키지 선언

  • 해당 소스 파일의 첫 번째 문장으로 한 번에 선언이 가능
  • 클래스 컴파일 시 첫 줄에 자동으로 생성
  • 패키지의 점(.)은 [상위패키지].[하위패키지].[클래스]을 의미한다.
  • 패키지 선언이 없으면 이름없는(Unnamed) 패키지에 속하게 된다.

패키지 가져오기

  • 클래스 파일을 가져올 때 import문을 사용한다.
  • 패키지 이름에 패키지 경로를 구체적으로 명시해줘야 한다.
  • import문 마지막에 별표(*)를 사용하면 해당 패키지에 포함된 모든 클래스를 사용할 수 있다.
    1
    2
    3
    
    import 패키지명.클래스명;
    //or
    import 패키지명.*;
    
  • import문은 패키지문과 클래스 선언 사이에 선언한다.
  • 만약 이름이 같은 클래스가 속한 패키지들을 import 할 경우 클래스 앞에 패키지명을 붙여줘야 한다.

제어자(modifer)

제어자는 클래스와 클래스 멤버(멤버 변수, 메소드)에 부가적인 의미를 부여하는 키워드를 의미한다. public static void main()에서 public static 키워드도 제어자이다. 제어자는 접근제어자와 그 외 제어자로 구분되어 있다.

  • 접근 제어자 : public, protected, (default), private
  • 그 외 : static, final, abstract, …etc 하나의 대상에 여러 제어자를 같이 사용 가능하다. (접근 제어자는 하나)
  • 접근 제어자를 제일 앞에 사용한다.

static

멤버변수, 메소드, 초기화블럭에서 사용 가능

대상의미
멤버변수모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다.
클래스 변수는 인스턴스를 생성하지 않고 사용이 가능하다.
클래스가 메모리에 로드될 때 생성된다.
메소드인스턴스를 사용하지 않고 호출이 가능한 static 메소드가 된다.
static메소드 내에서는 인스턴스 멤버들을 직접 사용할 수 있다.

final

final은 변경할 수 없는 제어자이다. 클래스, 메소드, 멤버변수, 지역변수에서 사용 가능

대상의미
클래스변경과 확장이 될 수 없는 클래스.
그러므로 final로 지정된 클래스는 다른 클래스의 부모 클래스가 될 수 없다.
메소드변경될 수 없는 메소드.
final로 지정된 메소드는 오버라이딩을 할 수 없는 메소드가 된다.
멤버변수와 지역변수값을 변경할 수 없는 상수가 된다.

abstract

abstract 추상클래스이며 나중에 공부하기전에 기본적인 것만 알아놓으려고 한다.

대상의미
클래스클래스 내에 추상 메소드가 선언되어 있음을 의미(=미완성 클래스)
메소드선언부만 작성하고 구현부는 작성하지 않은 추상 메소드(=미완성 메소드)
  • 추상 클래스를 상속 받아서 완전한 클래스를 만들어야 객체 생성 가능
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.