Java

スポンサーリンク
Java

Java | オブジェクト指向:抽象メソッド

抽象メソッドとは抽象メソッドは「中身(実装)がないメソッド」で、宣言だけを持ちます。abstract を付けて宣言し、具体的な処理は子クラスが必ず実装します。抽象クラスに定義して、共通の“名前・引数・...
Java

Java | オブジェクト指向:抽象クラスとは

抽象クラスとは抽象クラスは「直接はインスタンス化できない、共通の骨格と契約をまとめるためのクラス」です。abstract を付けて宣言し、抽象メソッド(中身のないメソッド)を含められます。継承した子ク...
Java

Java | オブジェクト指向:final フィールド

final フィールドとは何かfinal フィールドは「一度だけ代入でき、その後は再代入できない」フィールドです。オブジェクトの生成時に値を確定し、以降は参照を変えないことで、設計の予測可能性が上がり...
Java

Java | オブジェクト指向:final メソッド

final メソッドとは何かfinal メソッドは「子クラスからオーバーライド(上書き)できないメソッド」です。継承関係にあっても、その振る舞いを固定し、契約を壊されないようにします。親が守るべき安全...
Java

Java | オブジェクト指向:final クラス

final クラスとは何かfinal クラスは「継承を禁止したクラス」です。extends して子クラスを作ることができません。目的は、クラスの振る舞いを固定して“改変の余地”をなくし、設計の安全性・...
Java

Java | オブジェクト指向:多段継承の概念

多段継承とは何か多段継承は「親→子→孫…と継承が階層的に連なっている状態」を指します。AをBが継承し、BをCが継承する、といった“何段も連なる継承”です。Javaは「単一継承」なのでクラスを複数同時に...
Java

Java | オブジェクト指向:親クラスのコンストラクタ呼び出し

親コンストラクタ呼び出しとは何か子クラスのコンストラクタが、親クラス(スーパークラス)のコンストラクタを呼び出して「親の状態を先に正しく初期化する」仕組みです。Java では super(...) を...
Java

Java | オブジェクト指向:super キーワード

何をするキーワードかsuper は「親クラス(スーパークラス)のメンバーを参照する」ためのキーワードです。子クラスでオーバーライドしたメソッドから、親の元の実装を呼びたいときや、親のコンストラクタを明...
Java

Java | オブジェクト指向:継承のデメリット

まず、継承のデメリットとは何か継承は便利ですが、「親と子が強く結び付く」ため、変更や保守の難易度を上げる要因になりがちです。意図しない依存が広がり、拡張やテストが難しくなる“落とし穴”が複数あります。...
Java

Java | オブジェクト指向:継承のメリット

継承のメリットを一言で継承の最大のメリットは「共通の契約を共有しながら、振る舞いだけを差し替えて再利用できる」ことです。コードの重複を減らし、拡張しやすく、呼び出し側は共通型で扱えるため、全体の設計が...
Java

Java | オブジェクト指向:継承(extends)

まず、継承(extends)とは何か継承は「既存のクラスの性質(フィールドやメソッド)を受け継ぎ、必要な部分だけを差し替えたり足したりする」仕組みです。extends で親クラスを指定すると、子クラス...
Java

Java | オブジェクト指向:@Override アノテーション

何をするアノテーションか@Override は「このメソッドは親のメソッドをオーバーライド(上書き)しています」とコンパイラに伝えるための印です。付けておくと、シグネチャの食い違いやタイプミス、オーバ...
Java

Java | オブジェクト指向:メソッドのオーバーライド

何が「オーバーライド」かメソッドのオーバーライドは、親クラスが持つメソッドの「振る舞いを、子クラスで置き換える」ことです。継承関係にあるとき、同じメソッド名・同じ引数(シグネチャ)を子クラスで再定義す...
Java

Java | オブジェクト指向:toString のオーバーライド

