Java语言根类:Object类

Java语言根类:Object类

1,概述

在Java.lang.Object下,是Java语言的根类,即所有类的父类,所有对象(包括数组)都实现了这个类的方法。

2,类当中的方法

String toString():

含义:返回对象的字符串表示,默认打印出地址值。可进行重写,重写时打印出对象的属性。

package day4_27;

import java.util.Objects;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(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;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }
    
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';

    }
}

注意:判断一个类是否重写了toString方法,直接打印这个类对象名字即可,若重写了toSring方法,则会按重写方式打印。

package day4_27;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class demo1toString {
    public static void main(String[] args) {
//        调用toString方法和打印对象名效果一致

        Person p = new Person("小莫", 25);
        System.out.println(p);  /*day4_27.Person@75412c2f   Person{name='小莫', age=25}(重写toString)*/

        String s = p.toString();
        System.out.println(s);  /*day4_27.Person@75412c2f   Person{name='小莫', age=25}(重写toString)*/

        Random rd = new Random();
        System.out.println(rd);  /*java.util.Random@7f63425a Random类未重写toString()方法*/

        Scanner sr = new Scanner(System.in);
        System.out.println(sr);   /*java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0]*/

        ArrayList<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(45);
        System.out.println(list); /*[2, 45]*/
    }
}

boolean equals(Object obj):

含义:指示其他某个对象是否与该对象相等,比较地址值,参考意义不大。源码如下:

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

==:比较运算符,返回布尔值。若是基本类型,则比较值是否相同;若是引用数据类型,则比较两对象地址值是否相同。
重写equals方法:比较两对象的属性值是否相同,一样则返回true。重写源码如下:


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

public class demo1equals {
    public static void main(String[] args) {
        Person p1 = new Person("小海",23);
        Person p2 = new Person("小海",23);

        boolean result = p1.equals(p2);
        System.out.println(result);  /*重写后:true*/

    }
}
Objects工具类:equals方法

由一些静态方法组成,故通过类调用方法,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),可对两个对象进行比较,防止空指针异常。源码:

   public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }
package day4_27;

import java.util.Objects;

public class demo1Objects {
    public static void main(String[] args) {

//        public static boolean equals(Object a, Object b) {
//            return (a == b) || (a != null && a.equals(b));
//        }

        String a = null;
        String b = "abc";

//        System.out.println(a.equals(b)); 报错
        System.out.println(Objects.equals(a,b)); /*false*/
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值