フェーズ 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
基本的な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
)
- GitHubに公開し、説明的なREADMEを付ける
更新されたリソース