首页 > 其他分享 >equals方法

equals方法

时间:2023-06-08 20:34:45浏览次数:31  
标签:String Student3 age equals 方法 public name

//Student3类
public class Student3 {
private String name;
private int age;

public Student3() {
super();
}

public Student3(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
/* 需求:equals方法的重写
让student2在用equals比较的时候,去比较对象的内容(比较对象的成员变量的值),对象内容一样输出ture
*/

//同一个类的对象的字节码文件对象是同一个
  //下面这是源码
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Student3)) return false;
Student3 student3 = (Student3) o;
return getAge() == student3.getAge() && getName().equals(student3.getName());
}
/* 需求:equals方法的重写
让student2在用equals比较的时候,去比较对象的内容(比较对象的成员变量的值),对象内容一样输出ture
*/
    public boolean equals1(Object o) {
//一般情况下equals要重写,但不需要手动重写
//比较本对象和obj对象的成员变量是否一致
//1.要把oject类向下转型(多态)
Student3 s = (Student3)o;
//因为age是int基本数据类型,所以直接用==比较是一样的
if((this.name.equals(s.name)) && (this.age==s.age)){
return true;
}else{
return false;
}
}

}

//测试类
/*
* public boolean equals(Object obj)指示一些其他对象是否等于此。
* true如果此对象与obj参数相同; false否则。
==的使用
1.==两边是基本数据类型,比较的是两个数的值
int i = 10;
int j = 10;
i == j; true
2.==两边如果是引用数据类型,比较的是两个对象的内存地址

* equals方法
* 1.如果不重写,他内部都是用==比较两个对象,一般equals是要重写的
* String类的equals的方法比较的是字符串的内容
* 因为String继承自Object类,并且里面重写了equals方法
*
* 需求:
* 让student2在用equals比较的时候,去比较对象的内容(比较对象的成员变量的值)
*/
public class Student3_Test {
public static void main(String[] args) {
Student3 s1 = new Student3("陈言",18);
Student3 s2 = new Student3("陈言",18);
Student3 s3 = s1;
Student3 s4 = new Student3("陈言",19);
//比较s1和s2是否相等,==比较的是两个对象的内存地址
System.out.println(s1==s2);//FALSE
System.out.println(s1==s3);//TRUE

// equals方法没有重写,那么比较的是内存地址(==)
System.out.println(s1.equals(s2));//FALSE 重写equals后TRUE
System.out.println(s1.equals(s3));//TRUE
System.out.println(s1.equals(s4)); //重写equals后 FALSE内容不一样

System.out.println("-------------------");
String str1 = "helloworld";
String str2 = "helloworld";

System.out.println(str1==str2); //TRUE 比较的是字符串的内容
System.out.println(str1.equals(str2));//TRUE 比较的是字符串的内容

String str3 = new String("helloworld");//new也是创建字符串的一种形式,不同的对象
String str4 = new String("helloworld");
System.out.println(str3.equals(str4));//String类的equals比较的是内容TURE
System.out.println(str3==str4);//对于引用类型==比较的是内存地址值FALSE
}
}

标签:String,Student3,age,equals,方法,public,name
From: https://www.cnblogs.com/Studentcy/p/17467597.html

相关文章

  • 使用axios的post方法传输对象数据和后台数据进行解析判断
    使用vue的v-model绑定生成对象数据的通过axios传输数据操作的时候,对象中属性的命名必须和实体中的一致。实体:privateIntegerid;privateStringname;privateStringnickname;privateStringpassword;privateIntegerage;privateStringgend......
  • 用Mathematica和SciPy阐明Jacobi椭圆函数的定义方法
    这,这个,那,那个Jacobi椭圆函数SN和CN类似于三角函数正弦和余弦。它们出现在非线性振动和保形映射等应用中。不幸的是,定义这些函数有多种约定。这篇文章的目的是澄清围绕这些不同公约的混淆。上面的图像是函数sn[1]的一个图。模量、参数和模数角Jacobi函数有两个输入。我们通常认为Jac......
  • jQuery 事件绑定方法 bind
    jQuery事件绑定方法(bindhovertogglelive....)、删除事件方法(unbind,die)及事件对象事件绑定方法:1.<type>(function)$("button").click(function(){...});2.bind(map)$("input[type='text']").bind({focus:function(){.......
  • 去重复方法小集
    //jsfunctionremoveDumpicatedItem(arr){ varret=[]; for(vari=0;i<arr.length;i++){if(ret.indexOf(arr[i]==-1)){ ret.push(arr[i])} } returnret;}//java(无序)publicstaticListremoveDuplicate(Listlist){ HashSethashSet=newHashSet(lis......
  • RedisTemplate常用方法总结
    很多公司都将redisTemplate进行了封装,封装成业务所需要的RedisUtil工具类方便进行调用,本篇文章总结了redisTemplate常用的一些方法。Redis常用的数据类型:•String•Hash•List•Set•zSet•SortedsetString类型判断是否有key所对应的值,有则返回true,没有则返回false......
  • html照片从模糊到清晰的渐变加载显示方法
    1.背景介绍在网络相册应用中用户查看照片是最朴素的需求,当网络比较慢的时候查看照片等待的时间是比较长的,用户体验会很差。 2.现状现在加载照片的方法主要有一下两种:(1)最原始的方式在html页面直接用img标签加载显示照片。该方法在网络速度比较慢或者要显示的照片比较大的时候会......
  • js数组sort方法排序
    数组的sort方法可以对数组进行排序,默认是按照字符编码的顺序进行排序,可以自定义规则。sort方法会修改原数组。自定义规则简述:比较函数两个参数a和b,(a是b的后一个元素),返回a-b升序,返回b-a降序。letarr=[3,5,2,9,1];arr.sort();//默认升序arr.sort((a,b)=>{//......
  • 视觉惯性初始化的惯性优化方法
    摘要:我们首次将视觉惯性初始化表述为最优估计问题,即最大后验(MAP)估计的意义上。这使我们能够正确考虑IMU测量不确定性,而以前的方法忽略了这一点,这些方法要么解决代数方程组,要么使用最小二乘法最小化特定的代价函数。我们在EuRoC数据集上进行了详尽的初始化测试,结果显示我们的方法在......
  • Redhat8安装MySQL8操作方法(超简单Linux无依赖安装mysql数据库)
    一、安装说明1.1、相关说明:Redhat8在线安装Mysql8数据库,使操作系统找到并自动安装自适应的版本及相关依赖组件;1.2、系统版本 二、安装方法2.1、下载应用软件[root@GuoDC~]#wgethttps://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm 2.2、安装应用......
  • Ubuntu下制作deb包的方法详解
    http://t.csdn.cn/ApH7uhttps://blog.csdn.net/gatieme/article/details/52829907#:~:text=Ubuntu%E4%B8%8B%E5%88%B6%E4%BD%9Cdeb%E5%8C%85%E7%9A%84%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3%201%201%20%E8%AE%A4%E8%AF%86deb%E5%8C%85%201.1%20%E8%AE%A4%E8%AF%86deb%E5%8C%8......