[ Top ] > [ Communication ] > [ study ] > [ Java ]
> class -3-
a
 
 

Class-3-

05/01/28
次に、コンストラクタの実験を行いました。前回やったファイルたちに付け加えます。
■ 色の部分が付け加えたやつですね。

>funcClass.java

class funcClass{
  int a;
  int b;
  funcClass( ){
    System.out.println("これが funcClass の中にあるコンストラクタです");
   }
   void myFunc( ){
    System.out.println("これは funcClass の中にある myFunc 内です。");
   } 

}


>test.java
class test{
 public static void main(String args[ ]){

  funcClass myClass = new funcClass();
  myClass.a = 1;
  int a = 2;
  myClass.b = myClass.a + a;
 
  System.out.println("myClass.aの値は"+ myClass.a);
  System.out.println("aの値は    "+ a);
  System.out.println("myClass.bの値は"+ myClass.b);
   System.out.println(myClass.myFunc);
 }
}

実験開始
>javac funcClass.java

>javac test.java

>java test
これが funcClass の中にあるコンストラクタです
myClass.aの値は1
aのあたいは    2
myClass.bの値は3
これは funcClass の中にある myFunc 内です。
>

えっと、上の実験でわかるとおり、外部ファイルと同じ名前のメソッドをその外部ファイルの中で定義すると、インスタンス化したときに実行してくれます。 main 関数と似てますね。
上の例では、funcClassというメソッドを記述してますが、
funcClass myClass = new funcClass( );
と、インスタンス化したあとに、実行されるみたいですね。
ほんで、そのほかのメソッドについては、ドットシンタックスでインスタンス化したときの識別子(インスタンス名)の後に似、記述します。
myClass.myFunc();
の部分ですね。
おっと、忘れてた。
コンストラクタ以外のメソッドを定義するときは、メソッドの名前の前に、どういう型をリターンするか、もしくはリターンしないかを書かないと、エラーになります。
上の例だと、なにも返さないので、 void と、しています。

| fstyle | <<Pre | TOP | List | Next>> |