为什么这个类有两个构造函数?

2024-03-15

我在旨在说明构造函数的幻灯片中看到了这一点。我现在很困惑,因为它有两个具有相同工作的构造函数,接受在第二个构造函数中将 gpa 设置为零。为什么编码器需要重复this.id = id; this.name = name;再次?为什么这个类需要两个构造函数?

class Student{
      private int id;
      private String name;
      private double gpa;
      public Student(int id, String name, double gpa){
        this.id = id;  this.name = name;   this.gpa = gpa;
      }
      public Student(int id, String name){
        this.id = id;  this.name = name;   gpa = 0.0;
      }
      public boolean equals(Student other){
          return id == other.id && name.equals(other.name) 
                       && gpa == other.gpa;
      }
      public String toString(){
        return name + " " + id + " " + gpa;
      }
      public void setName(String name){
        this.name = name;
      }
      public double getGpa(){
        return gpa;
      }
    }

与大多数人为的示例一样,除了表明重载是可能的之外,通常没有明显的原因。在这个例子中,我很想重构第二个构造函数,如下所示:

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

为什么这个类有两个构造函数? 的相关文章

  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • V8 如何管理它的堆?

    我知道V8的垃圾收集在工作时 会从GC的root开始追踪 这样无法到达的对象就会被标记然后被清除 我的问题是GC是如何遍历那些对象的 必须有一个数据结构来存储所有可达或不可达的对象 位图 链接表 顺便说一句 JVM 也做同样的事情吗 艾伦秀
  • @PreUpdate 不适用于 Spring Data JPA

    我有一个实体 Entity EntityListeners MyEntityListener class class MyEntity 还有听者 class MyEntityListener PrePersist PreUpdate pub
  • 如何在 OpenAPI 3.0 中定义字节数组

    我正在将 API 从 Swagger 2 0 迁移到 OpenAPI 3 0 在 DTO 中 我有一个指定为字节数组的字段 Swagger 对 DTO 的定义 Job type object properties body type str
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 无法从后台服务通过 WiFi 访问互联网

    我将直接介绍我发现的一些事实 数据 如果您遇到 解决了类似的问题 请帮助我 我每 5 分钟向服务器发送一次数据 除非用户在服务器的帮助下手动将其关闭 wakeful broadcast receiver通过一个intent service
  • 我们可以在三元运算符(Java)中使用命令吗?

    这是一个工作代码 String a first String b second String object System out println object null a b 但它不是 String a first String b se
  • 独占锁定ConcurrentHashMap

    我知道不可能锁定 ConcurrentHashMap 进行独占访问 但是 我找不到原因 是因为构成CHM的 Segment 没有被api公开吗 据推测 如果是的话 客户端代码可以执行 交接 锁定 Cheers 我知道不可能锁定 Concur
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • 您能让 Tomcat 6 stdout.log 文件表现得像 log4j DailyRollingFileAppender 吗?

    我们使用的是 Tomcat 6 的 Windows 安装 默认情况下 我们应用程序的 log4j 输出将转到 catalina base logs stdout log 文件 该日志文件仅在我们重新启动 Tomcat 时滚动 并且文件名始终
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • Java中的DRY原则[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我一直在读关于DRY https en wikipedia org wiki Don 27t repeat yourself原则 虽然看起来
  • 嵌入式 tomcat 7 servlet 3.0 注释不起作用

    我有一个精简的测试项目 其中包含 Servlet 版本 3 0 用注释声明 如下所示 WebServlet test public class TestServlet extends HttpServlet private static f
  • 哪种 Java DOM 包装器是最好或最受欢迎的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# 中的类和模块有什么用

    有人可以解释一下类和模块之间的区别吗 你什么时候使用其中一种而不是另一种 我正在使用 C 更新 我的意思是相当于 VB 模块的 C 版本 这在很大程度上取决于您所指的 模块 Visual Basic 的模块 C 中没有真正等效的 VB Ne
  • JDK 7 的快速调试/调试构建

    我正在寻找 JDK 的调试 或者我猜他们称之为快速调试构建 以启用在运行时生成的打印程序集以及查找性能问题时所需的其他诊断 就目前情况而言 我似乎找不到可以直接使用的 现成的 快速调试构建二进制包 有人可以帮我提供下载链接 或者至少提供有关
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储

随机推荐

  • MouseLeftButtonDown 没有被解雇

    我有一个从 UserControl 类派生的 WPF 用户控件 MouseLeftButtonDown 根本没有被控件触发 我添加了事件处理程序并尝试如下 我想它是在其他地方处理的 如何调试并找到它在哪里得到处理 任何帮助都值得赞赏 pro
  • 安装了JDK但没有javap?

    我安装了 JDK 10 0 2 在程序的类文件文件夹中打开 cmd 然后尝试命令 javap Simulation class 我收到错误消息 未找到命令 javap 我做错了什么 你必须有你的 JAVA HOME bin目录添加到系统PA
  • Firebase Admin SDK 是否执行任何缓存?

    我最近一直在使用带有云功能的Firebase 这个问题突然出现在我的脑海中 如果在我的云函数中 使用 Firebase Admin SDK 在单个函数调用中对同一文档执行多次读取 它会算作数据库中的多次读取还是会缓存数据 Example a
  • 在一个项目中混合 Web Api 和 ASP.Net MVC 页面

    如何在一个项目中混合 Web API 和 ASP Net MVC 页面 例如 我有模型用户 我希望在同一个项目中 有一个 ApiController 可以响应所有用于管理用户实体的 HTTP 动词 同时有一个 Controller 可以根据
  • Eclipse 中有效 HTML5 属性的警告

    我使用 Eclipse 并编写包含 HTML5 内容的 jsp 文件 所以我有例如这一行 div class test 在 Eclipse 中我收到警告 Undefined attribute name data role 需要做什么才能使
  • 如何将我的 nib 文件的所有者设置为另一个 nib 文件中的对象?

    我是 Cocoa 新手 无法将我的 nib 文件拆分为多个 nib 文件 My MainMenu nib包含一个Tracker Controller对象 它是一个子类NSObject 它有一个出口Show Tracker我的主菜单中的菜单项
  • 在 Ruby 中解析文本

    我正在编写一个用于导入 SketchUp 组件信息的脚本 他们的帮助页面上有一位非常乐于助人的人 帮助我创建了一个可用于 编辑 的逐行文本文件的文件 现在我准备将其提升到一个新的水平 直接从 FreePCB 创建的原始文件导入 我希望使用的
  • 在 Rust 中,用于连接任意数量的组件来构建路径的宏是什么?

    在Python中 有一个函数叫做os path join 允许使用操作系统的路径分隔符将多个字符串连接到一个路径中 在 Rust 中 只有一个函数join 将字符串或路径附加到现有路径 这个问题无法用普通函数解决 因为普通函数需要有固定数量
  • 我可以在 SQL Server 2005 中使用 MERGE 语句吗?

    我正在使用 SQL Server 2005 我想在 SQL Server 2005 中的单个查询中创建 MERGE 语句或概念 这可能吗 MERGE http technet microsoft com en us library bb51
  • 无需数学函数或对数函数即可查找数字是否为 2 的幂

    我想知道用户输入的数字是否是2的幂 我的代码不起作用 public class power of two public static void main String args Scanner in new Scanner System i
  • Android Studio Preview 3.0 - 运行即时应用程序时应用程序安装失败

    我是运行即时应用程序的新手 我创建了一个新的 Hello World 项目 具有即时应用程序支持 根据安卓开发者文档 https developer android com topic instant apps getting starte
  • 连接两个变量

    这就是我想做的 errmsg 1 Please make changes to your post errmsg 2 Please make changes to your post image error 1 echo errmsg er
  • Android 遥控器如何与 Google TV 配合使用

    关于如何做的任何想法Google TVAndroid 平台上的远程应用程序可以工作 我今天刚尝试过 通过 Wi Fi 进行配对后 它就开始工作了 其背后的理念是什么 好像没有使用Bluetooth 那么在电视上不安装任何组件的情况下它是如何
  • Visual Studio 键绑定配置文件

    Visual Studio 是否有用于其键绑定的人类可编辑的配置文件 选项 gt 环境 gt 键盘 对话框已完全损坏 或者至少使用起来太繁琐 并且自 Visual C 5 以来一直如此 我真的只想转到 Visual Studio 保存键绑定
  • MySQL 8 的 Hibernate 方言?

    MySQL 8 有 Hibernate 方言吗 或者我应该使用 Hibernate 附带的 org hibernate dialect MySQL57Dialect 吗 我正在使用休眠5 2 16 MySQL8Dialect org hib
  • 在 IIS URL Rewrite 2.0 中,为什么 HTTP_HOST 包含端口号?

    我正在尝试使用IIS URL 重写 2 0 http www iis net downloads microsoft url rewrite在 Windows 8 1 上使用 IIS 8 5 根据从重写规则访问 URL 部分 http ww
  • 为什么在使用 wprintf 时将 ©(版权符号)替换为 (C)?

    当我尝试打印版权符号时 with printf or write 它工作得很好 include
  • 无法让简单的引导模式工作

    我正在尝试让一个简单的引导程序模态示例正常工作 我遵循这个文件 http igotstamp appspot com pages javascript上面写着 您可以轻松激活页面上的模态 而无需编写一行 JavaScript 只需为元素提供
  • Visual Studio 展开/折叠键盘快捷键[重复]

    这个问题在这里已经有答案了 In Visual Studio if I have a code file open I can press CTRL M or CTRL M O to collapse all code blocks reg
  • 为什么这个类有两个构造函数?

    我在旨在说明构造函数的幻灯片中看到了这一点 我现在很困惑 因为它有两个具有相同工作的构造函数 接受在第二个构造函数中将 gpa 设置为零 为什么编码器需要重复this id id this name name 再次 为什么这个类需要两个构造