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

Class-5-

05/01/29
さらに、コンストラクタの実験を行いました。前回やったファイルたちに付け加えます。
■ 色の部分が付け加えたやつ。
こんどは、外部ファイルのクラス内のメソッドの中で、インスタンス化してみました。
また、変数へのアクセス方法です。

>funcClass.java

class funcClass{
  int a;
  int b;
  funcClass( ){
    System.out.println("これが funcClass の中にあるコンストラクタです");
   }
  funcClass(int n){
   System.out.println("これはfuncClass.classのコンストラクタですが、引数を指定したときです");
   System.out.println("引数の値は" + n + "ですね");
  }
   void myFunc( ){
    System.out.println("これは funcClass の中にある myFunc 内です。");
   } 

   funcClass func3( ){ //funcClassクラスのオブジェを返す
    funcClass inClass = new funcClass();
//このメソッド内でインスタンス化

    inClass.a = 10;
    System.out.println("これはfuncClass.classのfunc3というメソッドです");
    System.out.println("また、this.aは、" + this.a + "です");
    System.out.println("inClass.aは、  " + inClass.a + "です");
    return inClass;
//インスタンス化させたオブジェを返す
   }

}

えっと、ここで func3 というメソッドを定義しました。func3 の前に、 funcClass がついてます。
funcClass型のメソッドって事でしょうか・・・。(05/02/13訂正 funcClassオブジェを返すという意味)
また、void ではないので、値を返すようにしないと怒られました。(060213訂正 funcClassオブジェを返さないといけない)
return inClass;
と、してるのは、そのためです。 (05・02/14追加 無意味なことしてますが int といった変数の型以外も返せるんだって事で・・・(^ ^ ;ゞ )


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

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

実験開始
>javac funcClass.java

>javac test.java

>java test
これはfuncClass.classのコンストラクタですが、引数を指定したときです
引数の値は 4 ですね
これはfuncClass.classのfunc3というメソッドです
また、this.aは、1です
inClass.aは、  10です
myClass.aの値は1
aのあたいは    2
myClass.bの値は3
これは funcClass の中にある myFunc 内です。
>

なんかややっこしくなってきましたね。。。

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