Skip to content

2단계 – 객체 지향 프로그래밍 (2~3개월)

Classes, Objects, Attributes, Methods

  • 클래스 구조
  • 객체 인스턴스화
  • this 사용
  • 모범 사례: 명명, 코드 정리

Encapsulation, Inheritance, Polymorphism, Abstraction

  • Encapsulation: private, getters/setters, 검증
  • Inheritance: extends, overriding (@Override)
  • Polymorphism: 서브타입, method overloading
  • Abstraction: 개요, 인터페이스 및 추상 클래스 준비

Interfaces와 Abstract Classes

  • Interfaces: implements, default methods
  • Abstract classes: 추상 메서드와 구체적 메서드
  • 인터페이스와 추상 클래스의 차이점

Constructors, Initializers, Static Blocks

  • 기본 및 파라미터화된 생성자, this() 호출
  • 초기화 블록 ({}) 및 static 블록 (static {})

Enumerations

  • enum 생성 및 사용
  • enum 내의 메서드와 속성

기본 Collections

  • ArrayList: 추가, 제거, 반복 (for, forEach, Iterator)
  • HashMap: key-value, 일반적인 작업
  • HashSet: 중복 제거
  • Queue 및 Stack 소개 (예: LinkedList를 queue/stack으로 사용)
  • Java Collections Framework 소개

기본 알고리즘

  • 선형 검색 및 이진 검색
  • Sorting: Bubble Sort, Collections.sort()
  • Recursion: 개념 및 간단한 예제 (예: 팩토리얼, 피보나치)
  • 복잡도 소개 (O(n), O(log n))

Generics

  • 구문 (), 제네릭 컬렉션, 제네릭 메서드
  • Bounds (extends, super)

Stream API (소개)

  • 기본 작업: filter, map, collect
  • ArrayList를 사용한 예제

Unit Testing (소개)

  • JUnit의 기본 사용
  • 클래스 및 메서드에 대한 테스트 케이스 작성
  • TDD (Test-Driven Development) 소개

최종 프로젝트

  • 도서관 시스템
  • 클래스: Book, User, Library
  • 상속: DigitalBook 및 PhysicalBook
  • 컬렉션: 책을 위한 ArrayList, 대출을 위한 HashMap
  • Encapsulation: 데이터 검증
  • Git: 기능별 commit (예: feature/book-management)
  • 설명이 포함된 README와 함께 GitHub에 공개

업데이트된 리소스