IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java 的equals方法和toString()方法的使用 -> 正文阅读

[Java知识库]java 的equals方法和toString()方法的使用

一、equals:比较两个实例值是否相等

“==” 与 equals 的区别

==xxx.equals(xxx)
可以在基本数据类型变量和引用数据类型变量中使用只能在引用型数据类型变量中使用
基本数据类型比较数值是否相同在Object类中的equals方法与==相同
引用数据类型比较地址值是否相同

Object 中定义的equals()

public boolean equals(Object obj){
			return(this == obj);
	}

不难看出,根父类Object中的equals与的判断相同,所以当我们需要特定功能的比较的equals函数时,我们就应该在自定义类中重写该方法。
且类似于String、Date、File、包装类等都重写了equals方法

String 中重写的equals()
    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String aString = (String)anObject;
            if (!COMPACT_STRINGS || this.coder == aString.coder) {
                return StringLatin1.equals(value, aString.value);
            }
        }
        return false;
    }
Date 中重写的equals()
    public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }
重写的equals()的步骤以String为例
    public boolean equals(Object anObject) {
   // 1、首先使用==判断,如果可以判断,直接返回true
        if (this == anObject) {
            return true;
        }
   //2、第一步无法判断,进一步使用instanceOf判断anObject是否为String的一个实例
        if (anObject instanceof String) {
        	//anObject是String的一个实例 则发生向下转型
            String aString = (String)anObject;
            //返回各个属性的对比结果
            if (!COMPACT_STRINGS || this.coder == aString.coder) {
                return StringLatin1.equals(value, aString.value);
            }
        }
        //anObject不是String的实例则直接返回false
        return false;
    }
eclipse中重写的equals()的快捷键 菜单栏Source->Generate hashCode() and equals()

二、toString

当输出一个类对象时,实际上是调用当前对象的toString方法

Object 中定义的equals()

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

类似于equals,当我们需要特定功能的比较的toString函数时,我们就应该在自定义类中重写该方法。
且类似于String、Date、File、包装类等都重写了toString方法

String中重写的toString方法

    public String toString() {
        return this;
    }

在自定义类中重写的toString方法

public class Car {
     
   //成员变量
    private String carNo;
    private String carName;
    private String color;
    private double price;
     
   //有参构造函数
    Car(String carNo,String carName,String color,double price){
        this.carNo=carNo;
        this.carName=carName;
        this.color=color;
        this.price=price;
    }
     
    //get set方法
    public String getCarNo(){
        return carNo;
    }
     
    public void setCarNo(String carNo){
        this.carNo=carNo;
    }
     
    public String getCarName() {
        return carName;
    }
 
    public void setCarName(String carName) {
        this.carName = carName;
    }
 
    public String getColor() {
        return color;
    }
 
    public void setColor(String color) {
        this.color = color;
    }
 
    public double getPrice() {
        return price;
    }
 
    public void setPrice(double price) {
        this.price = price;
    }
//重写toString();
    public String toString(){
        return "这个汽车名叫 "+carName+",型号是 "+carNo+",汽车颜色 "+color+",价格 "+price;
    }
     
    public static void main(String[] args){
       //创建一个Car的对象
    Car myCar=new Car("苏A 4995","长安汽车","灰蓝色",70000.00);   //类名开头字母大写
        System.out.println(myCar.toString());
    }
}
eclipse中重写的toString()的快捷键 菜单栏Source->Generate toString()…

小技巧:要看根父类提供了哪些可以重写的基础函数时可以直接new一个跟父类的实例 ,再调用方法 ctrl+点击对应的方法名。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:07:41  更:2021-08-08 11:11:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 4:02:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码