Java中创建静态对象的目的是什么?

2024-04-14

class Demo {
   void show() {
      System.out.println("i am in show method of super class");
   }
}
class Flavor1Demo {

   //  An anonymous class with Demo as base class
   static Demo d = new Demo() {
       void show() {
           super.show();
           System.out.println("i am in Flavor1Demo class");
       }
   };
   public static void main(String[] args){
       d.show();
   }
}

在上面的代码中,我不明白创建 Demo 类的对象 d 并在其前面添加 static 关键字的用法。如果我删除 static 关键字,则会显示错误。实际上,我正在经历匿名内部类概念并被困在这里。需要帮助....有人可以解释一下吗?


Java 中的 static 关键字意味着变量或函数在该类的所有实例之间共享,而不是在实际对象本身之间共享。

在您的情况下,您尝试访问static method,

public static void main(String[] args)

因此,我们在此处访问的任何内容都无需创建该类的实例Flavor1Demo必须是一个static资源。

如果您想删除static关键字来自Demo类,你的代码应该是这样的:

class Flavor1Demo {

// An anonymous class with Demo as base class
Demo d = new Demo() {
    void show() {
        super.show();
        System.out.println("i am in Flavor1Demo class");
    }
};

public static void main(String[] args) {

    Flavor1Demo flavor1Demo =  new Flavor1Demo();
    flavor1Demo.d.show();
}
}

在这里你可以看到,我们已经创建了一个实例Flavor1Demo然后得到non-static资源d上面的代码不会抱怨编译错误。

希望能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中创建静态对象的目的是什么? 的相关文章

  • 使用 Intellij Idea 和 gradle 在应用程序引擎上调试 localhost

    我正在使用 IntelliJ 社区添加并使用 Gradle 构建应用程序引擎标准环境应用程序 在迁移到 IntelliJ 和端点框架之前 我使用的是 Android Studio 我无法调试我的本地主机 我添加了 jvmFlags 如下所述
  • 使用 Java 的 Apache Http 摘要身份验证

    我目前正在开发一个 Java 项目 但无法使 http 摘要身份验证正常工作 我尝试使用 Apache 网站 但没有帮助 我有一个需要 HTTP 摘要身份验证的网站 DefaultHttpClient httpclient new Defa
  • java中监视目录变化

    我正在使用 WatchService 来监视目录中的更改 特别是目录中新文件的创建 下面是我的代码 package watcher import java nio file import static java nio file Stand
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 在 Java 中如何找出哪个对象打开了文件?

    我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件 这是为了调试 因此欢迎使用工具或实用程序 如果发现哪个对象太具体了 这class也会很有帮助 这可能很棘手 您可以从使用分析器开始 例如VisualVM http visua
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 如何在字段值无效的情况下更改 Struts2 验证错误消息?

    我在 Web 表单上使用 Struts2 验证 如果字段假设为整数或日期 则
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho

