JAVA基础--内部类
来源:互联网 发布:python模块大全下载 编辑:程序博客网 时间:2024/06/13 05:22
内部类:
* 成员内部类
位置:类中、方法外。 类似与成员变量
* 成员内部类对象的创建:
* 通过 外部类对象.new 内部类();
* 请问成员内部类的生命周期:
* 随着外部类对象的创建而被加载。
* 在外部类中创建内部类对象。
* 【在外部类中去创建内部类对象,是需要通过外部类对象的、】
* 在静态方法中,我们需要先创建外部类对象。
* Test1t =new Test1();
* Test1.Inner i = t.new Inner();
* 在非静态方法中
* Inneri =new Inner() 【在这里实际上省略了this】
* 在内部类中创建外部类对象。
* 没有任何特殊之处。
*
*我们都知道每一个类都会在编译的时候产生一个class文件。
*请问内部类是否会有class文件?
* 会的。会生成如下文件名。
* Test1$Inner.class
*
* 请问外部类的私有成员,在成员内部类中是否可以调用到? 可以
* 请问成员内部类的私有成员,在外部类中是否可以调用到? 可以
* 权限修饰修饰符:四个都可以使用
* 成员内部类中是否可以出现static修饰的静态成员。
* 不可以、我们可以从加载时间去考虑。
* 静态内部类的
位置:在类中,方法外。而且用static修饰。
* 类似与静态成员
* 1、没有特殊之处。
*
* 2、静态内部类是否也会产生class文件?
* 会。
* 3、私有在内部类和外部类之间是否有效?
* 内部类私有成员,可以被外部类使用。
* 反之亦然。
* 4、静态内部类是否可以拥有非静态成员?
* 可以。
* 5、在静态内部类中不可以使用this吗?
* 在静态内部类中的非静态方法中可以使用this。
* 6、区别内部类和外部类成员变量重名?
* 重名时,在内部类中默认调用自己的成员变量。
* 我们可以使用外部类名.成员变量的方式去调用外部类的静态成员变量。
* 局部内部类:
位置:类中、在方法中。
* 1、局部内部类创建对象该怎么创建?
* 【局部内部类的生命周期有多长?】
* 局部内部类的生命周期和局部变量相似、
* 只在定义它的方法内有效。
* 当所属方法被调用的时候,里面的局部内部类也会相应的被加载。
*
* 2、局部内部类中可以拥有静态成员吗?
* 不能
* 3、内部类所属方法中的局部变量,局部内部类能不能调用到?
* 不能调用到、
*final修饰的局部变量可以被局部内部类调用到。
*final修饰的变量是常量。存储在常量池中。
* 匿名内部类.
位置:类中,方法外。
多用于接口和抽象类,当然,普通类也是可以实现匿名内部类的。
public class test {// 成员内部类class Inner {int age;public void methodInner() {System.out.println("成员内部类的方法");}}// 静态内部类static class Inner2 {int age;public void methodInner() {System.out.println("静态内部类的方法");}}public void run(){//局部内部类class Inner3{int age;public void methodInner(){System.out.println("局部内部类的方法");}}}public static void main(String[] args) { //匿名内部类A a = new A() {@Overridepublic void eat() {// TODO Auto-generated method stub}};}}interface A{void eat();}
- java基础 内部类
- java基础--内部类
- java基础<内部类>
- java基础--内部类
- Java基础 内部类
- java基础:内部类
- Java基础----内部类
- java基础--内部类
- Java基础--内部类
- java基础--内部类
- java基础-内部类
- java基础-内部类
- Java 基础----内部类
- java-基础-内部类
- Java内部类基础
- java基础-内部类
- Java基础--内部类
- java基础-内部类
- Java为什么把String设计成不可变的?
- 类的定义之课堂练习1
- Bagging与随机森林
- Dubbo配置以及使用总结2
- 购买保健品被骗,如何才能识破保健品消费陷阱呢?
- JAVA基础--内部类
- java的栈,堆,静态区的理解
- MvvmLight中的Messenger详解
- bootstrap打开模态modal窗口引起页面抖动解决办法
- 2017 ACM-ICPC 亚洲区(南宁赛区)英语阅读网络竞赛
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- windows系统 Git Server git服务器自己搭建 (基于 Gitblit or Gogs )
- matlab函数fft
- ie 浏览器 You're trying to decode an invalid JSON String的问题