A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 邱成 于 2012-9-24 22:39 编辑

比如我有三个类
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();
    }

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
问题太抽象了
至于匿名类的,可以给你说下怎么使用的,在android中可以大量使用匿名类来做位按钮的监听器,
例如,当单击按钮后,就执行匿名类中的方法
  1. public class MyActivity extends Activity {
  2.      protected void onCreate(Bundle icicle) {
  3.          super.onCreate(icicle);

  4.          setContentView(R.layout.content_layout_id);
  5.          
  6.          // 取得Button对象
  7.          final Button button = (Button) findViewById(R.id.button_id);
  8.          
  9.          // 注册按钮单击事件的监听器,这里使用匿名类
  10.          // 实际上是系统为你创建一个继承该接口的类,类名用户不可使用
  11.          button.setOnClickListener(new View.OnClickListener() {
  12.              public void onClick(View v) {
  13.                  // Perform action on click
  14.              }
  15.          });
  16.      }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
构造方法:
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。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你所定义的 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,所以打印结果肯定是啦
注意你用匿名内部类就是相当于创建了三个对象,并不是同一个!!

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马