日期:2014-05-20  浏览次数:20658 次

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

------解决方案--------------------
Java code

class A{ 
//类A
} 



Class B{ 

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

------解决方案--------------------
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;

}
------解决方案--------------------
A a(){}

a()是一个函数,函数有返回值

如果用void则表示这个函数没有返回值

而用A则表示这个函数会返回一个类型为A的值。

建议多看看书吧,这个是最基础的
------解决方案--------------------
class A{ 
//类A 


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


以上a()方法的返回值类型是A,正如int a()方法的返回值类型是整型int,一样道理
------解决方案--------------------
类也可以做为数据类型,是一个复杂数据类型~~~
------解决方案--------------------
1楼的回答是最正确的, 被他抢先了, 哎!~

------解决方案--------------------
Java code

如一楼所说的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