패키지 : 클래스와 인터페이스의 집합. 폴더, 디렉토리 개념.
서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리하기 위함.
자바에서 클래스의 정확한 이름은 패키지 이름까지 포함한다.
ex) pkg1 안의 Test class의 정확한 이름은 pkg1.Test
pkg2 안의 Test는 pkg2.Test이므로 둘은 서로 다른 클래스가 된다.
다른 패키지에 있는 클래스를 참조할때는 import를 해야되는데
다른 클래스를 import할때 패키지 이름까지 정확히 확인해야 한다.
접근제어자 : 멤버변수, 멤버함수(메소드), 클래스에 사용되며 외부에서의 접근을 제한하는 역할(캡슐화)을 한다.
접근제어자의 종류
super
는 상속받은 부모 클래스를 가르키는 키워드. super.
를 쓰면 부모 클래스의 부를 수 있는 모든 메소드를 호출할 수 있다.추상클래스 : 추상메소드를 선언할 수 있는 클래스. 상속받는 클래스 없이 그 자체로 인스턴스를 생성할 수는 없다. 인터페이스와는 다르게 일반메소드도 구현 가능하다.
추상클래스를 상속받은 클래스는 추상클래스 안의 모든 추상메소드를 구현해야한다.
상속을 통해 기능을 확장하는게 주 목적.
추상메소드 : 설계만 되어있고 수행하는 코드에 대해서는 작성이 안된 메소드.(미완성상태)
상속받는 클래스마다 동작이 달라지게하기 위함. 빈 껍데기. 선언은 되어있는데 코드가 구현되지않음.
abstract 리턴타입 메소드이름();
<< 이게 끝. 추상메소드는 뒤에 {중괄호}를 가질 수 없다.
추상클래스 상속받아 자식클래스 선언하면 빨간 줄 뜨는데 Alt+Enter하면 추상메소드를 오버라이드로 알아서 띄워준다.
class 구현하려는클래스명 implements 인터페이스명{ }
으로 받음interface 인터페이스명{
public abstract void 추상메서드명();
}
(인터페이스의 메소드는 추상, static default 메소드 모두 허용)