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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张宏祚 中级黑马   /  2013-12-3 16:54  /  1216 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


我看到有很多代码为了简便,将形式参数中使用了匿名类,但是
形式参数里面,用匿名类,那方法里用什么指代那个匿名类啊?


例如 :

public void show(new person()){
   
  在这个里面怎么使用那个匿名类?

}

或者,匿名类中有一个方法,我需要调用,该怎么办?

public void show(new person()){
   
  在这个里面怎么调用person的方法?

}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
本帖最后由 25343215 于 2013-12-3 17:14 编辑

这要看方法是怎么样定义的,假设方法是:
class Person{   public String name; public String age}

public String show(Person person){
   return person.name+person.age;
}
那么我们在使用show方法时完全可以 show(new Person("lisi",23){ }这样的方法,他就相当于先new出来一个Person,然后向show方法里面传入Person的引用变量。
回复 使用道具 举报
25343215 发表于 2013-12-3 17:12
这要看方法是怎么样定义的,假设方法是:
class Person{   public String name; public String age}

对,哥们,就是这个意思,但是,把new出来的person传递进去了,怎么指代这个person啊?
回复 使用道具 举报
张宏祚 发表于 2013-12-3 17:14
对,哥们,就是这个意思,但是,把new出来的person传递进去了,怎么指代这个person啊? ...

看原来是怎么样定义的方法,我们假设是下面的代码
public String show(Person person){
   return person.name+person.age;
}

那么 show(new Person){} 这样传入后,按照方法的定义,我们使用person来接受,并在方法里面用person来表示。
希望能帮到你!


评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
楼主的想法根本不能实现,因为方法定义的格式如下:
修饰符 返回值类型 方法名(参数类型 参数1,参数类型,参数2,...)
{
    方法体;
}
因为方法中的参数必须要定义参数类型和形参名,所以形式参数不可能是匿名类,并且形式参数是变量,而匿名类是对象,匿名类可以在调用方法时可以作为实参传递给方法
所以我认为楼主的想法是不成立的
回复 使用道具 举报
抱歉,我误解了楼主的意思了
new Person()是作为一个实参传递给方法的,但这个实参对应的是一个形参,相当于这个形参指向了这个new Person(),所以方法中访问该形参或调用该形参的方法,即是对该new Person()或该new Person()的方法访问
回复 使用道具 举报
25343215 发表于 2013-12-3 17:18
看原来是怎么样定义的方法,我们假设是下面的代码
public String show(Person person){
   return perso ...

恩,说的有理!
回复 使用道具 举报
下次问题解决了就把类型改成提问结束!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马