随机推荐

  • Python 中枚举的枚举?

    Python 中是否可以有枚举的枚举 例如 我想要 enumA enumB elementA elementB enumC elementC elementD 供我参考elementA as enumA enumB elementA 或参考
  • 设置 GLEW 窗口?

    我有 Visual Studio 2010 我想在其上设置 glew h 我执行了这一步 但仍然出现链接器错误 1 下载glew包 2 将 h文件复制到C Program Files x86 Microsoft SDKs Windows v
  • Parsley.js - 更改错误容器

    我想改变每个错误消息的位置 即在相应的位置显示错误消息 div class errorBlock div 通过使用文档代码 错误消息显示在元素 输入 之前 而不是按预期显示 有任何想法吗 根据文档 errors container func
  • Knex 连接 Heroku Postgres 时出现错误?

    我正在尝试将 Heroku Postgres 与 Knex 连接 它在本地运行良好 但是当我推 Heroku 时 并尝试注册一个帐户 我收到这个错误 code DEPTH ZERO SELF SIGNED CERT 但我推 Heroku 我
  • Windows 服务错误 1053

    我目前正在编写一个 Windows 服务 它连接到 crm 系统以拉下一个计划 然后运行各种数据源等 我已经一切正常 除了当我安装所有内容并尝试运行启动服务时 我收到以下错误 错误 1053 服务未响应启动或控制请求 及时时尚 这是我在 S
  • 在 JavaScript 中,await 是否可以保证执行顺序而不需要赋值?

    主题 我可以说下面的两段代码是相等的吗 await someFunc no assignment here doSomethingAfterSomeFunc and someFunc then gt doSomethingAfterSome
  • 如何在android http POST中添加参数?

    friends 我正在尝试使用以下教程将文件上传到 php 服务器http getablogger blogspot com 2008 01 android how to post file to php server html http
  • 添加带有多个小部件链接的右键单击上下文菜单?

    我的问题是一种后续行动这个问题 https stackoverflow com questions 12014210 python tkinter app adding a right click context menu 23834156
  • 如何使用标准 MVC Core 依赖注入解析未注册类型

    有没有办法得到IServiceProvider GetService
  • 如何在 matplotlib 中的另一个图上添加一个图?

    我有两个包含数据的文件 datafile1 和 datafile2 第一个始终存在 第二个仅有时存在 因此 datafile2 上的数据图被定义为我的 python 脚本中的函数 geom macro 在 datafile1 上的数据绘制代
  • Visual Studio 忽略 try catch - 仅调试

    我认为错误处理是个好主意 调试时它可能会妨碍 特别是对于用户友好的消息 在 VB6 中 我只需选中编译器的一个框即可忽略我的错误处理 我found https stackoverflow com questions 893277 is th
  • Mediator/EventAggregator 差异

    另外 当我需要在松散耦合的对象之间进行通信时 例如 MVVM的 ViewModel 有关最佳编程实践的不同书籍和博客建议使用 Mediator EventAggregator 模式 我的问题是关于这些模式之间的差异 关系 谁能为我描述一下它
  • 张量流自定义运算梯度

    我们想要在张量流中创建一个自定义层 因此 我们决定简单地从一个玩具示例开始 复制层 经过一番尝试和错误后 我们发现梯度似乎会传递正确的值 然而 在第二次迭代中 特征得到了 NAN 这可能是一个简单的错误 但目前我看不到它 总的来说 我有两个
  • 什么 Java 垃圾收集器清理 PermGen?

    垃圾收集者名单 串行GC 并行气相色谱 并行旧GC 浓缩标记扫描GC G1 GC 我知道当您启用 ClassUnloading JVM 选项时 Conc Mark Sweep GC 支持清理 PermGen 其他垃圾收集器是否支持清理 Pe
  • GitLab 管道 Docker 构建卡在 apk 上

    尝试创建一个简单的 GitLab 管道 为 Alpine Linux Openshift CLI 构建 Docker 镜像 这是代码 FROM frolvlad alpine glibc latest MAINTAINER Daniel W
  • 从嵌入的 SVG 设置 XSL FO 背景图像

    我正在创建背景文本withinXSL FO 文档是这样的
  • JQuery Mobile 刷新复选框仅有效一次 - .checkboxradio('refresh') 问题

    我遇到了一个奇怪的问题 我有一个带有复选框列的表格 我正在使用 JQuery Mobile 复选框 我希望单击一行与单击该行中的复选框相关联 JS document on pagecreate function event bindRowC
  • 如何在 Formidable (Node.js) 中取消用户上传?

    我已经研究这个问题两天了 但我被困住了 我正在使用 Node js 和 Express 并且正在尝试实现上传表单 基本上 我希望表单执行以下操作 检查文件的大小 如果太大则取消上传 当我说取消时 我的意思是防止任何进一步的数据写入磁盘并删除
  • Supervisor 3.3 与 Ubuntu 16.04 服务启动失败 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天早上 我通过使用升级了我的主管 pip install upgrade supervisor from 3 2 to 3 3 但之后
  • Java中创建静态对象的目的是什么?

    class Demo void show System out println i am in show method of super class class Flavor1Demo An anonymous class with Dem