equals练习题

练习1编写Order类,有int型的orderId,String型的orderName,相应的getter()和setter()方法,两个参数的构造器,
重写父类的equals()方法:public boolean equals(Object obj),并判断测试类中创建的两个对象是否相等。
package chapter07_oop2.src.com.atguigu07.object.equals.exer1;/*** ClassName: Order* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer1* Description:** @Author 小白* @Create 2024/4/3 9:20* @Version 1.0*/
public class Order {private  int orderId;private String orderName;public Order() {}public Order(int orderId, String orderName) {this.orderId = orderId;this.orderName = orderName;}public int getOrderId() {return orderId;}public void setOrderId(int orderId) {this.orderId = orderId;}public String getOrderName() {return orderName;}public void setOrderName(String orderName) {this.orderName = orderName;}//手写一个equals()@Overridepublic boolean equals(Object obj) {if (this == obj) {   //判断当前this对象和形参obj是否是同一个对象return true;}if (obj instanceof Order) {//判断obj是否是Order 如果是的话  我们就进行强转  好比动物类 在判断动物是否狗//如果是的话 在进行强转 把动物类转换成狗Order order = (Order) obj;return this.orderId == order.orderId && this.orderName.equals(order.orderName);}else {return false;}}
}

package chapter07_oop2.src.com.atguigu07.object.equals.exer1;/*** ClassName: OrderTest* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer1* Description:** @Author 小白* @Create 2024/4/3 9:36* @Version 1.0*/
public class OrderTest {public static void main(String[] args) {Order order1 = new Order(1001, "orderAA");Order order2 = new Order(1001, "orderAA");System.out.println(order1.equals(order2));//trueOrder order3 = new Order(1002, new String("orderBB"));Order order4 = new Order(1002, new String("orderBB"));System.out.println(order3.equals(order4));  //true}}

练习2

请根据以下代码自行定义能满足需要的MyDate类,在MyDate类中覆盖equals方法,
使其判断当两个MyDate类型对象的年月日都相同时,结果为true,否则为false。
public boolean equals(Object o)public class EqualsTest {public static void main(String[] args) {MyDate m1 = new MyDate(14, 3, 1976);MyDate m2 = new MyDate(14, 3, 1976);if (m1 == m2) {System.out.println("m1==m2");} else {System.out.println("m1!=m2"); // m1 != m2}if (m1.equals(m2)) {System.out.println("m1 is equal to m2");// m1 is equal to m2} else {System.out.println("m1 is not equal to m2");}}
}

还没有重equals

package chapter07_oop2.src.com.atguigu07.object.equals.exer2;/*** ClassName: MyDate* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer2* Description:** @Author 小白* @Create 2024/4/3 9:57* @Version 1.0*/
public class MyDate {private  int day;private  int month;private  int year;public MyDate() {}public MyDate(int day, int month, int year) {this.day = day;this.month = month;this.year = year;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}
}

package chapter07_oop2.src.com.atguigu07.object.equals.exer2;/*** ClassName: EqualsTest* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer2* Description:** @Author 小白* @Create 2024/4/3 9:57* @Version 1.0*/
public class EqualsTest {public static void main(String[] args) {MyDate m1 = new MyDate(14, 3, 1976);MyDate m2 = new MyDate(14, 3, 1976);if (m1 == m2) {System.out.println("m1==m2");} else {System.out.println("m1!=m2"); // m1 != m2}if (m1.equals(m2)) {System.out.println("m1 is equal to m2");// m1 is equal to m2} else {System.out.println("m1 is not equal to m2");}}}

 

 

重写后

package chapter07_oop2.src.com.atguigu07.object.equals.exer2;/*** ClassName: MyDate* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer2* Description:** @Author 小白* @Create 2024/4/3 9:57* @Version 1.0*/
public class MyDate {private  int day;private  int month;private  int year;public MyDate() {}public MyDate(int day, int month, int year) {this.day = day;this.month = month;this.year = year;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}@Overridepublic boolean equals(Object obj) {if(this == obj){return  true;}///如果地址不一样   判断obj是否等于MyDate  如果相等  进行强转   并判断各个属性是否相等if(obj instanceof  MyDate){MyDate  myDate = (MyDate) obj;return  this.year == myDate.year && this.month ==myDate.month &&this.day == myDate.day;}return  false;}
}

package chapter07_oop2.src.com.atguigu07.object.equals.exer2;/*** ClassName: EqualsTest* Package: chapter07_oop2.src.com.atguigu07.object.equals.exer2* Description:** @Author 小白* @Create 2024/4/3 9:57* @Version 1.0*/
public class EqualsTest {public static void main(String[] args) {MyDate m1 = new MyDate(14, 3, 1976);MyDate m2 = new MyDate(14, 3, 1976);if (m1 == m2) {System.out.println("m1==m2");} else {System.out.println("m1!=m2"); // m1 != m2}if (m1.equals(m2)) {System.out.println("m1 is equal to m2");// m1 is equal to m2//重写equals后  m1 is equal to m2} else {System.out.println("m1 is not equal to m2");}}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣1047. 删除字符串中的所有相邻重复项

思路:消消乐的感觉,就先想到栈;用一个栈存放遍历过的元素,和遍历中的下一个元素相比,相同则出栈,不同则入栈,最终栈内剩余的就是不相同的元素。 class Solution {public String removeDuplicat…

nodejs 中导入的包名中带有 # 是什么意思?

nodejs 中可以使用 # 号自定义本地 js 模块的路径,就像我们常在 vue 中使用 / 作为路径别名一样。 使用方法 首先,在 pacakge.json 中定义: // package.json {"imports": {"#internal/*.js": "./src/internal/*.…

报错:OSError: [Errno 22] Invalid argument: ‘D:\\pycharm\\png\t.PNG‘ 解决办法

在使用Python导入文件时,系统报了这个错误。查了一下,发现是Python会将‘\’误认为是转义字符。比如\t,\n等也会导致报错。 解决办法: 1,直接在路径前面加“r”。在字符串赋值的时候,前面加’r’可以防止…

Debian 配置国内软件源

为什么需要? Debian安装好之后默认是没有软件源的,只能通过本身的光盘上的软件进行安装,这样明显是不能够满足我们的需要的,考虑到国内的上网速度以及环境,配置一个国内的阿里镜像源是最好的选择。 使用 sudo vim /…

C语言第三十九弹---预处理(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 预处理 1、预定义符号 2、#define定义常量 3、#define定义宏 4、带有副作用的宏参数 5、宏替换的规则 6、宏和函数的对比 总结 在C语言中,预处…

【C++】多态的原理

目录 一、虚函数表 1、虚函数表的定义 2、虚函数表特性 3、虚表的打印 二、多态的原理 三、多态的相关问题 1、指针偏移问题 2、输出的程序是什么? 3、输出的程序是什么? 【前言】 上一篇我们学习了多态的基础知识,这一篇我将带着大…

HarmonyOS 应用开发之通过数据管理服务实现数据共享静默访问

场景介绍 典型跨应用访问数据的用户场景下,数据提供方会存在多次被拉起的情况。 为了降低数据提供方拉起次数,提高访问速度,OpenHarmony提供了一种不拉起数据提供方直接访问数据库的方式,即静默数据访问。 静默数据访问通过数据…

leetcode1379--找出克隆二叉树中的相同节点

1. 题意 对于一个克隆的二叉树,找到与原二叉树相同的节点。 找出克隆二叉树中的相同节点 2. 题解 直接dfs搜索即可 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int…

Incus:新一代容器与虚拟机编排管理引擎

Incus是什么? Incus是一个用于编排管理应用型容器、系统型容器及虚拟机实例的管理工具。它是对 Canonical LXD 的继承与发展,引入了更多的存储驱动支持。 Incus项目的产品地址:Linux Containers - Incus - Introduction 在 LXC-Incus 项目…

Springboot3 集成knife4j(swagger)

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! 官网地址: Knife4j 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j 本文以Springboot3版本集成kn…

Qt文本搜索

效果&#xff1a; 按下ctrlf跳出搜索框&#xff0c;然后支持搜索next或者previous。支持搜索下一步和上一步。 嵌入框的实现 #ifndef POPFINDBOX_H #define POPFINDBOX_H#include <QWidget>class QLineEdit; class QPushButton; class PopFindBox : public QWidget {Q_O…

深入理解Spring Boot Controller层的作用与搭建过程

在现代的Web应用开发中&#xff0c;Spring Boot作为一款快速、便捷的Java框架&#xff0c;为开发者提供了丰富的功能和便利的工具。其中&#xff0c;Controller层作为Spring Boot应用的核心之一&#xff0c;承担着处理HTTP请求、调用业务逻辑、数据封装和返回等重要任务。本文将…

KnowLog:基于知识增强的日志预训练语言模型|顶会ICSE 2024论文

徐波 东华大学副教授 东华大学计算机学院信息技术系副系主任&#xff0c;复旦大学知识工场实验室副主任&#xff0c;智能运维方向负责人。入选“上海市青年科技英才扬帆计划”。研究成果发表在IJCAI、ICDE、ICSE、ISSRE、ICWS、CIKM、COLING等国际会议上&#xff0c;曾获中国数…

Tauri 进阶使用与实践指南

Tauri 进阶使用与实践指南 调试技术 在 Tauri 应用开发中&#xff0c;调试分为两大部分&#xff1a;Web 端与 Rust 控制台。 Web 端调试 在 Web 端界面&#xff0c;可以直接采用浏览器内置的开发者工具进行调试。在 Windows 上&#xff0c;可以通过快捷键 Ctrl Shift i 打…

【turtle海龟先生】神奇的“圆”,画,太极圈,铜钱古币

turtle画圆三步法 步骤: 1、导入turtle库 2、确定半径&#xff0c;画圆(circle ) 3、结束(done ) turtle 库中提供一个直接画圆的函数 turtle.circle&#xff08;半径&#xff09;#半径单位为像素 例&#xff1a; turtle.circle ( 100 ) 表示绘制一个半径为100像素长度的圆形 …

基于ROS的地图发布和加载(GAZEBO仿真)

文章目录 环境配置启动仿真运动控制地图保存地图加载Q&A环境配置 cd ~/catkin_ws/src git clone https://github.com/wh200720041/warehouse_simulation_toolkit.git cd .. catkin_make source ~/catkin_ws/devel/setup.bash启动仿真 roslaunch warehou

js项目中常用的方法汇总

做了很多项目&#xff0c;发现有很多公用的js方法可以总结出来&#xff0c;不同的项目却可以使用这些通用的方法去解决业务上面的问题; 时间常用方法和冷门方法 请参考timeUtil 获取去当前网址url export function GetCurrentProjectUrl(pathname: string) {const location …

PostgreSQL备份还原数据库

1.切换PostgreSQL bin目录 配置Postgresql环境变量后可以不用切换 pg_dump 、psql都在postgresql bin目录下&#xff0c;所以需要切换到bin目录执行命令 2.备份数据库 方式一 语法 pg_dump -h <ip> -U <pg_username> -p <port> -d <databaseName>…

一、c++代码中的安全风险-strlen

一、函数 strlen 在C语言中,strlen是一个函数,计算字符串长度,遇见 \0 停止。如果没有 \0 将在内存中一直寻找,直到寻找到了\0停止。所以strlen还是存在很大的风险的。而且参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了…

2023年第三届 “联想杯”全国高校程序设计在线邀请赛暨第五届上海理工大学程序设计竞赛(同步赛)

A-3的倍数 首先求出sum&#xff0c;如果sum为3的倍数&#xff0c;那么直接可以降序 如果sum%31&#xff0c;那么优先删除一个对3取模余1的数&#xff0c;如果没有则删除两个对3取模余2的数 如果sum%32&#xff0c;那么优先删除一个对3取模余2的数&#xff0c;如果没有则删除…