比如我有三个类
class classA{
int age;
}
class classB extends classA{
String name;
public void getinfo(classB b){
System.out.println(name+age);
}
}
_____________
class C{
public static void main(String args[]){
classB d=new classB;
b.getinfo(12,"jack");---这样就不行,用类作为参数传入到底怎么调用呢?
}
}
————————————————————
另外再问一下如果我用匿名对象调用classB的方法为什么返回的是NULL,比如我下面这么写,匿名对象到底该怎么用?
class classA{
int age;
}
class classB extends classA{
String name;
public void getinfo(){
System.out.println(name+age);
}
}
class C{
public static void main(String args[]){
new Classb().name="JACK";
new Classb().age=12;
new Classb().getinfo();
}作者: 程振 时间: 2012-9-22 23:50
问题太抽象了
至于匿名类的,可以给你说下怎么使用的,在android中可以大量使用匿名类来做位按钮的监听器,
例如,当单击按钮后,就执行匿名类中的方法
public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
// 取得Button对象
final Button button = (Button) findViewById(R.id.button_id);
作者: 尤圣回 时间: 2012-9-22 23:54
构造方法:
public classB(int a,String n){
name = n ;
age = a ;
}
第一个问题: b.getinfo(new classB(12,"jack")); //这样就可以了
第二个问题:
new Classb().name="JACK";
new Classb().age=12;
new Classb().getinfo();
每一句都在创建一个新的对象,所以第三句的那个对象你什么都给你传,所以都为null。作者: 赵永康 时间: 2012-9-23 00:17
你所定义的 getinfo(classB b)是相当于传入一个Object对象,那么你在调用的时候,怎么传入的参数是(12,"jack");呢???
至于你第二个问题:new Classb().name="JACK";
new Classb().age=12;
new Classb().getinfo();
相当于你创建了三个对象,第一个name为JACK,第二个age为12,第三个对象直接调用的方法,此时第三个对象并没有给age和name显示初始化值,java虚拟机给其默认初始化为null,所以打印结果肯定是啦
注意你用匿名内部类就是相当于创建了三个对象,并不是同一个!!