成员内部类知识普通的内部类,它定义于另外一个类的内部,形式如下面所示:
public class Outer { private String username; public Outer(String username){ this.username=username; } //定义成员内部类 class Inner{ public void out(){ System.out.println("我是内部类的方法:"+username); } } public static void main(String[] args) { Outer outer=new Outer("moweng"); //成员内部类需要依赖于外部类而存在 Outer.Inner inner=outer.new Inner(); inner.out(); } }
我是内部类的方法:moweng
注:成员内部类可以无条件访问外部类的所有成员属性和成员方法,外部内如果需要访问内部类,需要创建一个成员内部类的实例对象:例子如下:
public class Outer { private String username; public Outer(String username){ this.username=username; //获取内部类 调用内部类的方法 getInner().out(); } class Inner{ public void out(){ System.out.println("我是内部类的方法:"+username); } } //返回一个内部类的实例对象 public Inner getInner(){ return new Inner(); } public static void main(String[] args) { Outer outer=new Outer("moweng"); } }
2.局部内部类
局部内部类是定义在一个方法或者作用域里面的类,它和成员内部类的区别为局部类的访问权限仅限于方法内或者改作用域内
public class Outer { private String username; public Outer(String username){ this.username=username; } //外部类的成员方法 public void method(){ //局部内部类 class Inner{ public Inner(){ System.out.println("我是一个方法内部类"); } } Inner inner=new Inner(); } public static void main(String[] args) { Outer outer=new Outer("moweng"); outer.method(); } }
3.静态内部类:
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类 似,并且它不能使用外部类的非static成员变量或者方法,这点很好理解,因为在没有外部类的对象的情况下,可以创建静态内部类的对象,如果允许访问外 部类的非static成员就会产生矛盾,因为外部类的非static成员必须依附于具体的对象。
public class Outer { private String username; public Outer(String username){ this.username=username; } static class Inner{ public Inner(){ System.out.println("我是一个静态内部类"); } } public static void main(String[] args) { //静态内部类的创建不依赖于外部类 Inner inner=new Inner(); } }
4.匿名内部类
public class Outer { public Outer(){ } public Object method(){ //匿名内部类 return new Object(){ public String toString(){ return "我是匿名内部类的方法"; } }; } public static void main(String[] args) { Object object=(new Outer()).method(); System.out.println(object.toString()); } }
相关推荐
java内部类解析java内部类解析java内部类解析
java内部类解析.pdf
java内部类解析[归类].pdf
国有企业典型内部控制失效案例解析.docx
[精选]巨人集团内部控制案例解析.pptx
这个项目让你可以去读取并解析一个PDF文件,并将其内部结构展示出来. PDF文件的格式标准文档可以从Adobe那儿获取到. 这个项目基于“PDF指南,第六版,Adobe便携文档格式1.7 2006年11月”. 它是一个恐怕有1310页的...
此外,我们还讨论了抽象类与接口的结合应用、抽象类的静态方法和内部类、抽象类的多态性等重要概念和技术。 通过研究和解答这些高难度问题,您将提升自己的编程水平,展现出对Java抽象类的深刻理解和掌握。不仅可以...
Java类加载原理解析,深度解剖了java中的类的执行内部机制!
陈文灯09数学课后题解析(理工类)陈文灯数学考研专用书的内部答案pdf版
2019年11月份高级信息系统项目管理师考试葵花宝典之金色题库、考点汇编暨案例论文解析、历年真题分类详细解析(三本,完整版、书签),辅导班内部核心资料,朱建军(江山老师)
主要涵盖了ATL内部架构和实现方法、运用向导简化ATL开发、C++/COM/ATL中字符串的使用技巧、理解并正确实现IUnknown、充分利用ATL提供的Smart Types、撰写能够暴露COM服务器上COM对象的粘合代码、利用Canned ...
主要介绍了Java中的内部类,是Java入门学习中的基础知识,需要的朋友可以参考下
//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。 class ParentClass { public static $my_static = 'parent var '; function test() { self::who(); // 输出 'parent' 是范围...
Java static关键字解析静态内部类(默认指外部类的内部类)静态方法静态变量静态语句块 范围:只围绕外部类进行讨论,例如内部类的内部类这种多层套娃式的暂不进行讨论 jdk版本: jdk8 静态内部类(默认指外部类的...
华为内部的java考题, JAVA考试知识覆盖要点: (1)常用的集合类,如Set、Map、List,以及常用的查找、遍历、排序操作; (2)多线程同步机制; (3)文件读写; (4)XML解析、基本的正则表达式; (5)类的加载和...
2018年信息系统项目管理师考试葵花宝典之历年真题分类详细解析,适用于11月考试的人,内部资料。
这份Tomcat源码解析文档详细地介绍了Tomcat从启动到最后结束的过程,包括其中涉及的类和方法的调用过程。这份文档对于想要深入研究Java底层源码启动过程的人来说十分有用。除了介绍Tomcat的启动过程,这份文档还可以...
简介: 《大规模分布式存储系统:原理...曾在百度作为核心成员参与类MapReduce系统、类Bigtable系统和百度分布式消息队列等底层基础设施架构工作。热衷于分布式存储和计算系统设计,乐于分享,有技术博客NosqlNotes。