toString をオーバーライドする意味toString は「そのオブジェクトを人間が読める文字列にする」ためのメソッドです。デフォルトはクラス名+ハッシュ(例: com.example.User@...
Java

Java | オブジェクト指向:equals と == の違い

ざっくり結論== は「同じ実体(同じ場所)か」を比べる演算子、equals は「中身(値)が同じか」を比べるメソッドです。プリミティブでは == が値比較、参照型(オブジェクト)では == が参照比較...
Java

Java | オブジェクト指向:hashCode のオーバーライド

なぜ hashCode をオーバーライドするのかhashCode は「オブジェクトのハッシュ値」を返すメソッドで、HashMap・HashSet などのハッシュ構造が「どのバケットに入れるか」を決める...
Java

Java | オブジェクト指向:equals のオーバーライド

equals をオーバーライドする意味equals は「同じモノかどうか」を値の観点で判定するためのメソッドです。デフォルトの equals は「同じインスタンス(同一性)」しか比較しませんが、値オブ...
Java

Java | オブジェクト指向:値オブジェクトとは

値オブジェクトとは何か値オブジェクトは「値そのものを表す小さな不変の型」です。金額、メールアドレス、期間、座標、IDなど、意味とルールを持つ“ただの値”をクラス化して、検証・整合性・振る舞い(比較や計...
Java

Java | オブジェクト指向:不変オブジェクトの考え方

不変オブジェクトとは何か不変オブジェクトは「生成後に状態が一切変わらない」オブジェクトです。フィールドは初期化時に確定され、その後は再代入されません。外から見ても中から見ても、値が変化しないので、並行...
Java

Java | オブジェクト指向:getter / setter

全体像getter / setter は「フィールド(内部状態)を外から安全に読み書きするための窓口」です。直接フィールドを公開せず、メソッド経由にすることで、読み取りは意図を伝え、書き込みは検証や前...
Java

Java | オブジェクト指向:カプセル化の目的

まとめて言うと何かカプセル化は「内部の状態や仕組みを隠し、外からは安全な窓口だけを見せる」設計のことです。目的は3つに絞られます。整合性の保護(壊れない)、変更容易性(中身を差し替えても外が壊れない)...
Java

Java | オブジェクト指向:パッケージプライベート

全体像パッケージプライベート(package-private)は「アクセス修飾子を何も付けない」状態の可視性で、同一パッケージ内からだけ見える(使える)という意味です。クラス・メソッド・フィールド・コ...
Java

Java | オブジェクト指向:protected の意味

全体像protected は「同じパッケージ内から見える」ことに加えて「別パッケージでも、継承したサブクラスからは自分自身を通して見える」アクセス修飾子です。外部に完全公開する public と、クラ...
Java

Java | オブジェクト指向:private の意味

全体像private は「同じクラスの中からだけ見える」というアクセス修飾子です。外部のクラスはもちろん、継承したサブクラスからも直接は触れません。目的はカプセル化——内部の状態や実装詳細を隠し、外部...
Java

Java | オブジェクト指向:public の意味

全体像public は「どこからでも見える・使える」という意味のアクセス修飾子です。パッケージが違っても、クラス外からでも、他のモジュールからでも、public にしたメンバー(クラス・メソッド・フィ...
Java

Java | オブジェクト指向:アクセス修飾子の種類

全体像アクセス修飾子は「どこからそのクラス・フィールド・メソッドが見えるか(使えるか)」を制御するための言語機能です。公開範囲を絞ることで、意図しない使われ方や整合性の破壊を防ぎ、APIの進化に強くで...
Java

Java | オブジェクト指向:static フィールドの用途

全体像static フィールドは「クラスに属する共有の状態」を表します。インスタンス(個体)ごとに違う値ではなく、クラス全体で1つだけ存在する値です。用途は「定数」「設定」「生成数のカウンタ」「共有キ...
Java

Java | オブジェクト指向:static メソッドの制約

概要static メソッドは「クラスに属する処理」で、インスタンス(オブジェクト)に依存しない計算や共通ユーティリティを表します。インスタンスがなくても呼べる一方で、インスタンス特有の情報には触れられ...
Java

Java | オブジェクト指向:static とインスタンスの違い

全体像static は「クラスに属するもの」、インスタンスは「オブジェクト(個体)に属するもの」です。static フィールドやメソッドは全インスタンスで共有され、クラスがロードされた時点で使えます。...
Java

Java | オブジェクト指向:インスタンス変数のスコープ

全体像インスタンス変数(フィールド)は「オブジェクトがずっと覚えている状態」で、クラスの中に宣言します。スコープは「どこからその変数が見えるか」を意味し、インスタンス変数は基本的に同じクラスの全メソッ...
スポンサーリンク