welcome: please sign in
location: "コンストラクタ"の差分
1と14のリビジョン間の差分 (その間の編集: 13回)
2008-10-28 01:02:42時点のリビジョン1
サイズ: 478
編集者: masahiko
コメント:
2009-11-02 05:48:55時点のリビジョン14
サイズ: 2920
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
== コンストラクタ == === コンストラクタ ===
行 3: 行 3:
クラスはオブジェクトの状態と動作をサポートする。 属性(の集まり)がインスタンスの型紙として使われました。
行 5: 行 5:
オブジェクトの状態は属性の集まりとして表される。 属性の宣言は変数の宣言と同じ書き方をしますが、ここに変数が取られるわけではありません。
行 7: 行 7:
オブジェクトの動作はメソッドで記述される。

 {{{
 class クラス名
 {{{#!java
 public class Item
行 12: 行 10:
     static変数の宣言
     属性の宣言(インスタンスの型紙)
     コンストラクタの定義
     通常のメソッドの定義
     staticメソッドの定義
  String name;
  int price;
  
  public static void main(String[] args)
  {
   Item a;
   a = new Item();
   a.name = "おにぎり";
   a.price = 120;
  }
行 19: 行 22:

この例では new Item() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、
a.name、a.priceによって、そのインスタンスの属性(変数)にアクセスすることができました。

インスタンスを生成するときに使われる Item() のことをコンストラクタと言います。

 * コンストラクタはクラスと同じ名前です。
 * コンストラクタを呼び出すときは前に new をつけます。
 * コンストラクタが呼び出されるとインスタンスが作成されます。
----
=== コンストラクタの定義 ===

コンストラクタは定義しなくてもかまいません。

インスタンス作成時になんらかの処理をしたいときには、
コンストラクタを定義して記述します。

 * コンストラクタには戻り値を指定できません。

 {{{#!java
 public class Item
 {
  ...
  
  Item()
  {
   System.out.println("Itemインスタンスを作成しました");
  }
 
  public static void main(String[] args)
  {
   Item a;
   a = new Item();
   ...
  }
 }
 }}}

この例では new Item() が呼び出されるとインスタンスが作成され、
「Itemインスタンスを作成しました」と表示されます。

=== オーバーロード ===

引数をとるコンストラクタを定義することもできます。

引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。

 {{{#!java
 public class Card
 {
  String suit;
  int rank;
  
  Card(String s, int r)
  {
   suit = s;
   rank = r;
  }
 
  public static void main(String[] args)
  {
   Card a;
   a = new Card("ハート", 12);
  }
 }
 }}}

インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。

値はコンストラクタの引数として与えています。

コンストラクタ内で使われている suit, rank がどの変数を指しているかは明らかなので、this. を省略しています。
----
=== コンストラクタの継承 ===

コンストラクタは継承されません。

サブクラスのコンストラクタが呼ばれたときは
 1. スーパークラスのコンストラクタの処理
 1. サブクラスで記述された処理
の順に行われます。

コンストラクタ

属性(の集まり)がインスタンスの型紙として使われました。

属性の宣言は変数の宣言と同じ書き方をしますが、ここに変数が取られるわけではありません。

  •    1  public class Item
       2  {
       3         String name;
       4         int price;
       5         
       6         public static void main(String[] args)
       7         {
       8                 Item a;                 
       9                 a = new Item();
      10                 a.name = "おにぎり";
      11                 a.price = 120;
      12         }
      13  }
    

この例では new Item() が行われるとインスタンス(そのクラスのオブジェクト)が作られ、 a.name、a.priceによって、そのインスタンスの属性(変数)にアクセスすることができました。

インスタンスを生成するときに使われる Item() のことをコンストラクタと言います。

  • コンストラクタはクラスと同じ名前です。
  • コンストラクタを呼び出すときは前に new をつけます。
  • コンストラクタが呼び出されるとインスタンスが作成されます。


コンストラクタの定義

コンストラクタは定義しなくてもかまいません。

インスタンス作成時になんらかの処理をしたいときには、 コンストラクタを定義して記述します。

  • コンストラクタには戻り値を指定できません。
       1  public class Item
       2  {
       3         ...
       4         
       5         Item()
       6         {
       7                 System.out.println("Itemインスタンスを作成しました");
       8         }
       9  
      10         public static void main(String[] args)
      11         {
      12                 Item a;                 
      13                 a = new Item();
      14                 ...
      15         }
      16  }
    

この例では new Item() が呼び出されるとインスタンスが作成され、 「Itemインスタンスを作成しました」と表示されます。

オーバーロード

引数をとるコンストラクタを定義することもできます。

引数の型や引数の個数が異なればいくつコンストラクタを定義してもよい。

  •    1  public class Card
       2  {
       3         String suit;
       4         int rank;
       5         
       6         Card(String s, int r)
       7         {
       8                 suit = s;
       9                 rank = r;
      10         }
      11  
      12         public static void main(String[] args)
      13         {
      14                 Card a;                 
      15                 a = new Card("ハート", 12);
      16         }
      17  }
    

インスタンスを作成すると同時に、インスタンス変数に値を代入するコンストラクタの例です。

値はコンストラクタの引数として与えています。

コンストラクタ内で使われている suit, rank がどの変数を指しているかは明らかなので、this. を省略しています。


コンストラクタの継承

コンストラクタは継承されません。

サブクラスのコンストラクタが呼ばれたときは

  1. スーパークラスのコンストラクタの処理
  2. サブクラスで記述された処理

の順に行われます。

コンストラクタ (最終更新日時 2010-11-08 01:56:04 更新者 masahiko)