三九宝宝网宝宝百科宝宝知识

Java内部类的修饰符有哪些

01月29日 编辑 39baobao.com

[内部审计的考核指标是什么]1、项目完成率=本年度完成项目/本年度计划项目*100%.如考核细则可以按: A、按工作计划完成95%以上项目的审计; B、按工作计划完成90%以上项目的审计; C、按工作计划完成80%以上...+阅读

一、内部类可以为四种: ⒈ 静态内部类 ⒉ 成员内部类 ⒊ 局部内部类 ⒋ 匿名内部类几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。

1、静态嵌套类:从技术上讲,静态嵌套类不属于内部类。因为内部类与外部类共享一种特殊关系,更确切地说是对实例的共享关系。而静态嵌套类则没有上述关系。它只是位置在另一个类的内部,因此也被称为顶级嵌套类。静态的含义是该内部类可以像其他静态成员一样,没有外部类对象时,也能够访问它。静态嵌套类不能访问外部类的成员和方法。

class Outer{ static class Inner{} } class Test { public static void main(String[] args){ Outer.Inner n = new Outer.Inner(); } }

2、成员内部类:形式如下 class Outer { class Inner{} } 编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。成员内部类内不允许有任何静态声明!下面代码不能通过编译。 class Inner{ static int a = 10; }能够访问成员内部类的唯一途径就是通过外部类的对象! A、从外部类的非静态方法中实例化内部类对象。

class Outer { private int i = 10; public void makeInner(){ Inner in = new Inner(); in.seeOuter(); } class Inner{ public void seeOuter(){ System.out.print(i); } } }表面上,我们并没有创建外部类的对象就实例化了内部类对象,和上面的话矛盾。事实上,如果不创建外部类对象也就不可能调用makeInner()方法,所以到头来还是要创建外部类对象的。可能试图把makeInner()方法修饰为静态方法,即static public void makeInner()。

