黑马程序员——java基础 内部类
来源:互联网 发布:淘宝iuv 编辑:程序博客网 时间:2024/04/28 15:23
——- android培训、java培训、期待与您交流! ———-
一、 内部类
内部类:
在一个类中的另一个类
将一个类,定义在了另一个类中
嵌套类
class Outer{ class Inner { }}
对于一个内部类,可以直接使用外部类的成员,包括私有成员
如果外部类要想使用内部类的成员,创建出内部类的对象
内部类存在的意义:安全
内部类,根据定义的方式,分成2中
成员内部类,定义在外部类的成员位置
局部内部类,定义在方法中
内部掌握访问的三种格式
第一种 : 内部类是非静态修饰,内部类方法是非静态修饰
外部类名.内部类名 变量 = new 外部类对象().new 内部类对象();
变量.内部类方法();
第二种: 内部类是静态修饰,内部类方法是静态修饰
外部类名.内部类名.内部类方法();
第三种:内部类是静态修饰,内部类方法是非静态修饰
外部类名.内部类名 变量 = new 外部类名.内部类对象();
变量.内部类方法();
将类定义在一个方法中,局部内部类
局部内部类,不允许使用成员修饰符,public private static
局部内部类,也是个类,拥有类的特点,实现,继承,建立对象
外面的类,调用局部内部类的方法,必须要依靠,定义的方法
class Outer{ public void outer(){ final int x = 1 ; class Inner{ public void inner(){ System.out.println("局部内部类方法"+x); } } new Inner().inner(); }}
局部内部类访问本地变量加final
a.方法内部变量 int x 生命周期,跟随方法走
方法进栈,存在变量,方法出栈,变量死亡
b.Inner是一个类,类调用成员,需要建立对象
对象调用内部类的方法
c.栈内存的方法生命周期长呢,还是堆内存中的对象生命周期长
对象生命长
d.变量被final修饰后,变成常量,常量和生命有关系吗,没有任何关系
变量的作用域只在定义大括号之内
javac的编译时期,内部类方法inner的x就被替换成了固定常量3
匿名内部类,没有类名
使用匿名内部类,前提,有继承父类,或者实现接口
匿名内部类,是一种简化形式,简化的是,类继承类或者实现接口,重写抽象方法,建立子类对象
匿名内部类,只能写方法中
书写格式
new 父类或者接口(){
重写抽象方法
};
interface MyInter{ public abstract void show();}class Outer{ public void outer(){ //使用匿名内部类,实现接口,重写方法,建立对象,调用重写方法,一步实现 new MyInter(){ public void show(){ System.out.println("匿名内部类重写方法show"); } }.show(); }}
内部类及匿名内部类总结
- 黑马程序员——Java基础——内部类
- 黑马程序员——Java基础——内部类
- 黑马程序员——JAVA基础---匿名内部类
- 黑马程序员——Java基础---内部类与异常
- 黑马程序员——Java基础--内部类
- 黑马程序员——Java基础---内部类
- 黑马程序员——java基础 内部类
- 黑马程序员——Java基础:内部类、异常、包
- 黑马程序员——Java基础--多态、内部类、异常
- 黑马程序员——Java基础--内部类总结
- 黑马程序员——Java基础---多态、内部类、
- 黑马程序员—java基础—内部类
- 黑马程序员——Java语言基础:多态、内部类
- 黑马程序员——Java基础---多态,内部类,异常
- 黑马程序员——Java基础--------内部类
- 黑马程序员——Java 基础:匿名内部类
- 黑马程序员 — JAVA基础 — 内部类、异常
- 黑马程序员——java基础---内部类
- Java_IO流
- Oracle---使用PL/SQL Developer连接Oracle12C(64位)版本
- hdu 5251(凸包)
- 刷算法题学到的一些思考问题的方式(动态更新)
- 菜鸟学Android笔记(十):Schema语法
- 黑马程序员——java基础 内部类
- Java_File类和递归
- 在GitHub上分享和展示你的代码
- 2015百度之星 初赛1 1002(rmq)
- Linux多线程编程的条件变量
- 嗯,太牛逼了
- Java @override报错的解决方法
- zabbix架构
- Codeforces Round #305 (Div. 1) B. Mike and Feet(单调栈)