상위 클래스의 멤버(변수, 메소드)를 하위 클래스가 물려받는 행위
| 구분 | 설명 |
|---|---|
| 🧱 정의 | 상위 클래스의 멤버변수/메소드를 하위 클래스가 물려받는 것 |
| ⚙️ 특징 | ① 하위클래스 객체 생성 시 상위클래스 객체도 함께 생성 ② 다형성 적용 가능 |
| 💡 사용법 | class 하위클래스 extends 상위클래스 { } |
| 변환 형태 | 설명 |
|---|---|
| ⬆️ 자동 타입변환 | 하위 → 상위 타입으로 변환 가능 |
| ⬇️ 강제 타입변환 | 상위 → 하위 타입으로 변환 가능 ((하위클래스) 객체) |
인터페이스를 구현한 클래스가 추상 메소드를 구체적으로 구현
| 구분 | 설명 |
|---|---|
| ⚙️ 특징 | ① 상수와 추상메소드만 포함 ② 자체 객체 생성 불가 (생성자 없음) |
| 🔄 다형성 | 구현 클래스 타입 → 인터페이스 타입 변환 가능 (자동 타입변환) |
| 💡 사용법 | interface 인터페이스명 { } class 구현클래스 implements 인터페이스명1, 인터페이스명2 { } |
하나의 객체가 여러 타입을 가질 수 있는 성질
| 항목 | 설명 |
|---|---|
| 🎭 정의 | 다양한 형태/타입을 가지는 성질 |
| ⚙️ 구현 방식 | 상속 및 인터페이스 |
| 🔁 오버라이딩 | 부모로부터 상속받은 메소드를 재정의 |
| 🧩 타입 확인 | A instanceof B → true / false |
| 항목 | 설명 |
|---|---|
| 🧱 정의 | 클래스(설계도)를 기반으로 메모리에 생성된 객체 |
| ⚙️ 특징 | ① 멤버변수는 인스턴스별로 개별 저장 ② 메소드는 모든 인스턴스가 공유 |
프로그램 실행 중 발생할 수 있는 오류를 제어하여 안정적인 실행을 보장
| 구분 | 설명 |
|---|---|
| 🧩 정의 | 예외 발생 시 프로그램의 흐름을 제어 |
| ⚙️ 목적 | 오류로 인한 프로그램 중단 방지 및 복구 |
| 💡 유형 | ① 일반예외 (컴파일 시 검사) ② 실행예외 (런타임 중 발생) |
| 예외 클래스 | 설명 |
|---|---|
Exception | 모든 예외의 상위 클래스 |
ClassNotFoundException | 클래스를 찾지 못했을 때 |
InterruptedException | 스레드 중단 발생 |
NullPointerException | null 객체 접근 시 |
NumberFormatException | 문자열 → 숫자 변환 오류 |
ArrayIndexOutOfBoundsException | 배열 인덱스 초과 |
InputMismatchException | 잘못된 입력 타입 |
try {
// 예외 발생 가능 코드
} catch (예외클래스명 e) {
// 예외 발생 시 처리 코드
} finally {
// 예외 발생 여부 관계없이 실행
}
Exception은 모든 예외를 처리하므로 다중catch시 맨 마지막에 배치해야 한다.
예외를 직접 호출부로 전달하여 한 곳에서 처리
public void method() throws Exception { // 예외 발생 시 호출한 메소드로 전달 }
자바 프로그램에서 외부 파일을 읽고 쓰는 기능
| 구분 | 방향 | 클래스 | 설명 |
|---|---|---|---|
| 📤 출력 | 자바 → 외부 | FileOutputStream | 파일로 데이터 쓰기 |
| 📥 입력 | 외부 → 자바 | FileInputStream | 파일에서 데이터 읽기 |
FileOutputStream out = new FileOutputStream("test.txt");
out.write(str.getBytes());
out.close();
FileInputStream in = new FileInputStream("test.txt");
byte[] data = new byte[(int) new File("test.txt").length()];
in.read(data);
String content = new String(data);
in.close();
| 메소드 | 설명 |
|---|---|
"문자열".getBytes() | 문자열을 바이트 배열로 변환 |
new String(byte[]) | 바이트 배열을 문자열로 변환 |
"문자열1".equals("문자열2") | 문자열 값 비교 (true/false 반환) |