迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的静态类

作者:迹忆客 最近更新:2023/10/10 浏览次数:

在 Java 语言中,我们不能将外部类创建为静态类,但是有特权可以将嵌套的内部类创建为静态类。静态类的属性如下。

静态内部类永远不能访问外部类的非静态成员。

静态内部类不需要任何外部类引用来访问成员变量。

静态类永远无法实例化。因此,方法可以通过类名直接访问。

下面是演示上述两行的代码。

package static_class;

public class StaticInnerClass {
    static int i = 1;
    int j = 9;

    public static void main(String[] args) {
        StaticInnerClass s = new StaticInnerClass();
        // s.InnerClass.printNum();
        InnerClass.printNum();
    }

    public static class InnerClass {
        public static void printNum() {
            System.out.println(i);
            //System.out.println(j);
        }
    }
}

在上面的代码中,我们创建了一个名为 StaticInnerClass 的外部类。这个类有一个静态字段、非静态字段、静态方法和一个静态内部类。在静态 main 方法中,我们创建了一个名为 s 对象的外部类的实例。当我们尝试使用外部类对象访问内部类 printNum() 方法时,即 s.InnerClass.printNum(); IDE 给出一个编译时错误,它指出静态内部类不需要外部类引用对象的任何引用来访问内部类方法。因此,我们可以通过类名直接访问内部类方法。

现在当我们看到 printNum() 方法的定义时。它有两个打印语句。首先打印外部类的静态字段,然后尝试打印相同的非静态变量。语句 System.out.println(i); 是有效的,这意味着只能从静态上下文访问静态成员。但是看看第二个语句,System.out.println(j); 无效,因为永远不能从静态上下文访问非静态成员。

在 Java 类中,不可能创建外部类静态类。但是,我们可以使用一些定义的关键字来模仿行为。

final 关键字的使用是使类成为最终的。此关键字禁止类进一步扩展。原因是静态类的扩展没有用。

使用 private 关键字将构造函数设为私有,因为这会阻止静态类的实例化。正如静态类的属性所说,永远无法实例化它。

在成员变量和成员方法中使用 static 关键字。由于没有创建对象,因此永远无法访问非静态成员字段和函数。

下面是一个定义的静态类,它的用法用于制作 Utility 类,其中不需要创建此类的对象。

package static_class;

public final class StaticClass {
    private static int a = 1;

    private StaticClass() {
        System.out.println("Cannot be instantiated");
    }

    public static void printNum() {
        System.out.println(a);
    }
}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中导入自定义类

发布时间:2023/10/10 浏览次数:73 分类:Java

这篇文章将要导入 Java 中的自定义类。本文介绍了如何在 Java 中导入自定义类。如果该类存在于同一个包中,则通过创建其对象来使用该类,如果该类存在于另一个包中

在 Java 中设置 classpath

发布时间:2023/10/10 浏览次数:174 分类:Java

这篇文章是关于在 Java 中设置 classpath 的。本文介绍了在 Java 中设置类路径 classpath 的过程,并列出了一些示例代码以理解该主题。

在 Java 中扩展两个类

发布时间:2023/10/10 浏览次数:111 分类:Java

这篇文章是关于可用于在 Java 中扩展两个或多个类的方法。本文介绍如何在 Java 中扩展两个或多个类。我们还提供了一些示例代码来帮助你理解该主题。

在 Java 中获取类名

发布时间:2023/10/10 浏览次数:152 分类:Java

这篇文章展示了如何在 Java 中获取类名本文介绍如何使用四种方法在 Java 中获取类名。在很多情况下,我们可能希望在 Java 中获取类名。在 Java 中使用 class.getSimpleName() 获取类名

Java 中的私有静态变量

发布时间:2023/10/10 浏览次数:160 分类:Java

本教程演示了 Java 中的私有静态变量。类变量,通常称为静态变量,在类中使用 static 关键字定义,但在方法、构造函数(默认或参数化)或块之外。

Java 中的 super 关键字

发布时间:2023/10/10 浏览次数:141 分类:Java

本教程演示了如何在 Java 中使用 super()。在 Java 中,我们有一个与父类有些相关的预定义关键字 super。我们将在本教程中详细讨论 super() 函数。

Java 中的规则引擎列表

发布时间:2023/09/30 浏览次数:107 分类:Java

本文介绍了 Java 中的规则引擎列表。规则引擎将业务逻辑与源代码分开。本文描述了一些最流行的 Java 规则引擎。

Java 中的按钮单击事件

发布时间:2023/09/30 浏览次数:196 分类:Java

本文介绍如何在 Java 中创建按钮单击事件。我们使用事件侦听器在 Java 中创建按钮单击事件。本文介绍如何在 Java 中创建按钮单击事件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便