class A{
}
Class B{
A a(){};
}
比如上面这个情况 为什么A a()这个方法要用A而不是void 之类的呢?
有什么特殊的意思呢?
哪个能详细的给解释下啊
小弟感激不尽
初学java问题很多。。
}
Class B{
A a(){};
}
比如上面这个情况 为什么A a()这个方法要用A而不是void 之类的呢?
有什么特殊的意思呢?
哪个能详细的给解释下啊
小弟感激不尽
初学java问题很多。。
class A{
//类A
} Class B{ A a(){}; //类B中方法a(),返回值为A类类型的,其实A a(){} <==> void a(){} <==> int a(){}
//int 是基本数据类型,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
} class B{
//类B
A a(){
//类B之中的a方法,返回的是一个A类型的对象
}
}
以上a()方法的返回值类型是A,正如int a()方法的返回值类型是整型int,一样道理
如一楼所说的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