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

削除された内容 追加された内容
C言語やC++とは異なり、Javaには「構造体」の概念は無い。
クラス変数のコード例
81 行
 
一方、クラス変数の所属先は、クラス自体にある。この仕様のため、比較的に容易に、第三のクラスからも値の読み書きがしやすい。
 
 
;ClassSyntax.java:<syntaxhighlight lang="Java" line>
/**
* static を使わない場合
*/
class Product {
 
String name; // インスタンス変数
int price;
}
 
class ClassSyntax {
public static void main(String[] args) {
Product milk = new Product();
milk.name = "牛乳";
milk.price = 150;
 
Product cmilk = new Product();
cmilk.name = "コーヒー牛乳";
cmilk.price = 180;
 
System.out.println(milk.name + "の単価は" + milk.price + "円");
System.out.println(cmilk.name + "の単価は" + cmilk.price + "円");
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
牛乳の単価は150円
コーヒー牛乳の単価は180円
</syntaxhighlight>
 
 
;ClassSyntax.java:<syntaxhighlight lang="Java" line>
/**
* static を使う場合
*/
class Product {
 
static String name; // クラス変数
static int price;
}
 
class ClassSyntax {
public static void main(String[] args) {
Product milk = new Product();
milk.name = "牛乳";
milk.price = 150;
 
Product cmilk = new Product();
cmilk.name = "コーヒー牛乳";
cmilk.price = 180;
 
System.out.println(milk.name + "の単価は" + milk.price + "円");
System.out.println(cmilk.name + "の単価は" + cmilk.price + "円");
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
コーヒー牛乳の単価は180円
コーヒー牛乳の単価は180円
</syntaxhighlight>
 
static を使っているほうは、出力の1行目が「牛乳」ではなく「コーヒー牛乳」に変わっています。これは17行目と18行目でクラス側で管理されていた変数を書き換えたからです。フィールドをstatic修飾子をつけて宣言するとクラス側で管理することになるので、上記のように結果が変わります。
 
 
== メソッド ==