Java

Java

【Java】Java21のrecordでシンプルにデータを表現する使い方

こんにちは、かつコーチです。「値を保持するだけのクラス」を作るたびに、コンストラクタ・getter・equals・hashCode・toStringを書くのに疲れたことはありませんか。今回はJava 21(LTS)でも標準機能として使えるr...
Java

【Java】Javaのenumの使い方:定数管理から振る舞いの実装まで

こんにちは、かつコーチです。「曜日」や「ステータス」のような決まった値を扱うとき、intやStringの定数で済ませていませんか。今回はJavaのenum(列挙型)を使って、そうしたコードを安全で読みやすくする方法を解説します。enumとは...
Java

【Java】Javaの内部クラス・匿名クラスの使い方を種類別に整理する

こんにちは、かつコーチです。Javaには4種類の「クラスの中に書くクラス」があります。今回はその使い分けと、実際に手を動かして分かった注意点を整理します。4種類の内部クラスの違いメンバ内部クラス(Inner Class)外側のクラスのインス...
Java

【Java】Javaのinterfaceデフォルトメソッド・静的メソッドを使いこなす

こんにちは、かつコーチです。今回はJava 8以降のinterfaceに追加された、デフォルトメソッドと静的メソッドを扱います。「interfaceは抽象メソッドしか持てない」という前提知識をアップデートしたい方向けの内容です。デフォルトメ...
Java

【Java】interfaceの基本を初心者向けに分かりやすく解説

こんにちは、かつコーチです。前回は抽象クラスを解説しました。今回は、抽象クラスと似ているようで役割が異なる「interface」の基本について解説します。interfaceとは?「実装すべき機能の約束事」を定義するinterface(インタ...
Java

【Java】抽象クラス(abstract)の使い方を基礎から解説

こんにちは、かつコーチです。前回はオーバーライドとポリモーフィズムを解説しました。今回は、「共通の設計だけ決めて、具体的な実装は子クラスに任せたい」というときに使う抽象クラス(abstract)について解説します。抽象クラスとは?インスタン...
Java

【Java】メソッドのオーバーライドとポリモーフィズムの違いを解説

こんにちは、かつコーチです。前回は継承の基本を解説しました。今回は、継承と組み合わせて使う「オーバーライド」と、オブジェクト指向の中核概念の1つである「ポリモーフィズム」について解説します。オーバーライドとは?親クラスのメソッドを子クラスで...
Java

【Java】継承の基本とsuperキーワードの使い方をわかりやすく解説

こんにちは、かつコーチです。ここまでクラス・オブジェクト・カプセル化を解説してきましたが、今回は複数のクラスに共通する部分をまとめられる「継承」と、セットで使うsuperキーワードを解説します。継承とは?共通部分を親クラスにまとめる仕組み継...
Java

【Java】カプセル化とgetter・setterの書き方を初心者向けに解説

こんにちは、かつコーチです。前回はコンストラクタで初期値を安全に設定する方法を解説しました。今回は、フィールドを外部から自由に触らせないようにする「カプセル化」と、そのためのgetter・setterの書き方を解説します。カプセル化とは?フ...
Java

【Java】コンストラクタの基本とthisキーワードの使い方

こんにちは、かつコーチです。前回の記事でクラスとオブジェクトの違いを解説しましたが、「オブジェクトを作るたびにフィールドを1つずつ代入するのが面倒」と感じませんでしたか?今回は、その悩みを解決するコンストラクタと、セットで登場するthisキ...
Java

【Java】クラスとオブジェクトの違いを初心者向けに徹底解説

こんにちは、かつコーチです。今回は、Javaの学習で最初につまずきやすい「クラス」と「オブジェクト」の違いについて解説します。「なんとなく分かった気がするけど、いざコードを書くと混乱する」という方は多いです。この記事を読めば、設計図と実体の...
Java

【Java】Javaのコマンドライン引数(args)の受け取り方を初心者向けに解説

こんにちは、かつコーチです。「public static void main(String[] args)のargsって、結局何のためにあるんだろう」と気になったことはありませんか。コマンドライン引数(プログラム実行時にターミナルから渡す値...
Java

【Java】Javaのスコープと変数の生存期間を初心者向けにわかりやすく解説

こんにちは、かつコーチです。「if文の中で作った変数を、外側で使おうとしたらエラーになった」という経験はありませんか。これはスコープ(変数が有効な範囲)を理解していないとつまずきやすいポイントです。この記事では、スコープの基本ルールと、変数...
Java

【Java】Javaのfinalキーワードの使い方(変数・メソッド・クラス)を解説

こんにちは、かつコーチです。「他の人のコードでfinalという単語をよく見るけれど、付けても付けなくても動くから意味が分からない」と感じたことはありませんか。final(変数の再代入・メソッドのオーバーライド・クラスの継承を禁止するキーワー...
Java

【Java】Javaのstaticの意味とは?インスタンスとの違いを初心者向けに解説

こんにちは、かつコーチです。「public static void mainのstaticって何のためについているんだろう」と疑問に思ったことはありませんか。static(クラスに1つだけ存在する、インスタンスに依存しないメンバーを表すキー...
Java

【Java】Javaのパッケージとimportの仕組みを初心者向けにわかりやすく解説

こんにちは、かつコーチです。「import java.util.List;って毎回書いているけど、これって何をしているの?」と疑問に思ったことはありませんか。Javaのパッケージ(クラスをグループ分けして管理する仕組み)とimport(他の...
Java

【Java】Javaの可変長引数(varargs)とは?使い方と注意点を解説

こんにちは、かつコーチです。「引数の数が決まっていないメソッドを作りたいけれど、オーバーロードで全パターン用意するのは大変」と感じたことはありませんか。Javaには可変長引数(varargs)という、引数の数を可変にできる仕組みがあります。...
Java

【Java】Javaのメソッドオーバーロードとは?使い方と注意点をわかりやすく解説

こんにちは、かつコーチです。「引数の数や型が違うだけの似たようなメソッドを、いちいち別名で作るのは面倒」と感じたことはありませんか。Javaにはオーバーロード(同じ名前で引数の型・数・順序が異なる複数のメソッドを定義できる仕組み)という機能...
Java

【Java】Javaのメソッドとは?定義の書き方と引数の渡し方を初心者向けに解説

こんにちは、かつコーチです。「同じ処理を何回も書いていて冗長だな」と感じたことはありませんか。Javaでは、そうした処理をメソッド(一連の処理をまとめて名前を付けたもの)にすることで、コードをスッキリさせられます。この記事では、メソッドの定...
Java

【Java】Java StringBuilderの使い方:文字列連結を効率化する方法

こんにちは、かつコーチです。前回はStringの基本を解説しましたが、大量の文字列を繰り返し連結する処理ではStringの+演算子は非効率です。この記事では、そうした場面で使うStringBuilder(文字列を効率よく組み立てるためのクラ...