Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

빠르게 학습하고 빠르게 적용하자

자바 개념 정복하기- 클래스와 인터페이스 편 본문

카테고리 없음

자바 개념 정복하기- 클래스와 인터페이스 편

osoohynn 2025. 9. 6. 14:31

자바 개념을 확실히 다잡고 진짜 제대로 알고쓰자는 의미에서 기록을 시작합니다.

내용은 학교 수업시간에 배운 내용을 바탕으로 저의 추가 지식을 더하고 검색을 통해 작성했습니다.

 

목차 (배운 내용)

  • 클래스 개념 및 기본 구조
  • 객체 타입변환 (업캐스팅과 다운캐스팅)
  • 오버라이딩
  • 인터페이스
  • 예외
  • 제네릭
  • 컬렉션 프레임워크

클래스와 객체

💡 클래스
클래스(Class): 객체를 만들기 위한 '틀' 또는 '설계도'로, 속성(필드)과 기능(메서드)을 정의함.

 

클래스 밖에 올 수 있는 3가지

  • package
  • import
  • 외부클래스 (external class)

클래스 안에 올 수 있는 4가지 (클래스 구성 요소)

  • 필드
  • 메서드
  • 생성자: 객체 생성 기능, 클래스 이름과 동일해야 함
  • 내부클래스 (inner class)

💡 객체
객체(Object): 클래스로부터 생성된 실체로, 인스턴스(Instance)라고도 함.

  • 객체의 생성 및 활용
    • 객체 생성: new 키워드를 통해 클래스를 인스턴스화하여 생성
    • 생성된 객체는 힙(Heap) 메모리에 저장됨

객체 타입 변환

💡 업캐스팅
하위 클래스의 객체를 상위 클래스 타입의 참조 변수에 대입하는 것

  • 업캐스팅은 항상 가능함
A a = new A();
B b = a;

 

💡 다운캐스팅
업캐스팅된 객체를 다시 원래의 하위 클래스 타입으로 변환하는 것

  • 명시적인 타입 변환 필요
  • 힙 메모리에 실제 객체가 존재해야만 가능
B b = new B();
A a = (A) b;

C c = new C();
B b2 = (B) c;
A a2 = (A) c;
A a = new A();
B b = (B) a; // 오류 발생

A a2 = new B();
B b2 = (B) a2; // 정상

C c = (C) a2; // 오류 발생

메서드 오버라이딩

💡 오버라이딩
부모 클래스로부터 상속받은 메서드를 자식 클래스에서 재정의하는 것

조건

  • 부모 클래스의 메서드와 이름, 매개변수, 리턴 타입 동일
  • 접근 제어자는 부모 클래스와 같거나 더 넓어야 함

특징

  • static 메서드나 필드는 오버라이딩 불가

인터페이스 (Interface)

💡 인터페이스

목적

  • 확장성, 유연성, 재사용성을 높이는 것이 핵심 목적
  • 표준 규약 정의
  • 다형성 구현
  • 의존성 감소 (느슨한 결합)
  • 다중 상속 대체

특징

  • 필드: 자동으로 public static final 선언
  • 메서드: 자동으로 public abstract 선언 (디폴트 메서드 제외)
  • 인터페이스 자체만으로는 객체 생성 불가
interface A {
	int a = 3;
    void abc();
}

예외 처리 (Exception Handling)

💡 에러 (Error)
JVM 문제 등, 개발자가 해결할 수 없는 오류

💡 예외 (Exception)
개발자가 코드로 처리할 수 있는 오류

종류

  • 일반 예외 (Checked Exception): 컴파일 시점 확인
  • 실행 예외 (Unchecked Exception): 실행 중 발생 (RuntimeException)

처리 방법

  • try-catch 블록 사용
  • throws 키워드로 호출부에 예외 전가

제네릭 (Generics)

💡 제네릭 클래스
잘못된 타입 캐스팅으로 인한 RuntimeException 방지

특징

  • 클래스 내부에서 사용할 데이터 타입을 외부에서 지정
  • 컴파일 단계에서 강한 타입 체크 가능
class MyClass<T> {
	T data;
}

컬렉션 프레임워크 (Collection Framework)

💡 컬렉션
동일한 타입의 데이터를 묶어서 관리하는 자료구조 클래스 및 인터페이스의 모음

  • 데이터 저장 공간의 크기를 동적으로 관리
  • 주요 인터페이스
    • List: 순서 O, 중복 허용 (예: ArrayList)
    • Set: 순서 X, 중복 불가 (예: HashSet)
    • Map: 키-값 쌍 저장 (예: HashMap)