java静态类

Today we will look into java static class. It’s a good interview question to test your knowledge about nested classes in java.

今天,我们将研究java静态类。 测试您对Java嵌套类的了解是一个很好的面试问题。

Java doesn’t allow top level static classes, for example if we try to make a class static like below.

Java不允许顶层静态类,例如,如果我们尝试使类像下面这样静态化,则是不允许的。

Test.java

Test.java

static class Test {}

We get following compilation error.

我们得到以下编译错误。

$ javac Test.java
Test.java:1: error: modifier static not allowed here
static class Test {^
1 error

Java静态类 (Java static class)

So is it possible to have static class in java?

那么有可能在Java中有静态类吗?

Yes, java supports nested classes and they can be static. These static classes are also called static nested classes.

是的,java支持嵌套类,它们可以是静态的。 这些静态类也称为静态嵌套类。

Java static nested class can access only static members of the outer class. Static nested class behaves similar to top-level class and is nested for only packaging convenience.

Java静态嵌套类只能访问外部类的静态成员。 静态嵌套类的行为类似于顶级类,并且仅出于包装方便而嵌套。

An instance of static nested class can be created like below.

静态嵌套类的实例可以如下创建。

OuterClass.StaticNestedClass nestedObj =new OuterClass.StaticNestedClass();

Java静态类示例 (Java static class example)

Let’s look at the example of java static class and see how we can use it in java program.

让我们看一下Java静态类的示例,看看如何在Java程序中使用它。

package com.journaldev.java.examples;public class OuterClass {private static String name = "OuterClass";// static nested classstatic class StaticNestedClass {private int a;public int getA() {return this.a;}public String getName() {return name;}}
}

Now let’s see how to instantiate and use static nested class.

现在让我们看看如何实例化和使用静态嵌套类。

package com.journaldev.java.examples;public class StaticNestedClassTest {public static void main(String[] args) {//creating instance of static nested classOuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();//accessing outer class static memberSystem.out.println(nested.getName()); }}

Java静态类文件 (Java static class file)

Java static class file is named as OuterClass$StaticClass.class. Below image shows this for our example program.

Java静态类文件名为OuterClass$StaticClass.class 。 下图显示了我们的示例程序。

Java静态类的好处 (Java static class benefits)

The only benefit I could think of is encapsulation. If the static nested class works only with the outer class then we can keep nested class as static to keep them close.

我唯一想到的好处就是封装。 如果静态嵌套类仅与外部类一起使用,那么我们可以将嵌套类保持为静态,以使它们保持紧密状态。

翻译自: https://www.journaldev.com/12528/java-static-class

java静态类

java静态类_Java静态类相关推荐

  1. java 声明静态类_java静态类声明--java类可以声明为static吗

    为了理解static关键字在类声明中的使用,首先我们需要了解类声明.有两种类,一种是top-level class:一种是inner class. Top-level classes top-leve ...

  2. java 静态类的实现_[Java教程]Javascript 静态类的实现

    [Java教程]Javascript 静态类的实现 0 2012-04-06 11:00:05 早些天写过了类的实现,接着我们看看的静态类的实现.这东西在Javascript里用得会非常的频繁,因为针 ...

  3. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  4. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  5. 为什么java需要静态类_java – 为什么OOP中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java最佳实践的内容,我发现根据 this book,我们必须支持非静态的静态类.我记得在C#最佳实践中,我们必须根据Dennis Doomen的C#3.0,4.0和5.0编码指 ...

  6. java定义一个静态类_Java中的静态类

    在java中有类似的静态类的类吗? 静态类的定义是什么.静态类的所有方法都需要是静态的吗? 是否需要相反的方式,如果一个类包含所有的静态方法,类应该是静态的? 静态类有什么好处? 回答: Java有静 ...

  7. java静态类和非静态类_java静态方法和非静态方法的区别

    一.相同点: 静态类和非静态类在C#中定义基本是一样的,只是静态类定义需要加上static修饰符而已. 二.生命周期: 静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的 ...

  8. java 私有静态类_java中,在私有的静态类中如何触发jbutton

    privatestaticclassTeammember{publicTeammember()throwsUnsupportedEncodingException,FileNotFoundExcept ...

  9. java 静态类 new_java静态类new的对象是否能被回收?

    问题来自一个线上GC频繁的应用,观察到老年代一直gc下不去导致应用被gc STW卡主假死,检查代码发现这样一段代码,感觉可疑 代码如下: public class WriteEsWork { publ ...

最新文章

  1. zap支持php,golang的zap怎么使用
  2. Redis之intset(整数集合)
  3. REGULAR NOMINATION AGGRESSIVE NOMINATION
  4. LeetCode Algorithm 746. 使用最小花费爬楼梯
  5. matlab 处理dat文件画图,matlab_DAT_processing matlab处理dat文件并进行绘图 - 下载 - 搜珍网...
  6. linux adduser mysql,linux独享初始配置方法(ftp、apache、mysql)
  7. C++工作笔记-stl中map基础用法(插入,遍历,删除)
  8. erp系统开源_自行构建的开源ERP系统
  9. linux中关于ssh实验,操作系统实验三linux的telnetftpssh的相关配置及验证
  10. HackerOne《2020年黑客驱动安全报告》:中国白帽子的收入增长幅度最大
  11. 如何借助大数据进行宏观经济分析
  12. 怎么看mmdetection版本_如何评价商汤开源的 mm-detection 检测库?
  13. python内置函数__init__及__str__的区别
  14. 【损失函数】常见的损失函数(loss function)总结
  15. 算法第四版书的C++版本代码
  16. Busybox下tftp命令使用详解
  17. 几种常见的距离计算公式
  18. 3.28Javase笔记day01
  19. 【信息系统项目管理师】【理解+题目】【信息系统与信息化】
  20. 三角形外心坐标的计算公式

热门文章

  1. java之classpath到底是什么
  2. XCL-Charts圈图
  3. [转载] 【RTTmicropython教程】玩转 Web 服务器
  4. verilog中的initial块、always块详细解释
  5. CF1110G Tree-Tac-Toe 博弈论、构造
  6. Oracle入门第二天(下)——单行函数
  7. mysql开启远程可连接
  8. 你该学点HTML/CSS知识的9大理由
  9. 精通PHP的十大要点
  10. C++之---class 的三种访问修饰符( public、private、protected )