TIL - 20250704

juni·2025년 7월 4일

TIL

목록 보기
56/316

📘 자바 학습 내용 정리 (0704)

1. Object 클래스 오버라이딩

✅ equals() 메서드 오버라이딩

  • 기본적으로 Object.equals()는 참조값(주소) 비교
  • 실질적인 값 비교를 위해 오버라이딩 필요
  • 보통 필드값이 동일하면 같은 객체로 간주하도록 구현

✅ toString() 메서드 오버라이딩

  • 객체 정보를 문자열로 표현할 때 사용
  • 예시: Pen{serial=100, color='노랑', price=1000}
@Override
public boolean equals(Object obj) {
    if (obj instanceof Pen) {
        Pen pen = (Pen) obj;
        return this.serial == pen.serial;
    }
    return false;
}

@Override
public String toString() {
    return "Pen{serial=" + serial + ", color='" + color + "', price=" + price + "}";
}

2. String 클래스 주요 메서드

  • length(): 문자열 길이 반환
  • charAt(index): 특정 인덱스 문자 반환
  • substring(start, end): 부분 문자열 추출
  • indexOf(str): 문자열 위치 반환 (못 찾으면 -1)
  • lastIndexOf(str): 마지막 위치
  • toUpperCase() / toLowerCase(): 대/소문자 변환
  • replace(old, new): 문자 또는 문자열 교체
  • split(기준문자): 문자열 나누어 배열 반환
  • trim(): 앞뒤 공백 제거

3. Wrapper 클래스

  • 기본형을 객체로 다룰 수 있게 하는 클래스
  • 종류:
    • Integer, Double, Boolean, Character, Long, ...
  • 오토박싱/언박싱 지원:
    • int → Integer, Integer → int 자동 변환
int a = 100;
Integer val = a; // 오토박싱
int b = val;     // 언박싱

4. java.time 패키지 (Java 8 이후)

📅 LocalDate

  • 날짜 정보만 관리
  • LocalDate.now(): 현재 날짜
  • LocalDate.of(2024, 7, 4): 특정 날짜
  • plusDays(), minusDays(): 날짜 연산

⏰ LocalTime

  • 시간 정보만 관리
  • LocalTime.now(): 현재 시간
  • plusHours(), minusMinutes() 등 사용

🕓 LocalDateTime

  • 날짜 + 시간 통합 정보
  • now(), of() 가능

🧮 날짜 간 차이

  • Period.between(date1, date2): 연,월,일 차이 반환
  • ChronoUnit.DAYS.between(date1, date2): 일 수 반환

5. Enum (열거형 클래스)

  • 고정된 상수값 집합 표현
  • 멤버 변수와 생성자, 메서드 가질 수 있음
public enum PizzaStatus {
    ORDERED("주문 완료", 10),
    READY("준비 완료", 20);

    private final String desc;
    private final int time;
}

6. Generic (제네릭)

  • 다양한 타입을 하나의 클래스나 메서드에서 처리할 수 있게 함
  • 타입 안정성과 재사용성 증가
public class Basket<T> {
    private T item;
    public void setItem(T item) { this.item = item; }
    public T getItem() { return item; }
}
  • 사용: Basket<Apple>, Basket<Banana>

7. 커스텀 ArrayList 구현

✨ 기능

  • push(): 값 추가
  • get(index): 값 반환
  • remove(index): 값 제거
  • indexOf(value): 인덱스 조회
  • contains(value): 포함 여부 확인
  • clear(): 전체 삭제
  • size(): 현재 저장된 값 개수

🔧 내부 구조

  • 배열 기반 저장 (Object[])
  • 필요 시 ensureCapacity()로 배열 확장

✅ 요약 정리

개념 구분핵심 내용
Object 클래스equals(), toString() 오버라이딩
String 메서드문자열 조작을 위한 다양한 기능
Wrapper 클래스기본형을 객체처럼 다룸 (Integer 등)
java.time날짜, 시간 처리 (LocalDate, Period 등)
enum고정 상수 정의 및 메서드 포함 가능
제네릭타입 유연성 + 안정성 보장
커스텀 ArrayList리스트 자료구조 직접 구현

0개의 댓글