「Java/文法/クラス」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎コンストラクターのあるクラスのインスタンスの配列化とprivateメンバー・メソッド: #インスタンスの配列化で紹介したコードを、privateメンバー・コンストラクター・メソッド・初期化された配列と拡張for文の組合せで再実装すると、下記のように整頓されたコードになります。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎列挙型( enum ): 多くのモダンなプログラミング言語には、列挙型( enum )が提供されていますが、Java ではクラスとして定義されるので、フィールドやコンストラクターを含むメソッドも定義できます。
タグ: 2017年版ソースエディター
286 行
Javaのコンストラクタはひとつのクラスにつき原則ひとつだが、例外的に、引数の型によって処理を変える場合はそれぞれの引数の型に応じたコンストラクタを別々に書ける。よって、引数の型で処理を変える場合は、ひとつのクラス内のコンストラクタの個数が複数になる。
 
== コンストラクターのあるクラスのインスタンスの配列化とprivateメンバフィルド・メソッド ==
[[#インスタンスの配列化]]で紹介したコードを、privateメンバフィルド・コンストラクター・メソッド・初期化された配列と拡張for文の組合せで再実装すると、下記のように整頓されたコードになります。
 
;[https://paiza.io/projects/rWvTXBUYGzPl5y-con-CvA?language=java ClassSyntax2.java]:<syntaxhighlight lang=java line highlight="2-3,10-12,17-20,22-24">
321 行
コーヒー牛乳の単価は180円
</syntaxhighlight>
:メンバフィルドを private にすることで、フリーハンドなメンバフィルドへのアクセスを禁止しカプセル化を実現しています。
:メンバフィルドを private にしたので、表示を行う手続きをメソッド化しました。
:この際、表示イメージとコードを近づけるため、<code>String.format("%sの単価は%d円", name, price)</code>のように書式化メソッドを使用しました。
 
== 列挙型( enum ) ==
多くのモダンなプログラミング言語には、列挙型( ''enum'' )が提供されていますが、Java ではクラスとして定義されるので、フィールドやコンストラクターを含むメソッドも定義できます。
 
[TODO:コード例]
 
[[カテゴリ:Java]]