「Java/文法/クラス」の版間の差分
削除された内容 追加された内容
→コンストラクターのあるクラスのインスタンスの配列化: highlight="12-15,17-19" タグ: 2017年版ソースエディター |
→コンストラクターのあるクラスのインスタンスの配列化とprivateメンバー・メソッド: #インスタンスの配列化で紹介したコードを、privateメンバー・コンストラクター・メソッド・初期化された配列と拡張for文の組合せで再実装すると、下記のように整頓されたコードになります。 タグ: 2017年版ソースエディター |
||
286 行
Javaのコンストラクタはひとつのクラスにつき原則ひとつだが、例外的に、引数の型によって処理を変える場合はそれぞれの引数の型に応じたコンストラクタを別々に書ける。よって、引数の型で処理を変える場合は、ひとつのクラス内のコンストラクタの個数が複数になる。
== コンストラクターのあるクラスのインスタンスの配列化とprivateメンバー・メソッド ==
[[#インスタンスの配列化]]で紹介したコードを、privateメンバー・コンストラクター・メソッド・初期化された配列と拡張for文の組合せで再実装すると、下記のように整頓されたコードにな
;[https://paiza.io/projects/rWvTXBUYGzPl5y-con-CvA?language=java ClassSyntax2.java]:<syntaxhighlight lang=
class Product {
this.name = name;
this.price = price; public void println() {
System.out.println(String.format("%sの単価は%d円", name, price));
}
}
class ClassSyntax2 {
}
}
}</syntaxhighlight>▼
}
;実行結果:<syntaxhighlight lang=text>
牛乳の単価は150円
コーヒー牛乳の単価は180円
</syntaxhighlight>
:メンバーを private にすることで、フリーハンドなメンバーへのアクセスを禁止しカプセル化を実現しています。
:メンバーを private にしたので、表示を行う手続きをメソッド化しました。
:この際、表示イメージとコードを近づけるため、<code>String.format("%sの単価は%d円", name, price)</code>のように書式化メソッドを使用しました。
[[カテゴリ:Java]]
|