기존의 클래스를 확장하여 새로운 클래스를 생성하는 것을 말한다.
클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것
상위클래스로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의
이전에 배웠던 this, this()와 유사
super는 상위클래스의 객체, super()는 상위 클래스의 생성자를 호출
하위클래스 생성시 super()를 호출하여 상위 클래스의 생성자를 초기화해야함
-> 클래스를 만들 때는 기본 생성자를 생성하는 것을 습관화
클래스 상속계층도에서 최상위에 위치한 상위클래스
-> 자바의 모든 클래스는 Object 클래스로부터 확장된다 = 항상 참인 명제
가장 위에 위치하기 때문에 멤버들을 자동으로 상속받아 사용할 수 있음
object
메서드 예시 : toString()
, equals(Object obj)
, hashcode()
, wait()
, notify()
package practice.test;
public class PackageEx {}
자바 기본패키지 : java.lang
(기본클래스), java.util
(확장클래스), java.io
java.nio
(자바 입출력 관련 클래스)
ex) String
=> java.lang.String
(java.lang
-> 패키지명, .
-> 디렉터리 계층구조 의미)
다른 패키지 내의 클래스를 사용할때 사용
import 패키지명.클래스명
; 또는 import 패키지명;
으로 사용
import문은 성능에 영향x (컴파일시 처리됨)
package practice.test2;
public class PackageImp{
public static void main(String[] args) {
practice.test.ExamImport exam = new practice.test.ExamImport();
// 패키지명 모두 포함해야함
}
}
package practice.test2;
import practice.test.ExamImp // import문 작성
public class PackageImp {
public static void main(String[] args) {
ExamImp x = new ExamImp(); // 패키지명 생략가능
}
}
클래스, 필드, 메서드, 생성자 등에 부가적인 의미를 부여하는 키워드
2가지로 분류
접근 제어자는 단 한번만 사용가능
클래스 외부로의 불필요한 데이터 노출 방지(data hiding)
외부로부터 데이터가 임의로 변경되는걸 방지
4가지 분류 (public > protected > default > private)
setter 메서드(set-
) : 외부에서 메서드에 접근하여 조건에 맞을 경우 데이터 값을 변경 가능하게 해줌
getter 메서드(get-
) : 위에서 설정한 변수값을 읽어오는 데 사용
데이터를 효과적으로 보호 + 동시에 의도하는 값으로 변경