class A{
}
Class B{
A a(){};
}
比如上面这个情况 为什么A a()这个方法要用A而不是void 之类的呢?
有什么特殊的意思呢?
哪个能详细的给解释下啊 
小弟感激不尽 
初学java问题很多。。

解决方案 »

  1.   


    class A{ 
    //类A
    } Class B{ A a(){}; //类B中方法a(),返回值为A类类型的,其实A a(){}  <==>   void a(){}    <==>  int a(){} 
             //int 是基本数据类型,A看作复杂的类型就是了
      

  2.   

    class A{
      //类A
    }class B{
       //类B
      A a(){
      //类B之中的a方法,返回的是一个A类型的对象
      }
    }eg:
    class PigHead{
    }class Pig{
      PigHead head = new PigHead();  public PigHead getHead(){
        return head;
      } 
    }
      

  3.   

    A a(){}a()是一个函数,函数有返回值如果用void则表示这个函数没有返回值而用A则表示这个函数会返回一个类型为A的值。建议多看看书吧,这个是最基础的
      

  4.   

    class A{ 
      //类A 
    } class B{ 
       //类B 
      A a(){ 
      //类B之中的a方法,返回的是一个A类型的对象 
      } 

    以上a()方法的返回值类型是A,正如int a()方法的返回值类型是整型int,一样道理
      

  5.   


    如一楼所说的A是一种数据类型,返回的可以是一个A 还可以是一个接口,一般程序设计的时候接口要比类使用得多,列如:
    package alltest;
    interface ATest{
    public void m1();
    public void m2();
    }
    class BTest implements ATest{
    public void m1() {
    }
    public void m2() {
    }
    public ATest returnType(){
    return new BTest();
    }

    }class CTest implements ATest{
    public void m1() {
    }
    public void m2() {
    }
    public ATest returnType(){
    return new CTest();
    }

    }
    public class InterfaceTest {
    public void show(ATest a){
    System.out.println(a.getClass());
    }
    public static void main(String[] args) {
    InterfaceTest t = new InterfaceTest();

    t.show(new BTest().returnType());
    t.show(new CTest().returnType());
    }}OutPut:
    class alltest.BTest
    class alltest.CTest