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));
}
#문자 배열
: 자바에서 문자를 배열로 처리하거나 문자열을 문자 단위로 접근할 때 사용됩니다.
'1인칭 학습 시점_웹개발 > JAVA' 카테고리의 다른 글
[JAVA] 프로젝트 : 영화 예매 시스템 만들기 (0) | 2024.05.31 |
---|---|
[JAVA] Java 객체지향 핵심 개념 정리 - 상속, 추상클래스, 인터페이스 (0) | 2024.05.29 |
[JAVA] Java 기초 개념 정리 - 생성자, this, 오버로딩, 접근 제한자, 상속까지! (0) | 2024.05.28 |
[JAVA] Java 기초 개념 정리 – String 클래스, 전역변수와 지역변수, 열거형(enum) (0) | 2024.05.27 |
[JAVA] JAVA 기초 문법 총정리 - 반복문, 배열, 클래스, 메서드 개념 완전 정복 (0) | 2024.05.24 |