Java---------【java中的内部类的使用】
来源:互联网 发布:sky 知乎 编辑:程序博客网 时间:2024/05/16 00:33
作为一个初级程序猿,如果你想要跟上大流的脚步,你只有不断的自我学习,自我提升。但是心里总会有另一个声音在骚扰你,你那么努力为了什么?到头来还不是混的一塌糊涂,还不如人家,天天活的逍遥自在,最后同样比你混的好!这时候我会很没有自信的说一句我在做一件有益人类未来发展的事情,我在做自己喜欢做的事情!说完后心里默默的骂自己一句,扯淡,鬼才相信你说的话。好了既然是扯淡,那今天就不说了,我们开始我们的正题,今天我同大家一起学习java中的内部类。
在初学java的时候只是对内部类有一点印象,感觉非常高深的东西,不是我等菜鸟级别可以理解的,所以从来没有勇气去认真的去学习他。如今的我着实对java有浓厚的感情,所以下意识的想去解决掉自己每一个不懂或者不明白的地方,下面我就分享下我自己的一点关于内部类的理解:
概念:其实就是在类中定义一个类,用的比较少,所以感觉比较陌生。实际就是两个事物,你中有我,我中有你,有扯不清的关系,我们可以用内部类来描述,下面先展示一个实例。
public class out {int num = 4;class in {int num = 3;public void showou() {int num = 5;System.out.println(num);// print 5System.out.println(this.num);// print 3System.out.println(in.this.num);// print 3System.out.println(out.this.num);// print4}}public void showin() {in BLF = new in();BLF.showou();}}在使用内部类的时候需要注意几点:
1.内部类可以直接使用外部类的成员。
2.外部类使用内部类的成员时,必须通过对象调用。
匿名内部类的使用:他其实是内部类的一种简写方式,就是他没有名字,在使用它一定要有一个前提,那就是必须实现一个接口或者继承一个外部类,下面是具体的实现。
(展示代码):
public interface Interface1 {//定义一个接口 void demo(); void demo2();}public class Out2 {int num = 3; public void set() { Interface1 it1=new Interface1() //在这里我们只是给父类的一个对象的一个名字。你可以直接用new Interfave1()来代替这行内容 { void show() { System.out.println(num); } void haha() { }@Overridepublic void demo() {// TODO Auto-generated method stubSystem.out.println("Hello,I`m david!");}@Overridepublic void demo2() {// TODO Auto-generated method stubSystem.out.println("Hello I`m CAT!!");} };//对象.show() //因为我们再头部使用了父类的一个对象,就是对象升级,上升到父类对象,所以在使用时只可以使用父类中有的方法。这里是多态的一个充分的体现。 it1.demo(); it1.demo2(); } }
上面是匿名内部类的一个展示,其实有时候我们再使用匿名内部类时,我们可以按照参数的形式去传递,下面给大家展示下:
package testPkg6;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubOut2 BLF=new Out2();BLF.set();show(new Interface1() { public void demo2() {// TODO Auto-generated method stubSystem.out.println("=====hello=====");}@Overridepublic void demo() {// TODO Auto-generated method stubSystem.out.println("=====hello2======");} }); }public static void show(Interface1 a){a.demo();a.demo2();}}
以上为内部类的一点学习心得,希望可以与大家分享交流,有问题的可以直接留言.
每日励志:Live each day as if it is your last.
(要活就要像明天你就会死去一样活着)
- Java---------【java中的内部类的使用】
- java中的内部类和匿名内部类的使用
- Java中的内部类的使用
- Java内部类的使用
- java内部类的使用
- Java内部类的使用
- Java 内部类的使用!
- java 内部类的使用
- java 内部类的使用
- Java内部类的使用
- Java 内部类的使用
- JAVA 内部类的使用
- Java内部类的使用
- Java 内部类的使用
- java内部类的使用
- java 内部类的使用
- java内部类的使用
- java内部类的使用
- Qt Designer 打开失败
- 【转】Spring Mvc Web 配置拦截规则与访问静态资源
- 文件遍历
- 自定义checkbox
- linux C之alarm函数(更改)
- Java---------【java中的内部类的使用】
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- Flatten Binary Tree to Linked List (Java)
- Linux/Android——input系统之 kernel层 与 frameworks层交互 (五)
- 可以用JS判断客服QQ号在线还是离线状态的程序
- c#通过枚举自动生成绑定控件
- 泛型方法
- 把proto文件编译成objective-c文件
- 再谈Linux内核中的RCU机制