内部类
来源:互联网 发布:域名注册证书下载 编辑:程序博客网 时间:2024/06/06 01:30
内部类:只是编译时的概念,编译后会有OutClass.class和OutClass$InnerClass.class2个文件。
public class OutClass { private String name; public String getName() {return name;} public void setName(String name) {this.name = name;} public class InnerClass{ private String name; public String getName() { return name;} public void setName(String name) { this.name = name; } public OutClass getOutClass(){ //根据外部类.this返回外部类对象 return OutClass.this; } public void find(){ //如果InnerClass里没有name属性,则使用的是OutClass的 System.out.println(name); } } public static void main(String[] args) { OutClass out=new OutClass(); out.setName("out"); //创建内部类对象 必须用外部类对象new OutClass.InnerClass inner=out.new InnerClass(); inner.setName("inner"); inner.find(); }}内部类有4种:成员内部类、局部内部类、匿名内部类和静态内部类。
1.成员内部类:普通内部类,innerClass中不能有static对象和方法,实例化innerClass对象前需指定OutClass对象。
2.局部内部类:定义在属性或方法内部作用域中的内部类,出了作用域就没用了。
3.匿名内部类:
interface InernerClassInterface { int getNumber();}
private final String x="abc";public InernerClassInterface getInernerClassInterface(final int a,int b){ //匿名内部类,需要有内部类的父类或接口 //没有访问类型,没有类名,所以没有构造方法 //形参是final的,也可以访问外部的final对象 return new InernerClassInterface(){ @Override public int getNumber() { return 0; } public void find(){ System.out.println(x); System.out.println(a); } };}
4.静态内部类
内部可以存在static对象,不能使用外部类非static的对象,实例化时也不需要外部类对象。
阅读全文
0 0
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- elasticsearch 常用接口
- MFC 编辑框控制只输入小数,并控制小数位数,整数位数,值
- 互金平台如何利用大数据做用户留存?
- base64格式验证
- c++多态下的继承
- 内部类
- 丰声共享文件方法
- jfinal重温
- index、noindex、follow、nofollow的使用说明
- HDU4135 Co-prime【容斥原理】3方法
- MySQL数据表导入Excel模板
- Android 的常用控件(下拉,日期,时间,单项,多项)
- Vue.js学习笔记:v-if条件渲染与v-show区别
- 学习笔记