サイズ: 4666
コメント:
|
サイズ: 4667
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 25: | 行 25: |
} }}} ---- === static変数 === static変数(静的変数)はクラス内に取られる変数で、 そのクラスのインスタンスから共通のものとして扱うことができます。 '''例''' . Takoyakiクラスにはkosuとajiの2つの変数があります。 {{{#!java public class Takoyaki { static int kosu; String aji; Takoyaki(String a) { aji = a; } public static void main(String[] args) { new Takoyaki("ソース"); new Takoyaki("しょうゆ"); } } }}} ajiはインスタンスの属性であり、 インスタンス内に変数が取られます。 一方static修飾子がつけられた変数kosuはクラス内に取られます。 図で示すとこのようになります。 クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、 ここに変数が取られるわけではありません。 {{attachment:static1.png}} この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。 . 変数宣言のところで値を0に初期化しておきます。 . コンストラクタが呼ばれたらkosuを1増やします。 いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。 {{{#!java public class Takoyaki { static int kosu = 0; String aji; Takoyaki(String a) { kosu++; aji = a; } public static void main(String[] args) { new Takoyaki("ソース"); new Takoyaki("しょうゆ"); System.out.println( kosu ); } |
|
行 105: | 行 172: |
== static変数 == static変数(静的変数)はクラス内に取られる変数で、 そのクラスのインスタンスから共通のものとして扱うことができます。 ---- === 例 === Takoyakiクラスにはkosuとajiの2つの変数があります。 {{{#!java public class Takoyaki { static int kosu; String aji; Takoyaki(String a) { aji = a; } public static void main(String[] args) { new Takoyaki("ソース"); new Takoyaki("しょうゆ"); } } }}} ajiはインスタンスの属性であり、 インスタンス内に変数が取られます。 一方static修飾子がつけられた変数kosuはクラス内に取られます。 図で示すとこのようになります。 クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、 ここに変数が取られるわけではありません。 {{attachment:static1.png}} この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。 . 変数宣言のところで値を0に初期化しておきます。 . コンストラクタが呼ばれたらkosuを1増やします。 いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。 {{{#!java public class Takoyaki { static int kosu = 0; String aji; Takoyaki(String a) { kosu++; aji = a; } public static void main(String[] args) { new Takoyaki("ソース"); new Takoyaki("しょうゆ"); System.out.println( kosu ); } } }}} |
ここまでのまとめ
- Javaプログラムはバーチャルマシン上で実行される。
- Javaバイトコードは実行する環境が変わっても共通である。
- Javaのプログラムはクラスの記述である。
クラス
クラスはオブジェクトの状態と動作をサポートする。
オブジェクトの状態は属性の集まりとして表される。
オブジェクトの動作はメソッドで記述される。
クラスの記述(プログラム)は次のような形式になる。 5つの項目があるが、必要なものだけ記述すればよい。
それぞれ修飾子をつけることができる。
public class クラス名 { static変数の宣言 属性の宣言 コンストラクタの定義 普通のメソッドの定義 staticメソッドの定義 }
static変数
static変数(静的変数)はクラス内に取られる変数で、 そのクラスのインスタンスから共通のものとして扱うことができます。
例
- Takoyakiクラスにはkosuとajiの2つの変数があります。
ajiはインスタンスの属性であり、 インスタンス内に変数が取られます。
一方static修飾子がつけられた変数kosuはクラス内に取られます。
図で示すとこのようになります。 クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、 ここに変数が取られるわけではありません。
この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。
- 変数宣言のところで値を0に初期化しておきます。
- コンストラクタが呼ばれたらkosuを1増やします。
いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。
メソッド
メソッドを使うには
- インスタンス.メソッド();
のように、インスタンスとメソッド名をピリオドでつなぎ後ろに括弧を書く。 引数が必要なときは括弧の中に書く。
- インスタンスに対してメソッド()を行う
のように解釈すればよい。
メソッドが呼び出されると、このときのインスタンスの値が this に対応付けられて、 メソッド本体が実行される。
static変数
static修飾子のついた変数宣言。
static変数はクラス内に共通にとられる。
属性
static修飾子のつかない変数宣言。
この変数は個々のインスタンス内にとられる。
他から参照するには
- インスタンス.変数名
の形式で書く。
そのクラスのメソッド内では
- this.変数名
の形式になる。 ただし、混乱の可能性が無ければthis.は省略できる。
コンストラクタ
コンストラクタはクラス名と同じ名前で後ろに()がつく。
引数の型や個数が異なればいくつでも定義できる。
普通のメソッド
static修飾子のつかないメソッド。
メソッドの呼び出しは
- インスタンス.メソッド(引数)
の形式で書く。 引数は無いときもあるし、複数のときもある。
メソッド内では、呼び出しもとのインスタンスはthisで参照できる。
staticメソッド
static修飾子のついたメソッド。
他のクラスから呼び出すときは
- クラス名.メソッド(引数)
の形式で書く。