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

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
クリンナップ
タグ: 2017年版ソースエディター
1 行
== 定義方法 ==
例1:
;ClassSyntax.java:<syntaxhighlight lang="Java" line>
// ファイル名: ClassSyntax.java
/**
* 商品を表す。
8 ⟶ 7行目:
class Product {
/**
* 値段品名
*/
String name;
/**
*
*/
int price;
28 ⟶ 27行目:
juice.price = 200;
 
System.out.println(milk.name + "の値段単価は" + milk.price + "円");
System.out.println(juice.name + "の値段単価は" + juice.price + "円");
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
 
牛乳の単価は200円
=== 実行結果 ===
牛乳ジュース値段単価200150
</syntaxhighlight>
ジュースの値段は150円
===; 解説 ===
 
: 4行目から14行目までがクラス{{code|Product}}の、16行目から31行目までがクラス{{code|ClassSyntax}}の定義である。
=== 解説 ===
4行目から14行目までがクラス{{code|Product}}の、16行目から31行目までがクラス{{code|ClassSyntax}}の定義である。: {{code|Product}}では、{{code|Product}}の実体 (インスタンスと呼ばれる) ごとに異なる値を持つことができる変数 (以下、インスタンス変数と呼ぶ) として{{code|name}}と{{code|price}}が宣言されている。
: {{code|ClassSyntax}}の{{code|main}}「メソッド」では、{{code|Product}}のインスタンスをnew演算子 (new演算子に到達したときに実行される処理群を「コンストラクタ」の中に記述することができる。
: コンストラクタについては後述) を用いて生成することができる。
 
== インスタンス変数 ==
: <syntaxhighlight lang="java" line start="4">
class Product {
/**
* 値段品名
*/
String name; // インスタンス変数
String name;
/**
*
*/
int price; // インスタンス変数
int price;
// インスタンス変数ではない
static int staticField;
}
</syntaxhighlight>
69 ⟶ 65行目:
 
例2:
:<syntaxhighlight lang="java" line start="4" highlight="15-1817,23-25">
class Product {
/**
* 値段品名
*/
String name;
/**
*
*/
int price;
85 ⟶ 81行目:
*/
void printDetails() {
System.out.println(this.name + "の値段単価は" + this.price + "円");
}
/**
* を更新する
* @param newPrice 新しい
*/
void setPrice(int newPrice) {
99 ⟶ 95行目:
 
== コンストラクタ ==
コンストラクタをうまく用いるとクラスの初期化を簡略定型することができ、内部構造の詳細を隠蔽できる。
 
例3:
:<syntaxhighlight lang="java" line start="4" highlight="12-15,20-21">
class Product {
/**
* 値段品名
*/
String name;
/**
*
*/
int price;
124 ⟶ 120行目:
Product milk = new Product("牛乳", 150);
Product juice = new Product("ジュース", 200);
System.out.println(milk.name + "の値段単価は" + milk.price + "円");
System.out.println(juice.name + "の値段単価は" + juice.price + "円");
}
}
</syntaxhighlight>
:他のメソッドと違う点は、名前がクラスの名前と同じでなければならないという制約がつくこと、戻り値の宣言をしてはならないことだ。
 
メソッドと違う点は、名前がクラスの名前と同じでなければならないという制約がつくこと、戻り値の宣言をしてはならないことだ。
 
[[カテゴリ:Java]]