[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 라이센스를 따릅니다.