API:object当中的各种方法刨析(今日份:equals toString)

简介: API:object当中的各种方法刨析(今日份:equals toString)

object当中的equals类:


   对于祖宗类型当中的equals,是进行类与类之间的比较的

   但是对于默认的equals是比较简单的, 默认的情况下, 比较的是两个类当中的默认地址值

   但是我们的需求是需要比较两个对象当中的内容是不是一样的

   因此, 我们需要对其进行重写objects当中的equals类

   从而来实现对于不同对象之间内容的比较

*****向下转换, 重点*****

   public boolean equals(Object obj) {

       在这里, 我们需要注意的一点, 在进行重写的时候, obj是传入父类当中的一个东西, 子类当中有的父类是没有的, 所以我们需要使用强制向下转换, 从而保证这个对象能够使用子类当中特有的成员方法

 

  student stu2=(student)obj;
        return this.age==stu2.age && this.name.equals(stu2.name);
   public static void main(String[] args) {
        student stu1 =new student("swn",19);
        student stu2=new student("swn",19);
 
        System.out.println(stu1.equals(stu2));
//默认的equals是比较地址值
//更改之后比较内容, 答案是true

在这里, 如果使用了集合类型, 也就是说不再是student类的对象了, 那么就是无法比较的

     所以需要保证的是每一个比较的对象都是相同类的


       


if(obj instanceof student) {
           student stu2 = (student) obj;
            return this.age == stu2.age && this.name.equals(stu2.name);
        }
        else{
            return false;
        }
    }
 

  /*tips:instanceof是java当中的一个保留关键字, 相当于是双符号标识符


       作用:它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。


     


 

object类当中的的toString类型

/*api:

   简单的说就是在java当中已经写过的方法,类,能够进行直接的调用


   object类:能够直接或者间接的作为所有类的父类,是任何类的祖宗级别的类型


   toString返回该对象的字符串表示


   --------------------------------------

   注意细节

   在使用相应的打印语句直接打印相应的对象的时候, 在println当中, 在源码层面, 会自动的调用toString方法进行实现的

   所以说在打印的时候, 无论是直接打印对象名, 还是使用toString方法进行打印, 结果都会是一样的



   在java当中, 通常会对于toString方法进行一次重写, 因为原本通过对象名称进行直接打印出来的"准地址值"

   是没有任何的作用的

   作用:

       在对其重写之后就可以在其中通过打印对象名而直接对于相应的类当中的

       成员变量   进行字符串的连接而直接打印出来

   优点:

       可以通过直接打印对象名称从而了解成员变量的详细值

    */

 

@Override
    public String toString() {
        return "A{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
   public static void main(String[] args) {
    A a=new A("王森",18);

//可以看出来, 在对toString方法进行重写了之后, 通过调用对象名能够直接显示出其中的详细情况


 


       1.在这里直接对于对象名称进行打印, 最后出来的结果是一个准"地址值"

       2.无论是调用toString方法还是直接调用对象名称, 结果都是一样的, 也就是在打印对象名的时候, 系统会

       3.默认的对其进行使用相应的toString方法


相关文章
|
27天前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
44 1
|
14天前
|
JavaScript 前端开发
`Object.create()` 方法的参数
【10月更文挑战第29天】`Object.create()` 方法的参数提供了多种创建对象和控制对象属性及继承关系的方式,开发人员可以根据具体的需求灵活运用,以实现更高效、更符合设计要求的对象创建和继承机制。
|
13天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
53 4
|
14天前
|
设计模式
在实际开发中,什么时候应该使用 `new` 关键字,什么时候应该使用 `Object.create()` 方法?
【10月更文挑战第29天】`new` 关键字适用于创建具有特定类型和初始化逻辑的对象实例,以及实现基于原型链的继承;而 `Object.create()` 方法则适用于基于现有对象创建相似对象、避免构造函数的副作用、创建具有特定原型链的对象等场景。在实际开发中,需要根据具体的需求和设计模式来选择合适的方法来创建对象,以实现更高效、更灵活的代码结构。
|
27天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
1月前
|
JavaScript 前端开发 Java
多种语言请求API接口方法
每种语言和库的选择取决于具体需求、项目环境以及个人偏好。了解这些基本方法,开发者就可以根据项目需求选择合适的语言和库来高效地与API交互。
37 1
|
1月前
|
Java 索引
Object有哪些常用方法
掌握这些方法不仅能够帮助你编写出更加健壮和高效的Java代码,还能加深对面向对象编程概念的理解。在实际开发中,合理利用 `Object`类提供的方法能够有效提升代码的可读性、可维护性和性能。
36 0
|
1月前
|
JavaScript 前端开发 大数据
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
16 0
|
1月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
|
3月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法