#随笔之java匿名内部类
来源:互联网 发布:养车软件哪个好 编辑:程序博客网 时间:2024/06/08 13:38
随笔之java匿名内部类
从今天起开始每日一篇技术博客,当然这只是我当天所学的一些随笔,里面或多或少会有理解不当的地方,希望大家多多指教,一起进步!
在讲匿名内部类之前,先讲讲内部类的一些概念。
1.内部类:顾名思义,内部类就是写在一个类里面的类(废话),这里大家可能会问了,为什么我们不直接写一个class呢,非要写在内部。原因很简单,内部类一方面是有很好的封装性,要通过外部类对象才能访问(具体实例见下方代码)。另一方便定义起来很方便。最后,内部类还可以骚气地实现多重继承,因为外部类是否继承或实现一个抽象类或接口对内部类毫无影响,内部类依然可以去继承,这样是一种变相的多继承。接下来我们看一下内部类的一个实例
/** @author lw */public class InnerClassTest { class InnerClass { //public InnerClass(){} public void B() { System.out.println("这是内部类方法"); } } public static void main(String args[]) { InnerClassTest i=new InnerClassTest(); i.new InnerClass().B(); }}
从这个程序可以看到,我们在实例化内部类时,需要借助外部类的对象,否则会报错。但如果类改为static,就可以直接调用。
内部类除了可以直接定义在类中,还可以定义在类的方法中,但需注意的是该类只能在本方法中实例化。
好了,讲了那么多废话,开始进入正题,匿名内部类!有没有很开心??==
首先还是从概念说起,匿名内部类的两个特征,一是匿名,而是内部类(哈哈哈又是废话)。
我们通过一个实际的例子来理解这个东西。
TestInterface接口
/** * @author lw * */public interface TestInterface { public void print();}
- *
InnerClassTest.class(和内部类名字一样,偷了个懒)
`
/** * @author lw */public class InnerClassTest { public static void main(String args[]) { TestInterface test=new TestInterface()//new一个接口很奇怪。。。 { public void print() { System.out.println("匿名内部类"); } }; test.print(); }}
这里我们可以看到,匿名内部类的好处主要在于简化代码,用专业一点的话来说就是写得比较优雅,如果不用匿名内部类的话我们要实现该接口需要新建一个class,然后实现,但可以想象,如果这个类我们只用一次呢?这样的新建class是不是完全没有必要,用匿名类的方法就可以直接简洁地实现了。我们需要注意的是匿名内部类一定要对应一个父类或者接口,然后在里面实现其需要的方法,额虽然在写的时候new一个接口很奇怪。。。同时我们要明确的是匿名内部类只能用一次,不能在外部复用,所以对于多次使用的类不能用该方法。以上都是个人理解,如有不对望指正~晚安!
- #随笔之java匿名内部类
- java内部类之匿名内部类
- Java内部类之匿名内部类
- java 之匿名内部类
- Java之匿名内部类
- Java之匿名内部类
- java之匿名内部类
- java学习之路----内部类之---匿名内部类
- Java复习笔记---小随笔---匿名内部类
- java内部类之私有内部类、局部内部类、匿名内部类
- java内部类回顾之匿名内部类
- Thinking in Java之匿名内部类
- java基础之匿名内部类
- java学习之匿名内部类
- 黑马程序员-Java之匿名内部类
- java提高之匿名内部类
- java之详解匿名内部类
- java基础之----匿名内部类
- Debug: django model querysets-> pandas.Dataframe
- Node.js —— 创建TCP服务器
- Java日记
- 【OVS2.5源码解读】datapath的netlink机制
- CNN中感受野的计算
- #随笔之java匿名内部类
- [LeetCode]338. Counting Bits
- 【JavaScript】引擎、运行时
- U-Mail:优秀的linux邮件系统
- C# WinForm常用控件
- HTML(二)
- Java反射泛型应用
- 八大排序算法讲解与比较
- python安装与解析器学习