`
mw08091020
  • 浏览: 14730 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

非静态内部类

 
阅读更多

内部类是Java提供的一个常用语法,内部类能提供更好的封装,而且可以直接访问外部类的private成员。在一些特殊场合下使用,可能产生一些陷阱。

一、非静态内部类的构造器

非静态内部类必须寄生在外部类的实例中,没有外部类的对象,就不可能产生非静态的内部类对象。

系统会在编译阶段总会为非静态内部类的构造器增加一个参数,非静态内部类的构造器的第一个形参类型总是外部类。也就是说非静态内部类没有无参的构造方法。

二、非静态内部类不能拥有静态成员

对于非静态内部类而言,由于它本身就是一个非静态的上下文环境,因此非静态内部类不允许拥有静态成员。

分享到:
评论

相关推荐

    Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存

    Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存,在Android中,Handler对象通常会被用来在主线程(UI线程)中处理消息,以更新UI界面。当我们在Handler对象中使用匿名内部类...

    深入浅析Java中Static Class及静态内部类和非静态内部类的不同

    上次有朋友问我,java中的类可以是static吗?我给他肯定的回答是可以的,在java中我们可以有静态实例变量、...当然类也可以是静态的,下面小编整理了些关于java中的static class相关资料分享在脚本之家平台供大家参考

    java静态内部类(嵌套类)

    java静态内部类(嵌套类)的实例 。嵌套类意味着: 1. 要创建嵌套类的对象,并不需要其外围类的对象。 2. 不能从嵌套类的对象中访问非静态的外围类对象。

    Java的内部类和匿名类剖析

    Java 1.1通过对Java语言规范进行修改,显着简化了...为实现这一行为,非静态内部类存储着对外部类的实例的一个隐式引用。所以,对一个非静态内部类进行实例化需要采用不同语法的new语句:  2、引用内部类  内部类

    java中的内部类内部接口详解

    文章目录简介内部类静态内部类非静态内部类静态方法内部类非静态方法的内部类匿名类内部接口总结 简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因...

    java内部类1

    内部类一般情况下, 类与类之间是相互独立的,内部类的意思是打破这样的独立,让一个类成为另一个类的内部信息,和成员变量,成员方法同等级别。非静态内部类的使用就是将

    【05-面向对象(下)】

    •当在非静态内部类的方法内访问某个变量时,系统优先在该方法内查找是否存在该名字的局部变量,如果存在该 名字的局部变量,就使用该变量,如果不存在,则到该方法所在的内部类中查找是否存在该名字的属性,如果...

    21天学通Java-由浅入深

    232 11.7 习题 232 第12章 内部类(精彩视频:71分钟) 234 12.1 非静态内部类 234 12.1.1 创建非静态内部类 234 12.1.2 在外部类中访问内部类 235 12.1.3 在外部类外访问内部类 236 12.1.4 在内部类中访问外部类 ...

    突破程序员基本功的16课.part2

    7.6.2 非静态内部类不能拥有静态成员 7.6.3 非静态内部类的子类 7.7 static关键字 7.7.1 静态方法属于类 7.7.2 静态内部类的限制 7.8 native方法的陷阱 7.9 小结 第8课 异常捕捉的陷阱 8.1 正确关闭资源的...

    Java static关键字解析

    非静态内部类(默认public),称为实例内部类,使用时需要先实例化外部类 NonStaticNestedNClass nonStaticNestedClass = new OuterClass().new NonStaticNestedClass(); 静态内部类,使用: 引入所在外部类 import ...

    安卓java读取网页源码-android:安卓开发相关

    静态内部类可以有静态成员,非静态内部类不可以 静态内部类只能访问外部类的静态成员,非静态内部类可以访问外部类所有成员 静态内部类可由外部类进行创建,非静态内部类依赖于实例创建, 如何使一个类不被继承 构造...

    javaSE代码实例

    15.3.3 静态/非静态内部类的区别 333 15.4 匿名内部类 334 15.4.1 基于继承的匿名内部类 334 15.4.2 基于接口实现的匿名内部类 335 15.4.3 匿名内部类的初始化 337 15.4.4 匿名内部类作用的体现 337 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...

    疯狂JAVA讲义

    学生提问:非静态内部类对象和外部类对象的关系是怎样的? 206 6.7.2 静态内部类 207 学生提问:为什么静态内部类实例方法也不能访问外部类的实例属性呢? 207 学生提问:接口里是否能定义内部接口? 208 6.7.3 ...

    zhuhuan0122#SiberiaDanteLib#常见内存泄露解决办法1

    1.非静态内部类,匿名内部类:内部类静态化,内部类里面的资源及时关闭不要静态化 2.Android WebView常见问题及解决方案汇总:http://www.

    Context的理解1

    2.非静态内部类(包括匿名内部类),它们会持有外部类的引用,导致外部类无法被释放,解决办法死是,使用静态内部类,如果传入了外部内引用,需要对该引用使用弱引用,并

    reflect.rar

    Java反射详解——一篇文章读懂java反射机制(源码) 包含内容: 1. 非静态成员和非静态方法的访问和调用 1.1 关于构造方法 1.2 关于成员变量 ...3. 静态内部类、非静态内部类、匿名类 4. 关于注解Annotation

    几行代码带你彻底搞懂Java内部类

    内部类基本概述语法格式成员内部类局部内部类匿名内部类静态嵌套类静态嵌套类和非静态嵌套类的区别 内部类 基本概述 当一个类的定义放在另一个类的实体时,则该类叫做内部类,该类所在的类叫做外部类 在一个类体中...

Global site tag (gtag.js) - Google Analytics