首页 / JAVA / java-如何使用匿名内部类?
java-如何使用匿名内部类?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用匿名内部类?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2165字,纯文字阅读大概需要4分钟。
内容图文
![java-如何使用匿名内部类?](/upload/InfoBanner/zyjiaocheng/691/c6af04ecda274f9cb61277f7d7541714.jpg)
我使这两个类都利用了匿名内部类的概念.
1类具有静态内部类.第2类使用它.但是我不明白如何调用内部类的方法.请帮帮我.
1类
public class outerclass {
outerclass() {
System.out.println("Constructor of new class");
}
public void showthis(String str) {
System.out.println(str);
}
static class insideclass {
insideclass() {
System.out.println("This is inside class constructor");
}
public void nowshowthis(String str) {
System.out.println(str);
}
}
}
2级
public class helloworld {
public static void main(String args[]) {
//this is an object of the outer class
outerclass example=new outerclass();
//How do i make an anonymous inner class and call the method "nowshowthis()"
}
}
解决方法:
匿名内部类是在另一个类的方法的主体内创建和定义的.本质上,您是根据抽象定义动态创建具体的类.到目前为止,您的InnerClass类实际上拥有的只是一个普通的内部类,意味着非匿名的.
如果要尝试使用匿名内部类,我想到的最简单的方法是将InnerClass更改为接口,如下所示:
public interface InnerClass{
public void doSomething();
}
因此,目前,InnerClass确实蹲下;在定义之前,它没有任何意义.接下来,您将需要更改OuterClass的工作方式.像这样更改showThis()函数:
public showThis(InnerClass innerObj){
innerObj.doSomething();
}
现在,我们有您的外部类要求内部类实例做某事,但是我们仍然没有定义我们想要它做什么.这就是魔术发生的地方-在您的main方法中,您将定义内部类实例的实际外观:
public static void main (String[] args){
OuterClass outer = new OuterClass();
// This is the key part: Here you are creating a new instance of inner class
// AND defining its body. If you are using Eclipse, and only write the
// new InnerClass() part, you'll notice that the IDE complains that you need
// to implement the doSomething() method, which you will do as though you
// were creating a plain 'ol class definition
outer.showThis(new InnerClass(){
public void doSomething(){
System.out.println("This is the inner anonymous class speaking!");
}
});
}
实际上,我没有过多使用匿名内部类,但是了解它们很有用.在进行GUI编程时,我经常使用它们来定义GUI控制事件(例如按钮单击)的侦听器.
另外,正如其他人所提到的,请记住,Java标准将类名的第一个字母大写,在此已完成.您将要遵循该标准,因为它使其他人更轻松地阅读您的代码,并且一目了然,您可以很容易地分辨出何时查看类以及何时查看对象.
无论如何,希望能有所帮助.
内容总结
以上是互联网集市为您收集整理的java-如何使用匿名内部类?全部内容,希望文章能够帮你解决java-如何使用匿名内部类?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。