본문 바로가기
1인칭 학습 시점_웹개발/JAVA

[JAVA] 인터페이스, 내부 클래스, 예외 처리, 파일 입출력까지 한 번에 정리하기

by awesong 2024. 5. 30.
728x90
반응형

1. 인터페이스의 default 메서드란?

Java 8부터 인터페이스에 default 메서드를 정의할 있게 되었습니다. 이는 인터페이스에 메서드의 기본 구현을 제공하고자 사용됩니다. 이를 통해 인터페이스를 구현하는 클래스들이 반드시 해당 메서드를 오버라이딩하지 않아도 되는 유연성이 생깁니다.

interface MyInterface {
    default void sayHello() {
        System.out.println("안녕하세요!");
    }
}

 

#default 메서드: 자바 8 이후 도입된 기능으로, 인터페이스에 메서드 본문(기본 구현) 작성할 있게 해줍니다.

 

2. 내부 클래스(Inner Class)

내부 클래스란 클래스 내부에 선언된 클래스를 말합니다. 크게 4가지로 구분됩니다.

 

1) 인스턴스 클래스

외부 클래스의 객체가 생성된 이후에야 사용할 있는 클래스입니다.

class Outer {
    class Inner {
        void show() {
            System.out.println("인스턴스 내부 클래스입니다.");
        }
    }
}

 

2) static 클래스

정적 클래스는 외부 클래스의 객체 생성 없이도 사용할 있습니다.

class Outer {
    static class StaticInner {
        void display() {
            System.out.println("정적 내부 클래스입니다.");
        }
    }
}

 

3) 지역 클래스

메서드 내부에 선언된 클래스이며, 메서드가 실행될 때만 존재합니다.

void outerMethod() {
    class LocalClass {
        void print() {
            System.out.println("지역 내부 클래스입니다.");
        }
    }
}

 

4) 익명 클래스

이름 없이 선언되며 주로 일회성 구현 사용됩니다. 추상 클래스나 인터페이스를 빠르게 구현할 유용합니다.

Runnable r = new Runnable() {
    public void run() {
        System.out.println("익명 클래스 실행");
    }
};
r.run();

 

#내부 클래스

: 클래스 내부에 정의된 클래스로, 코드 구조를 논리적으로 묶고 한정된 사용 범위를 지정할 있습니다. 재사용보다는 일회성 사용에 적합합니다.

 

3. 예외 처리(Exception Handling)

자바에서 예외(Exception) 프로그램 실행 발생할 있는 비정상적인 상황을 의미합니다. 예외 처리는 프로그램의 비정상 종료를 방지하기 위한 중요한 메커니즘입니다.

 

1) try-catch-finally 기본 구조

try {
    // 예외 발생 가능성 있는 코드
} catch (Exception e) {
    // 예외 처리 코드
} finally {
    // 예외 발생 여부와 상관없이 무조건 실행
}

 

2) 다중 catch

try {
    // 예외 발생 코드
} catch (NullPointerException e) {
    // NullPointer 예외 처리
} catch (ArrayIndexOutOfBoundsException e) {
    // 배열 예외 처리
}

 

3) throws 키워드

예외를 메서드 호출자에게 전가할 사용합니다.

void test() throws IOException {
    throw new IOException("예외 발생");
}

 

4) throw 키워드

개발자가 직접 예외를 발생시킬 사용합니다.

throw new IllegalArgumentException("잘못된 입력입니다.");

 

5) 사용자 정의 예외

class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

 

#예외 처리

: 프로그램에서 발생할 있는 예외 상황을 미리 예측하고 대처하는 방식으로 try-catch-finally, throws, throw 등을 사용합니다.

 

4. 자바 파일 입출력 정리

1) 파일 생성

File file = new File("hello.txt");
file.createNewFile();

 

2) 파일에 쓰기

BufferedWriter writer = new BufferedWriter(new FileWriter("hello.txt"));
writer.write("안녕하세요!\n자바 파일 입출력입니다.");
writer.close();

 

3) 파일 읽기

BufferedReader reader = new BufferedReader(new FileReader("hello.txt"));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
reader.close();

 

4) 파일 삭제

File file = new File("hello.txt");
if (file.delete()) {
    System.out.println("파일이 삭제되었습니다.");
}

 

#파일 입출력

: 자바에서 파일을 생성하고, 데이터를 저장하거나 불러오는 기능으로 BufferedWriter, BufferedReader, FileWriter, FileReader 등을 사용합니다.

 

5. CRUD 기본 개념 정리

작업 설명
Create 새로운 데이터 생성 (: 파일 생성, 객체 생성)
Read 기존 데이터 읽기 (: 파일에서 데이터 읽기)
Update 기존 데이터 수정 (: 객체 변경)
Delete 데이터 삭제 (: 파일 삭제)

 

#CRUD

: 소프트웨어의 기본적인 데이터 처리 흐름. 대부분의 데이터 기반 애플리케이션은 구조를 따릅니다.

 

6. 문자로 배열 사용하기

문자 배열은 다음과 같이 선언할 있습니다.

char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for (char ch : vowels) {
    System.out.println(ch);
}

 

또는 문자열을 배열처럼 사용할 수도 있습니다.

String str = "Hello";
for (int i = 0; i < str.length(); i++) {
    System.out.println(str.charAt(i));
}

 

#문자 배열

: 자바에서 문자를 배열로 처리하거나 문자열을 문자 단위로 접근할 사용됩니다.

반응형