Java - 包私有类内的方法可访问性?

2023-11-23

如果我有一个包私有的java类(用“类”声明,而不是“公共类”),那么里面的方法声明为公共或受保护或包私有实际上没有区别,对吗?那么我应该使用哪个,或者什么时候应该使用哪个?我有点困惑。


如果我有一个包私有的java类(用“类”声明,而不是“公共类”),那么里面的方法声明为公共或受保护或包私有实际上没有区别,对吗?

好吧,也许不会立即。但是,如果您随后(或将来)声明一个从包私有类继承的“受保护”或“公共”类,则原始类的成员的可见性do matter.

正如 @kmccoy 指出的,将类声明为 Final 消除了子类的可能性。

但这实际上只是装饰门面。如果您随后决定确实需要创建子类,则只需删除final...然后您又回到了访问修饰符的选择确实很重要的情况。

IMO,底线是你应该选择最合适的修饰符......即使现在没有必要。如果不出意外,您对修饰符的选择应该记录您对抽象边界所在位置的意图。

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

Java - 包私有类内的方法可访问性? 的相关文章

  • Java 字符串哈希码缓存

    字符串不变性的优点之一是哈希码缓存以实现更快的访问 在这种情况下 如何处理具有相同哈希码的字符串的缓存 在这种情况下它真的能提高性能吗 在这种情况下 如何处理具有相同哈希码的字符串的缓存 被缓存的是字符串的哈希码 它被缓存在私有的int字符
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • Spring boot 2.0.5.RELEASE和mongo 4.0连接问题

    我正在关注使用 MongoDB 访问数据教程春季网站 https spring io guides gs accessing data mongodb 我将 Mongo DB 服务器版本 4 安装为服务当我使用客户端连接到它时 它的身份验证
  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • Glassfish:在部署期间修改 EAR 的部署描述符

    经过几天的搜索 尝试和摇头 我将这个问题发布到 SO 尽管它seems已经得到答复 这是场景 我有一个 EAR 应用程序 目前 包含一个 WAR 和一个 EJB 模块 EJB 模块使用 JPA persistence xml 并且一些无状态
  • ResultSet:通过索引检索列值与通过标签检索

    使用 JDBC 时 我经常遇到这样的结构 ResultSet rs ps executeQuery while rs next int id rs getInt 1 Some other actions 我问自己 以及代码作者 为什么不使用
  • 初始堆大小无效。无法创建Java虚拟机

    我遇到了下一个问题 我尝试通过startup bat手动启动Tomcat 但似乎没有显示任何结果 然后我尝试运行shutdown bat 控制台显示如下 D apache tomcat 7 0 35 bin gt startup bat U
  • 如何为java注释处理器编写自动化单元测试?

    我正在尝试使用 java 注释处理器 我可以使用 JavaCompiler 编写集成测试 事实上我现在正在使用 hickory 我可以运行编译过程并分析输出 问题 即使我的注释处理器中没有任何代码 单个测试也会运行大约半秒 对于以 TDD
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • C++ - 模板类中模板函数的单独声明/定义

    我知道在标头中声明模板类方法并在源文件中定义它的语法如下 myclass h template
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 无法自动装配 org.springframework.mail.javamail.JavaMailSender

    尝试运行我的应用程序时遇到以下问题 所有的东西都调试过了 还是一无所获 IDE 毫无问题地找到了 bean 所以我对这里发生的情况感到非常困惑 SEVERE Exception sending context initialized eve
  • Java字符串查找和替换的最佳方法?

    我正在寻找 Java 中字符串查找和替换的最佳方法 这是一句话 我的名字叫米兰 人们都知道我叫米兰瓦西奇 我想用 Milan Vasic 替换 Milan 弦 但在我已经有 Milan Vasic 的地方 情况不应该是这样 搜索 替换后的结
  • 更新分页。是否可以?

    他们是否存在一些方法来处理更新分页 例如我有 100 行类型 Id private Integer id Column private boolean flag Column private Date last 一开始它们看起来像 id f
  • ASTParser:解析绑定后查找声明节点

    我创建了一个启用了绑定的 AST 当我稍后解析绑定时 我得到了一个有效的 ITypeBinding 但是 当我想要获取绑定的声明 Node 时 它 总是返回 null 除非 ITypeBinding 在 sourceFile 中声明 这是我
  • Struts2中的变量声明

    Struts2中如何声明变量并为该变量赋值 使用设置标签
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下