这样不创建外部类就可以实例化外部类了!但是在一个静态方法里能访问非静态成员和方法吗?显然不能。它没有this引用。没能跳出那条规则!但是如果在这个静态方法中实例化一个外部类对象,再用这个对象实例化外部类完全可以!也就是下一条的内容。 B、从外部类的静态方法中实例化内部类对象。 class Outer { private int i = 10; class Inner{ public void seeOuter(){ System.out.print(i); } } public static void main(String[] args) { Outer out = new Outer(); Outer.Inner in = out.new Inner(); //Outer.Inner in = new Outer().new Inner(); in.seeOuter(); } }被注释掉的那行是它上面两行的合并形式,一条简洁的语句。

对比一下:在外部类的非静态方法中实例化内部类对象是普通的new方式:Inner in = new Inner();在外部类的静态方法中实例化内部类对象,必须先创建外部类对象:Outer.Inner in = new Outer().new Inner(); C、内部类的this引用。普通的类可以用this引用当前的对象,内部类也是如此。但是假若内部类想引用外部类当前的对象呢?用“外部类名”.this;的形式,如下例的Outer.this。

class Outer { class Inner{ public void seeOuter(){ System.out.println(this); System.out.println(Outer.this); } } } D、成员内部类的修饰符。对于普通的类,可用的修饰符有final、abstract、strictfp、public和默认的包访问。但是成员内部类更像一个成员变量和方法。可用的修饰符有:final、abstract、public、private、protected、strictfp和static。一旦用static修饰内部类,它就变成静态内部类了。

3、方法内部类:顾名思义,把类放在方法内。 class Outer { public void doSomething(){ class Inner{ public void seeOuter(){ } } } } A、方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。 B、方法内部类对象不能使用该内部类所在方法的非final局部变量。因为方法的局部变量位于栈上,只存在于该方法的生命期内。当一个方法结束,其栈结构被删除,局部变量成为历史。

但是该方法结束之后,在方法内创建的内部类对象可能仍然存在于堆中!例如,如果对它的引用被传递到其他某些代码,并存储在一个成员变量内。正因为不能保证局部变量的存活期和方法内部类对象的一样长,所以内部类对象不能使用它们。下面是完整的例子: class Outer { public void doSomething(){ final int a =10; class Inner{ public void seeOuter(){ System.out.println(a); } } Inner in = new Inner(); in.seeOuter(); } public static void main(String[] args) { Outer out = new Outer(); out.doSomething(); } } C、方法内部类的修饰符。

与成员内部类不同,方法内部类更像一个局部变量。可以用于修饰方法内部类的只有final和abstract。 D、静态方法内的方法内部类。静态方法是没有this引用的,因此在静态方法内的内部类遭受同样的待遇,即:只能访问外部类的静态成员。

4、匿名内部类:顾名思义,没有名字的内部类。表面上看起来似乎有名字,实际那不是名字。 A、继承式的匿名内部类。

class Car { public void drive(){ System.out.println("Driving a car!"); } } class Test{ public static void main(String[] args) { Car car = new Car(){ public void drive(){ System.out.println("Driving another car!"); } }; car.drive(); } }结果输出了:Driving another car! Car引用变量不是引用Car对...

以下为关联文档:

有机生产怎样进行内部质量控制为了保证农场(基地)生产完全按照有机农业标准进行,保证有机产品在收获、加工、储存、运输和销售过程中不受杂质污染,有机食 品生产农场(基地)应设立专门的内部质量管理机构,负责制...

塌鼻梁怎么画立体妆 5种鼻形的修饰◆塌鼻梁: 塌鼻梁的人看着往往给人以面部呆板的感觉,在选用鼻影时,应尽量选用用肤色相比较深的棕红色、紫褐色等。 操作手法:首先,在整个面部涂上粉底霜,在鼻梁两侧涂上阴影色,让鼻...

如何打暗影修饰鼻形1. 鼻部 鼻部化妆的目的 鼻子位于脸部的中央,使脸部保持均衡,是基本没有活动的部位。比较易于表现整个脸部的形象。 各种类型鼻子的化妆方法 ①鼻梁 ②鼻侧 ③鼻头 ④鼻翼 大...

如何充分合理利用建筑物内部空间建筑内部空间设计是建筑空间组合向建筑内部空间的深入研究,在现代建筑设计中,除考虑建筑的功能、空间组合、技术处理、外部造型等因素外,还应深入到内部空间,充分考虑内部空间的...

如何建立企业内部人才库机制1、首先对企业人才需求进行预测,根据企业发展战略和目标,以及业务发展需要,同时分析企业以往人员离职规律,对企业未来人员流动做出预测,明确企业需要储备哪些类型的人才,哪些岗位...

电脑机箱内部结构图里面是什么电脑机箱内部结构图如下: 机箱一般包括外壳、支架、面板上的各种开关、指示灯等。外壳用钢板和塑料结合制成,硬度高,主要起保护机箱内部元件的作用,支架主要用于固定主板、电源...

要个电脑主机内部结构说明图(图一)主板图解 主板是整个电脑的基板,是CPU、内存、显卡及各种扩展卡的载体。主板是否稳定关系着整个电脑是否稳定,主板的速度在一定程度上也制约着整机的速度。 2.CPU (图二)最...

电脑主机的基本构造是什么内部解说图主机的组成 (1)中央处理器。中央处理器,英文缩写CPU(Central Processing Unit),也称中央处理单元,主要由控制器和运算器组成。对微型机来说,中央处理器做在一个芯片上,称为微处理器...

在java中一个类的修饰符有哪些一:访问修饰符: 1.省略访问修饰符 具有默认的访问特性,即具有包访问特性,只能被同一个包中的类使用。 2.public访问修饰符 用于说明类和类的成员的访问权限。这种类叫公有类。在...

推荐阅读
图文推荐