2012-01-12 16 views
0

私のようである抽象クラスがあります。リターンと抽象クラス?

public abstract class myClass{  

    public abstract double methodOne(); 
    // returns the data member value for standard deviation 

    public abstract double methodTwo(String myString, int myInt); 
    // returns the data member value for mean percentage 

} 

をそれから私はこれを拡張するクラスを持っている:

public class Abstract extends myClass{ 

    public double methodOne() { 
     return 0.00; 
    } 

    public double methodTwo(String myString, int myInt) { 
     return 20.00; 
    }  
} 

は、最終的に私は、戻り値の型は、MyClassのある者の通常の方法を持っています。

public myClass anotherMethodOfMine(String myString, int myInt){ 

} 

本当に単純な質問では、メソッドがメソッドを含む別のクラスを返す方法を理解できません。誰かが私にそれを説明できますか?

+0

クラスのインスタンスを返します。これは、文字列を返す場合と同じです。メソッドを持つ別の型です。 –

+0

文字列を返したことがありますか? Stringにはメソッドが含まれています。 ArrayListを返すことはありますか? ArrayListにはメソッドが含まれています。あなたは____を返すことがありますか? ____にはメソッドが含まれています。私は率直に言って質問をしません。より詳細に注意してください。スーパークラスの*抽象的な*修飾子が問題を起こしていますか? –

答えて

2

このメソッドは、そこに定義されているメソッドを呼び出すことができるMyClassのオブジェクトを返します。

クラスは動作とデータの定義に過ぎないことを理解しておく必要があります。オブジェクトは、データを使って物事を実行し、クラスで定義された振る舞いを呼び出すことができる実際のエンティティです。

+1

ありがとう、私は今理解しています。私はしばらくの間Javaをやってきましたが、これをやったことはありませんでしたが、それは本当に非常に基本的な、私の知識のギャップです! –

1

myClassは抽象クラスなので直接的にインスタンス化できませんがAbstractmyClassのサブクラスです。つまり、is aの関係になっています。

"Abstract"は "myClass"であり、親クラス(myClass)のインスタンス化として返すことができます。

0

あなたのメソッドanotherMethodOfMine(String myString, int myInt)は、オブジェクトをインスタンス化して呼び出し元の関数に戻します。ここでmyclassオブジェクトにアクセスし、myclassで定義されているメソッドを使用できます。