黑马程序员_内部类总结
来源:互联网 发布:手机淘宝多图变大代码 编辑:程序博客网 时间:2024/04/26 23:05
-------android培训、java培训、期待与您交流! ----------
内部类总结
内部类:
外部类: 宿主类
内部类: 嵌套类
1. 非静态内部类 : 内部类没有使用 static 修饰, 此时 内部类属于 外部类的一个对象,也就是说创建内部类对象之前应该先创建外部类对象
外部类 out = new 外部类();
外部类.内部类 in = out.new 内部类();
2. 静态内部类 : 内部类使用了 static 修饰,此时内部类属于 外部类,也就说,外部类可以直接调用内部类
外部类.内部类 in = new 外部类.内部类();
3. 局部内部类, 在方法里创建类
4. 局部内部类的一个特殊,
1 在局部内部类前不能用修饰符public和private,protected.
2 可以定义与外部类同名的变量
如果内部类没有与外部类同名的变量,在内部类中可以直接访问外部类的实例变量
如果内部类中有与外部类同名的变量,直接用变量名访问的是内部类的变量,用this.变量名访问的也是内部类变量.
用外部类名.this.内部类变量名访问的是外部类变量
3 不可以定义静态变量和方法
4 可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
5 可以访问外部类的所有成员
5.匿名内部类:
没有名字的局部内部类,只能用一次
1. 不能是抽象类
2. 没有构造方法
创建格式:
new 父类(参数){
//覆写父类的方法
}
new 接口()
{
//覆写接口里的方法
}
一旦一个方法需要一个对象的时候,而该对象有父类或接口的时候
void useUSB(IUSB usb){
usb.use();
}
useUSB(new IUSB(){
public void use(){
}
});
实例:
/** * 内部类之局部内部类实例演示 */ public class InnerClassA { private String str1 = "abc"; private int n = 35; private static String str2 = "MMM"; public void show(){ final int K = 54; class InnerOne{ int n = 12; //static String s = "name";内部类中不能定义static变量. public void aaa(){ System.out.println("局部常量K的值为: "+K); System.out.println("外围类成员变量str1的值: "+str1); System.out.println("外围类成员变量n的值: "+InnerClassA.this.n); System.out.println("外围类成员变量str2的值: "+str2); System.out.println("内部类成员变量n的值: "+n); } } new InnerOne().aaa(); } public static void main(String[] args) { InnerClassA a = new InnerClassA(); a.show(); } }
- 黑马程序员_内部类的总结
- 黑马程序员_内部类总结
- 黑马程序员_内部类总结
- 黑马程序员_内部类的总结
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- 黑马程序员_内部类
- org.springframework.beans.factory.BeanCreationException
- EditText 的一些软键盘属性和回调
- 目标
- Linux安装Tomcat外部不能访问
- 使用Event Bus模式解耦Android App组件间通信
- 黑马程序员_内部类总结
- Android 从网络下载xml文件并进行解析
- html 第七章样式表改变文本格式
- Otto介绍
- 绝对干货 手游 App Store搜索引擎优化教程
- IOS多线程学习GCD
- Android的手势识别
- EventBus 使用介绍
- iPhone ARC之对象转型 --__bridge