木卯先生的笔记---Object类

2019-10-25 06:51:04来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

木卯先生的笔记---Object类

1.简介

   Object类是在 java.lang 包下的一个类,它是所有类的父类(也就是所有类都是Object类的子类,如果定义一个类的时候,没有指定继承的类,默认的就是继承Object类),所以Object类中的所有方法,其他类都可以使用(继承就是这个样子)。在对象实例化的时候,最终找的父类就是Object类。

 

2.方法

2.1 toString()方法

   public String toString() :返回该对象的字符串表示。该字符串的内容为"对象类型@内存地址值"

   如果像下面例子中直接输出对象名(car),其实是调用了toString()方法。

Car bmw = new Car();
System.out.println(bmw);

   如果希望改变toString()方法的功能,可以在测试类中覆盖重写(@Override)该方法。

 

2.2 equals()方法

   public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。

   这个“相等”的意思是指,两个对象是不是同一个对象,即是不是同一个内存地址,毕竟这是引用类型,所以对象名称其实是地址值。

   当然了,如果希望有其他的功能,也可以覆盖重写该方法。如下所示:

 1 public class Person {
 2     private String name;
 3     private int age;
 4 
 5     public Person() {
 6     }
 7 
 8     public Person(String name, int age) {
 9         this.name = name;
10         this.age = age;
11     }
12 
13    @Override
14     public boolean equals(Object obj) {
15         Person p = (Person)obj;
16         return this.name.equals(p.name) && this.age == p.age;
17 
18     }
19 }

 

3.Objects类

   这是个工具类,在JDK 1.7 之后才有的,它在 java.util 包下面。

   在比较两个对象的时候,如果是一个null对象来调用Object的equals()方法,那么程序就容易抛出空指针异常。

 

1     String s1 = null;
2         String s2 = "aaa";
3 
4         /*boolean b = s1.equals(s2);  当s1为null,不可以调用equals方法
5         System.out.println(b);*/

   而Objects类中euqals()方法解决了这个问题,代码如下:

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

 

哈哈,java小白的学习笔记,如有错误,欢迎不吝赐教~

 


原文链接:https://www.cnblogs.com/willow-zhu/p/11717725.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Mac部署hadoop3(伪分布式)

下一篇:面试官,Java8 JVM内存结构变了,永久代到元空间