java“this”关键字正确使用

2023-12-10

我有一个在构造函数中使用关键字 this 的 Fraction 类:

public Fraction(int numerator, int denominator)
{
    this.numerator = numerator; 
    this.denominator = denominator; 
    adjustSigns();

    if(this.denominator == 0 )
    {
     throw new FractionException(" Undefined Fraction ");
    } 
}

我也有一个方法:

 public FractionInterface multiply(FractionInterface secondFraction)
 {
    Fraction second = (Fraction) secondFraction; 
    Fraction answer = new Fraction ((numerator * second.numerator), (denominator * second.denominator));        
    answer.reduceToLowestTerms();
    return answer; 
}

当我编译和运行时,上面的方法工作正常,但这个版本是这样的:

 public FractionInterface multiply(FractionInterface secondFraction)
 {
    Fraction second = (Fraction) secondFraction; 
    Fraction answer = new Fraction ((this.numerator * second.numerator), (this.denominator * second.denominator));      
    answer.reduceToLowestTerms();
    return answer; 
 }

我的问题是哪一个是正确的?如果在我的构造函数中使用“this”关键字,我是否也必须在我的方法中使用它?再说一次,他们都工作得很好,并且做了他们应该做的事情,但我想知道哪种方法是正确的方法。谢谢。


Using this如果您希望区分局部变量和同名成员,则显式是强制性的。否则,它是可选的。

如果没有,您的构造函数不会将传递值分配给实例成员this.前缀,因为方法参数会隐藏实例成员。如果您为参数指定不同的名称,则可以不用this. :

public Fraction(int num, int denom)
{
    numerator = num; 
    denominator = denom;
    ...
}

Both multiply版本相同。

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

java“this”关键字正确使用 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe

随机推荐

  • C++:调用临时对象的构造函数

    假设我有以下内容 int main SomeClass return 0 如果没有优化 SomeClass 构造函数将被调用 然后它的析构函数将被调用 对象将不复存在 然而 根据 IRC 频道 如果编译器认为 SomeClass 构造函数
  • Gstreamer 的 OpenCV 3.0.0 错误

    我刚刚按照本教程安装了 OpenCV 3 0 http rodrigoberriel com 2014 10 installing opencv 3 0 0 on ubuntu 14 04 我在安装过程中没有遇到任何错误 但是 当我尝试运行
  • 如何使用 AJAX 上传文件而不使用 multipart?

    我的应用程序允许用户上传的唯一文件是图像 并且它们始终作为表单中的唯一输入字段上传 因此 多部分是不必要的 并且我可以在没有多部分解析器的情况下更轻松地使用该文件 如何使用 AJAX 和 vanilla Javascript 在不使用分段的
  • 如何在通过Spark生产消息的Kafka中均匀分布数据?

    我有一个将数据写入 Kafka 的流作业 我注意到其中一个 Kafka 分区 3 比其他分区获取更多的数据 partition messages earlist offset next offset 1 166522754 58616033
  • std::getline 用于 ifstream 但使用 char* 而不是字符串 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想将 getline 函数与char 我不想使用std string因为我有一
  • 为什么要在 POST 请求上要求 CSRF 令牌?

    我的理解是 CSRF 可以防止攻击者使用 img 标签让受害者的浏览器发送一个请求 该请求将使用会话 cookie 进行身份验证 鉴于 img 总是使用 GET 请求而不是 POST 提交 那么为什么需要在 POST 请求中要求 CSRF
  • fileInput 中进度条的颜色 -- Shiny

    我正在尝试更改 Shiny 中 fileInput 小部件中上传进度条的颜色 我是一个有点闪亮的新手 在互联网上搜索过但没有结果 有任何想法吗 这是一个示例应用程序 我使用 CSS 将进度条的颜色设置为绿色 ui lt fluidPage
  • 动态循环 htmlwidgets 并为 RMarkdown 添加 knit 格式

    我正在尝试动态创建和循环htmlwidgets例如DT plotly or rbokeh生成自动针织报告 有没有办法添加knitr格式化 例如tabset 进入tagList这个 github 问题中概述的方法https github co
  • java.util.function.Supplier 在 C++ 中的等价物是什么?

    例如 我有以下 Java 代码 public class Main public static void main String args System out println maker Employee new private stat
  • Elasticsearch升级2.3.1 Nest客户端Raw String

    在升级到 elastic 2 3 1 时 我遇到了 Net Nest 客户端的问题 在 Nest 1 0 中 我可以从文件中读取索引的设置 并使用原始字符串在创建时配置索引 有没有一种方法可以实现 Nest 2 0 中类似的功能 或者我是否
  • 有没有办法更改Word文档中的修订作者?

    我想知道是否有办法更改文档中修订的作者 我找到了更改评论作者的方法 但没有找到修订部分的方法 我试图在 Revisions object 文档中找到一个属性 方法来更改它 但我什么也没找到 正如我所说 我已经尝试这样做 Sub Change
  • 如何将数字传递给 TextField JavaFX?

    我正在开发简单的计算器 用户在其中输入两个数字TextField结果显示在结果中TextField 我用了Double parseDouble从输入 TextFields 获取文本并对其应用操作 但我无法将其传递到第三个输入字段 我试图投射
  • 我们进行一些检查后是否可以退出 iOS 应用程序

    如果应用程序已过时 我们不希望用户进入您的应用程序 当我们在应用程序启动之前进行一些日期检查时 是否可以退出 iOS 应用程序 或者可以在加载主视图后退出应用程序吗 在应用程序启动之前 否 当操作系统调用时 启动动画已经在进行中main 一
  • 带有 sqlplus 和密码特殊字符的 Shell 脚本

    我有一个混合 Linux Unix shell 脚本和 sqlplus Oracle 的问题 这让我抓狂 sqlplus 使用如下语法 sqlplus johnF email protected 1521 SID 而且效果很好 然而我的密码
  • Python 多播接收器中的重复数据包

    有一个脚本可以打开套接字并从中读取多播 来自Python 中的多播 import socket import struct MCAST GRP 224 1 1 1 MCAST PORT 1234 sock socket socket soc
  • 顶级变量不是全局范围的,并且返回值在 CoffeeScript 中是强制的

    funName gt foo addClass bar 编译到匿名函数的作用域中 呼唤funName从控制台结果undefined function var funName funName function return foo addCl
  • 更改连续类别页面上的帖子数量 (Wordpress)

    我正在尝试更改类别页面上显示的帖子数量 以在连续页面 第 2 页 第 3 页等 上进行更改 因此 第一页显示 7 个帖子 但该类别的第 2 3 和 4 页等每页仅显示 6 个帖子 即 当您单击 下一页 列出较旧的帖子时 我知道更改不同类别
  • OpenRefine:创建列的移位副本

    我想知道 OpenRefine 是否允许您在创建新列时访问其他行的数据 我怀疑它不会 这将是一个合理的设计原则 但可能有一个解决方案 下面是一个可能想要做的示例 将一列移动一行 我有下表 row Model 1 Quest 2 DF 3 W
  • 那么既然 Scapy 已重命名为 Kamene,我将如何导入和使用 base64_bytes?

    所以我以前可以导入scapy的base64 bytes通过使用from scapy all import base64 bytes 但是 当我这样做时 我收到此错误 PIP 包 scapy python3 用于提供 scapy3k 它是 s
  • java“this”关键字正确使用

    我有一个在构造函数中使用关键字 this 的 Fraction 类 public Fraction int numerator int denominator this numerator numerator this denominato