- Java类
- Java包
- Java方法
- Java访问
- Java创建
- Java对象(Object)
- Java内部类
- Java继承
- Java抽象类
- Java泛型类
- Java异常
- Java接口
- Java枚举
- Java注解
Java静态内部类
静态成员类不是内部类在另一个类的主体中定义的成员类可以声明为静态。
示例
以下代码声明了顶级类A和静态成员类B:
class A { // Static member class public static class B { // Body for class B goes here } }
静态成员类不是内部类。 它被认为是一个顶级类。静态成员类也称为嵌套顶级类。A类的实例和B类的实例可以独立存在,因为它们都是顶级类。
静态成员类可以声明为public
,protected
,package-level
或private
,以限制其在其封闭类之外的可访问性。
使用静态成员类有两个好处:
- 静态成员类可以访问其包含类的静态成员,包括私有静态成员。
- 一个包通过提供一个命名空间,就像一个顶级类的容器。 具有静态成员类的顶级类提供了额外的命名空间层。
静态成员类是其封闭顶级类的直接成员,而不是包的成员。
静态成员类的对象的创建方式与使用new
运算符创建顶级类的对象的方式相同。 要创建一个B类的对象,如下所示 -
A.B bReference = new A.B();
由于类B的名称在类A中的范围内,因此可以使用其简单名称在类A中创建其对象。
B bReference2 = new B(); // This statement appears inside class A code
还可以通过导入com.zyiz.innerclasses.A.B
类,使用A
类之外的简单名称B
.
实例-2
下面的代码显示了如何使用静态内部类。
public class Main { public static void main(String[] args) { Car.Tire m = new Car.Tire(17); Car.Tire m2 = new Car.Tire(19); Car.Keyboard k = new Car.Keyboard(122); Car.Keyboard k1 = new Car.Keyboard(142); System.out.println(m); System.out.println(m2); System.out.println(k); System.out.println(k1); } } class Car { // Static member class - Monitor public static class Tire { private int size; public Tire(int size) { this.size = size; } public String toString() { return "Monitor - Size:" + this.size + " inch"; } } // Static member class - Keyboard public static class Keyboard { private int keys; public Keyboard(int keys) { this.keys = keys; } public String toString() { return "Keyboard - Keys:" + this.keys; } } }
上面的代码生成以下结果。
Monitor - Size:17 inch Monitor - Size:19 inch Keyboard - Keys:122 Keyboard - Keys:142
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王