/**
*
匿名内部类:
* 1、匿名内部类就是内部类的简写格式
* 2、定义匿名内部类的前提:
*
内部类必须是继承一个类或是实现接口
*
*/
abstract class AbsDemo{
abstract void show();
}
class Outer{
int x = 3;
/*class Inner extends AbsDemo{
@Override
void show() {
System.out.println("inner show: "+x);
}
}*/
public void function(){
AbsDemo ad = new AbsDemo(){
void show() {
System.out.println("anonymous inner class show():"+x);
}
void abc(){
System.out.println("abc");
}
};
ad.show();
//ad.abc();调用不了,所以匿名内部类一部不新定义方法
}
}
public class AnonymousInnerClass {
public static void main(String[] args) {
new Outer().function();
}
}
/*
* 人和动物都有心脏,但它们的结构和属性可能有些不一样。这样,就可以用内部类
* 的方式实现具体的心脏的功能。
* */
//-----------------------------------------------------------------------------------------------------------------------------------小练习一枚
interface Inter{
void method();
}
class Test{
static class Inner implements Inter{
public void method() {
System.out.println("Inner class: Inter method()");
}
}
static Inter function(){
/**
* return new Inner();
*/
return new Inter(){
public void method() {
System.out.println("Anonymous class in function().method()");
}
};
}
}
public class InnerClassTest {
public static void main(String[] args) {
Test.function().method();
//匿名内部类直接作为函数参数
show(new Inter(){
@Override
public void method(){
System.out.println("Anonymous class in arguments");
}
});
}
public static void show(Inter in){
in.method();
}
}
//------------------------------------------------------------------------------------------------------------------------------------AWT中匿名内部类的应用
import java.awt.*;
import java.awt.event.*;
public class AwtDemo {
public static void main(String args[]){
Frame f = new Frame("my.awt");
f.setSize(500,400);
f.setLocation(300,200);
f.setLayout(new FlowLayout());
Button b = new Button("我是一个按钮");
f.add(b);
//内部类
class MyWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.out.println("我关了!"+e.toString());
System.exit(0);
}
public void windowActivated(WindowEvent e){
System.out.println("我活了!");
}
public void windowOpened(WindowEvent e){
System.out.println("我打开了!");
}
}
f.addWindowListener(new MyWindowListener());
//匿名内部类
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println("我关了!"+e.toString());
System.exit(0);
}
public void windowActivated(WindowEvent e){
System.out.println("我活了!");
}
public void windowOpened(WindowEvent e){
System.out.println("我打开了!");
}
});
f.setVisible(true);
}
}
分享到:
相关推荐
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
Java 匿名内部类的学习demo
这段代码实现了一个简单的线程池ExecutorService,其中使用了Java的匿名内部类。...这个简单的示例代码展示了如何使用Java匿名内部类来实现一个线程池的简单功能,方便了对多线程任务的管理和执行。
浅析Java匿名内部类创建登录界面.pdf
主要介绍了Java匿名内部类原理与用法,结合实例形式分析了Java匿名内部类的概念、原理、应用与相关操作注意事项,需要的朋友可以参考下
主要给大家介绍了关于Java匿名内部类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
java匿名内部类笔试题
170331-01.匿名内部类总结.java 170331-01.匿名内部类总结.java 匿名 内部类 总结 java
java中的匿名内部类总结
主要讲述了JAVA中内部类和匿名内部类的相关问题。
下面小编就为大家带来一篇老生常谈java匿名内部类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Java匿名类,匿名内部类,结合实例形式分析了Java匿名类,匿名内部类相关原理、用法及操作注意事项,需要的朋友可以参考下
掌握java四中匿名内部类
主要介绍了java匿名内部类实例代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Java 匿名内部类详解及实例代码的相关资料,需要的朋友可以参考下
主要对java中的匿名内部类的详细总结,需要的朋友可以参考下
使用swift匿名内部类,实现jave匿名内部类功能,java中的匿名内部类,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就...
- 不同类型的内部类(静态内部类、成员内部类、局部内部类和匿名内部类)的区别和用法 - 内部类的优缺点以及使用场景 这些目标将帮助你理解和掌握内部类的概念,并能够在适当的时候使用内部类来解决问题...