随机推荐

  • 特征可以为父特征的*某些*方法提供默认实现吗?

    假设我们有一个基本特征和一个高级特征 如下所示 pub trait BasicTrait fn key method self fn other method self pub trait AdvancedTrait BasicTrait
  • 根据应用程序状态停止和启动服务

    我有一项跟踪用户位置的服务 目前 服务在应用程序启动时启动 在应用程序终止时停止 不幸的是 如果用户将应用程序保留在后台 该服务将永远不会停止并耗尽电池电量 我希望当我的应用程序不在前台时停止该服务 我希望 Application 类能让我
  • 如何检查文档是否在 IFrame 中打开?

    有没有办法知道您的页面是否在某个内部打开IFrame 我的一个想法是看看是否window对象有一个 parent属性 但这显然对于由 Javascript 打开的独立窗口也是如此window open 功能 if window top wi
  • 如何在不使用序列化的情况下深度复制java对象?

    是否可以在不使用序列化的情况下对 Java 对象进行深度复制 克隆 如果是这样那怎么办 你可以使用Java Deep Cloning Library制作对象的深层副本 当您不能 或不想 使您的类可序列化时 它非常有用 使用方法很简单 Clo
  • NodeJS 通过流复制文件非常慢

    我在 VMWare 下使用 Node 在 SSD 上复制文件 但性能非常低 我用来测量实际速度的基准如下 hdparm tT dev sda dev sda Timing cached reads 12004 MB in 1 99 seco
  • R - 具有多个因子标签的箱线图

    我正在尝试在 R cran 中制作一个箱线图 该箱线图按 x 轴上的两个不同因素进行分类 我的问题在于为具有 20 个级别的一个因素创建适当跨越整个图表的标签 同时使用图例来标记仅具有 2 到 3 个级别的第二个因素 这是一个大致模仿我的实
  • OPENROWSET 或 OPENDATASOURCE 从远程服务器文件系统上的 .xlsx 或 .csv 文件获取数据的示例

    有很多示例展示如何使用开放行集 and 开放数据源打开针对远程 SQL 服务器上的表的查询 并从其他服务器上的文件中获取数据 不幸的是 他们都没有告诉我如何做我需要做的具体事情 即使用这些命令之一使用服务器 IP 地址和 Windows 登
  • 使用 awk 或 bash 减去两列的值

    我有一些文本文件 如下所示 我想减去第 2 列和第 4 列的值 并且需要为输出创建一个新列 co1 co2 co3 co4 r1 15 2 13 0 21 4 r2 23 15 15 7 r3 14 8 12 期望的输出 co1 co2 c
  • 需要一个字段或另一个字段

    基本上我想弄清楚的是如何要求在视图中至少填写两个字段之一 在我看来 我有两个文本字段 分别称为 ISBN 和 ISBN13 用户填写哪一项并不重要 只要填写其中一项即可 我不知道在这里要做什么 希望考虑编写一个自定义验证器 所以我想我会先问
  • 是什么导致 JsonException: JSON 值无法转换?

    C 10 NET 6 System Text Json 我正在使用一个以 JSON 响应形式返回的 API 我正在尝试使用System Text Json将 JSON 响应反序列化为类 我收到 JsonException 并可以帮助理解我做
  • dyld 未加载原因:未找到图像 libopencv_core.2.4.dylib

    我对 Objective C 和 Xcode 还很陌生 但我刚刚完成了一个使用 openCV 的小应用程序libopencv core 2 4 2 dylib 当我打开最终构建的应用程序时另一台机器 OS X 给我抛出了这个错误 Dyld
  • Pandas TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 periodIndex 有效,但获得了“Int64Index”的实例

    我有一些想要分析的订单数据 目前感兴趣的是 哪个 SKU 在哪个月被购买的频率是多少 这是一个小例子 import datetime import pandas as pd import numpy as np d sku RT 17 df
  • Android - 通过 getIdentifier() 和 getStringArray 使用另一个字符串引用字符串数组

    我想要访问多种字符串数组 具体取决于用户决定使用哪一个 我不想使用 SQLite DB 因为我对 Android Java 很陌生 而且我一直在努力寻找示例 所以我猜这是一种相当糟糕的方法 但无论如何 如果我的 xml 文件中有这样的内容
  • 无法运行 Android 模拟器,因为无法在 Windows 7 中初始化模拟的 FramebufferHAX

    我正在使用 Google 地图活动并添加了一些依赖项以在模拟器上显示地图 我收到以下错误 C Users root AppData Local Android sdk tools emulator exe netdelay none net
  • C++ OS X 打开默认浏览器

    我想知道一种从 C 应用程序打开 OS X 上的默认浏览器 然后打开请求的 URL 的方法 编辑 我这样解决了 system open http www apple com 如果您更喜欢使用本机 OS X API 而不是system ope
  • C++ 枚举类整数不适用于数组下标

    我有以下枚举类 enum class EnumClass int A 0 B 现在我想用该枚举类型为数组添加下标 MyObject arr 2 MyObject a arr EnumClass A MyObject b arr EnumCl
  • 使用子句中的 Delphi 条件编译

    我正在尝试修改我的 Delphi 2010 代码以在 XE7 中编译 并希望保留在 2010 中编译它的能力 因此 在容纳我的主窗体的单元中 我添加了条件指令 以下内容在 2010 年运行良好 uses IF CompilerVersion
  • Visual Studio 只在第二行汇编时中断?

    简短描述 在我的第一行设置断点 CODE汇编程序中的段不会停止程序的执行 问题 Visual Studio 的调试器会导致它无法在用汇编语言编写的程序的第一行创建断点吗 这是调试器的一些奇怪之处 是中断多字节指令的情况 还是我只是做了一些愚
  • Jupyter找不到keras的模块

    我已经安装了 Anaconda 的 Tensorflow 和 Keras 在 Windows 10 上 我创建了一个使用 Python 3 5 2 的环境 Anaconda 中的原始环境是 Python 3 6 当我尝试执行时import
  • Java - 包私有类内的方法可访问性?

    如果我有一个包私有的java类 用 类 声明 而不是 公共类 那么里面的方法声明为公共或受保护或包私有实际上没有区别 对吗 那么我应该使用哪个 或者什么时候应该使用哪个 我有点困惑 如果我有一个包私有的java类 用 类 声明 而不是 公共