内部类和匿名内部类的使用
来源:互联网 发布:字体转换器软件下载 编辑:程序博客网 时间:2024/05/22 00:04
内部类
1.内部类可以共享外部类的属性和方法
2.外部类封装了内部类3.当内部类与外部类属性或方法重名时,在内部类中使用外部类属性或方法时必须加前缀:外部类.this.
4.在方法体外面定义的内部类的访问类型可以是public,protecte,默认的,private等4种类型,这就好像类中定义的成员变量有4种访问类型一样它们决定这个内部类的定义对其他类是否可见;此时,我们也可以在外面创建内部类的实例对象创建内部类的实例对象时,一定要先创建外部类的实例对象,然后用这个外部类的实例对象去创建内部类的实例对象
public class Inner {public static void main(String[] args) {Outer outer = new Outer(5,10);outer.test(); //6,11System.out.println("Inner.times1 = "+outer.inner.times1);//创建内部类对象(此处的inner是一个新的对象,而不是外部类中的成员变量inner)Outer.Inner inner = outer.new Inner();inner.timesInc();System.out.println("Inner.times1 = "+inner.times1);}//main}//外部类class Outer {private int times;private int times1;Inner inner; //内部类通常只在外部类内部使用//构造方法public Outer(int times,int times1){this.times = times;this.times1 = times1;inner = new Inner(); //创建内部类对象inner.timesInc(); //方法调用,实现times加1}//显示私有属性的方法public void test(){System.out.println("Outer.times = "+times);System.out.println("Outer.times1 = "+times1);}//内部类class Inner{int times1 = 1;public void timesInc(){times++; //内部类可以共享外部类的属性和方法times1++; //内部类中的times1加了1Outer.this.times1++; //外部类中的times1加了1}}}
匿名内部类
1.必须有父类
2.匿名内部类是声明子类的同时创建了子类对象
3.语法简洁,使用方法便new 父类型() {};
调用构造方法 子类类体
4.用于简洁的继承抽象类,或者实现接口
5.匿名内部类共享外部方法中的局部变量时,这个局部变量必须为final修饰
public class NoInner {public static void main(String[] args) {final int a = 10;Yoo yoo = new Yoo(){}; //创建匿名内部类---得到的是子类对象,子类没有名字Yoo yoo1 = new Yoo(); //创建Yoo对象---的到的是父类对象Xoo xoo = new Xoo(){}; //创建匿名内部类---得到的是实现类对象,实现类没有名字Goo goo = new Goo(){public void test(){System.out.println("test, a="+a);}};goo.test();}//main}class Yoo{}interface Xoo{}interface Goo{void test();}
0 0
- 内部类、匿名内部类的使用
- java静态内部类和匿名内部类的使用
- java中的内部类和匿名内部类的使用
- 内部类和匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 内部类的编码及使用,包括成员内部类,局部内部类,匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- 内部类和匿名内部类
- AtCoder Beginner Contest 059 C
- 轻量级简易 Java http 网络请求的封装: SimpleHttpUtils
- 二叉树中序遍历的下一个节点
- VirtualBox 中的 lineageOS,点击 Developer options,GUI 重启
- html表单
- 内部类和匿名内部类的使用
- matlab求解二次规划问题
- 数据类型相关问题
- CAD数据导入Arcgis10.1的依赖关系
- Notepad++的打开方式
- css基础入门2
- effective java 读书笔记---第8章 通用程序设计
- 何如高效理解递归问题
- html表格