2025년 7월 21일 월요일(39일차)

Jeonghoon·2025년 7월 21일

jeonghoon's Study

목록 보기
41/128

🧠 Java 복습 정리 — 상속, 인터페이스, 다형성, 예외처리, 파일 입출력


🧩 [ 상속 (Inheritance) ]

상위 클래스의 멤버(변수, 메소드)를 하위 클래스가 물려받는 행위

구분설명
🧱 정의상위 클래스의 멤버변수/메소드를 하위 클래스가 물려받는 것
⚙️ 특징① 하위클래스 객체 생성 시 상위클래스 객체도 함께 생성
② 다형성 적용 가능
💡 사용법class 하위클래스 extends 상위클래스 { }

🧠 다형성 (Polymorphism)과 상속

변환 형태설명
⬆️ 자동 타입변환하위 → 상위 타입으로 변환 가능
⬇️ 강제 타입변환상위 → 하위 타입으로 변환 가능 ((하위클래스) 객체)

🔗 [ 인터페이스 (Interface) ]

인터페이스를 구현한 클래스가 추상 메소드를 구체적으로 구현

구분설명
⚙️ 특징① 상수와 추상메소드만 포함
② 자체 객체 생성 불가 (생성자 없음)
🔄 다형성구현 클래스 타입 → 인터페이스 타입 변환 가능 (자동 타입변환)
💡 사용법interface 인터페이스명 { }
class 구현클래스 implements 인터페이스명1, 인터페이스명2 { }

🌀 [ 다형성 (Polymorphism) ]

하나의 객체가 여러 타입을 가질 수 있는 성질

항목설명
🎭 정의다양한 형태/타입을 가지는 성질
⚙️ 구현 방식상속 및 인터페이스
🔁 오버라이딩부모로부터 상속받은 메소드를 재정의
🧩 타입 확인A instanceof Btrue / false

💡 [ 인스턴스 (Instance) ]

항목설명
🧱 정의클래스(설계도)를 기반으로 메모리에 생성된 객체
⚙️ 특징① 멤버변수는 인스턴스별로 개별 저장
② 메소드는 모든 인스턴스가 공유

⚠️ [ 예외처리 (Exception Handling) ]

프로그램 실행 중 발생할 수 있는 오류를 제어하여 안정적인 실행을 보장

구분설명
🧩 정의예외 발생 시 프로그램의 흐름을 제어
⚙️ 목적오류로 인한 프로그램 중단 방지 및 복구
💡 유형① 일반예외 (컴파일 시 검사)
② 실행예외 (런타임 중 발생)

🧠 주요 예외 클래스

예외 클래스설명
Exception모든 예외의 상위 클래스
ClassNotFoundException클래스를 찾지 못했을 때
InterruptedException스레드 중단 발생
NullPointerExceptionnull 객체 접근 시
NumberFormatException문자열 → 숫자 변환 오류
ArrayIndexOutOfBoundsException배열 인덱스 초과
InputMismatchException잘못된 입력 타입

⚙️ 예외 처리 구문

try {
    // 예외 발생 가능 코드
} catch (예외클래스명 e) {
    // 예외 발생 시 처리 코드
} finally {
    // 예외 발생 여부 관계없이 실행
}

Exception은 모든 예외를 처리하므로 다중 catch맨 마지막에 배치해야 한다.


💥 예외 던지기 (Throwing Exception)

예외를 직접 호출부로 전달하여 한 곳에서 처리

public void method() throws Exception {
    // 예외 발생 시 호출한 메소드로 전달
}

💾 [ 파일 입출력 (File I/O) ]

자바 프로그램에서 외부 파일을 읽고 쓰는 기능

구분방향클래스설명
📤 출력자바 → 외부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 반환)

0개의 댓글