自学java 第十章内部类(一)

今天学习了一部分java中的内部类。

内部类指将一个类的定义放在另一个类的内部,那它就是一个内部类。

指明一个引用时内部类的类型可以通过"外部类名.内部类名"的写法声明,如果想返回一个内部类的对象可以通过在外部类中写一个返回该内部类的方法或者通过"外部类对象.new 内部类名()"的写法返回内部类对象。

内部类拥有对外部类所有元素的访问权,可以直接访问;而外部类则需要先创建一个内部类的对象,通过这个对象可以访问内部类中的任意成员。

内部类也可以继承类或实现接口,因此也可以向上转型。内部类实现接口是非常有用的写法,给类的设计者提供了一种便利,完全隐藏了实现细节,阻止任何依赖类型的编码。

内部类还可以定义在一个方法里或是任意的作用域内都可以定义内部类。对于一个定义在方法内的内部类,在这个方法的外部该内部类就不能访问了。同样对任何定义的内部类,在它的作用域之外它都是不可访问的,除此之外它与普通类一样。

时间: 2024-10-29 00:22:19

自学java 第十章内部类(一)的相关文章

自学java 第十章内部类(三)

前两天学校断网,没能及时写,今天总结一下所学的内部类的剩余部分. 1.声明为static的内部类一般称为嵌套类.普通的内部类对象隐式地保存了一个引用,指向一个创建它的外围对象,而内部类为static时则不是这样: (1).要创建static内部类的对象,并不需要其外围类对象: (2).不能用static内部类的对象访问非静态的外围类对象. 类可以在接口中创建,但都自动是public和static类型的,甚至可以在一个接口的内部类中实现该接口. 2.使用内部类的原因:(1).因为内部类允许继承多个

自学java 第十章内部类(二)

今天主要学习了匿名内部类. 匿名内部类是一种特殊的内部类,它没有类名,是通过继承一个类或实现一个接口来创建的,匿名内部类相当于基类的一个导出类,不过它只能通过向上转型为基类类型后才能被使用. 匿名内部类主要用于对继承方法进行实现或覆盖,它不需要添加其它的方法,即使添加也无法使用(因为它没有类名,只能通过向上转型使用,且无法向下转型,因此添加的其它方法也就无法访问). 匿名内部类如果想使用外部定义的对象,则编译器要求参数引用必须是final类型,否则会报错.如: public Destinatio

“全栈2019”Java第九十章:内部类可以向上或向下转型吗?

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十章:内部类可以向上或向下转型吗? 下一章 "全栈2019"Java第九十一章:内部类具有多态特性吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学

Java编程思想---第十章 内部类(下)

第十章 内部类(下) 10.9 内部类的继承 因为内部类的构造器必须连接到指向其外围类对象的引用,所以在继承内部类的时候事情会变得有些复杂,问题在于那个指向外围类对象的引用必须被初始化,而在导出类中不再存在可连接的默认对象,要解决这个问题,必须使用特殊的语法来明确说清他们之间的关联: class WithInner { class Inner {} } public class InheritInner extends WithInner.Inner { InheritInner(WithInn

Java编程思想---第十章 内部类(上)

第十章  内部类(上) 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一种非常有用的特性,它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性,但内部类与组合是完全不同的概念. 10.1 创建内部类 创建内部类的方法就是,把类的定义置于外围类的里面: public class Parcel1 { class Contents { private int i = 11; public int value() { return i; } } class Destina

自学java很难?其实学好java只用4个月

Java学习大概需要多久?这篇文章教你自学java的学习路线 一.首先便是学习基础知识 1.书籍方面 推荐两本<Java编程思想>和<Java核心技术>这两本书有点年头了,也重新发布了好几代,但是最主要的是体系完整,实例多,可操作性强.初学者可以先看<java核心技术>的前六章 Java程序设计概述 Java程序设计环境 Java的基础程序设计结构 对象与类 继承 接口与内部类 2.java视频推荐 网上的java基础视频是很多的,可以去b站,腾讯课堂上找视频和公开课看

自学java大概要多久?这篇文章给你答案,仅需4个月学会java

Java学习大概需要多久?这篇文章教你自学java的学习路线一.首先便是学习基础知识1.书籍方面推荐两本<Java编程思想>和<Java核心技术>这两本书有点年头了,也重新发布了好几代,但是最主要的是体系完整,实例多,可操作性强.初学者可以先看<java核心技术>的前六章1.Java程序设计概述2.Java程序设计环境3.Java的基础程序设计结构4.对象与类5.继承6.接口与内部类2.java视频推荐网上的java基础视频是很多的,可以去b站,腾讯课堂上找视频和公开课

EFFECTIVE JAVA 第十章 并发

EFFECTIVE  JAVA  第十章  并发 66.同步访问共享的可变数据 *java语言规范保证读或写一个变量是原子的(可以保证返回的值是某个线程保存在该变量中的),除非这个变量的类型为long或double.(但并不保证一个线程写入的值对于另一个线程是可见) *synchronized修饰方法.synchronized代码块可以实现同步 *volatile修饰的变量只保证读取的是主存里最新的值而不是内存中该值的拷贝,使用volatile变量必须遵循(即变量真正独立于其他变量和自己以前的值

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液.跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部.内部类就相当于其中的某个器官之一. 首先看看什么是内部类:在类的内部定义另一个类.没错