第八十八课.Object-1

Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。在Java中,只有基本类型不是对象,例如数值、字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自 Object 类。Object 类定义了一些有用的方法,由于是根类,这些方法在其他类中都存在,一般是进行了重载或覆盖,实现了各自的具体功能。

public class XueNiXiang实际上是下面代码的简写形式: public class XueNiXiang extends Object

object详细内容查询链接https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true

下面只介绍两个常用的方法

equals()方法

Object 类中的 equals() 方法用来检测一个对象是否等价于另外一个对象,语法为:public boolean equals(Object obj)

注意:

1.在Java中,数据等价的基本含义是指两个数据的值相等。在通过 equals() 和“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。

2. equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型。

3.当用 equals() 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。

4.用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错,而用 equals 方法比较的两个数据只要都是引用类型即可。

例:比较两个对象,比较的是两个对象的地址,肯定不一样,所以会false

 

 

 

 

toString()方法

toString()方法是 Object 类中定义的另一个重要方法,是对象的字符串表现形式,语法为:public String toString()

注意:

返回值是 String 类型,用于描述当前对象的有关信息。Object 类中实现的 toString() 方法是返回当前对象的类型和内存地址信息,但在一些子类(如 String、Date 等)中进行了 重写,也可以根据需要在用户自定义类型中重写 toString() 方法,以返回更适用的信息。除显式调用对象的 toString() 方法外,在进行 String 与其它类型数据的连接操作时,会自动调用 toString() 方法。

例:

 

代码:

package com.xuenixiang.web;



public class Super1 {

       protected String name;

       private String address;

       public Super1() {

              System.out.println("父类无参构造被调用");

       }

       public Super1(String name,String address) {

              System.out.println("父类有参构造被调用");

       }

       public String getName() {

              return name;

       }

       public void setName(String name) {

              this.name = name;

       }

       public String getAddress() {

              return address;

       }

       public void setAddress(String address) {

              this.address = address;

       }

}

 

package com.xuenixiang.web;



public class Super2 extends Super1 {

       private int age;

       public Super2() {

              System.out.println("子类无参构造被调用");

       }

       public Super2(String name, String address) {

              this();

              //super(name,address);

              //System.out.println("子类有参构造被调用");

       }

       public int getAge() {

              return age;

       }



       public void setAge(int age) {

              this.age = age;

       }

       public void setName(String Mingzi) {

              this.name = Mingzi; // 子类对父类的setName进行重写

              System.out.println("父类的setName方法被重写");

       }

       public void xuenixiang() {

              System.out.println("网站名:" + this.getName());

              System.out.println("网站地址:" + this.getAddress());

              System.out.println("网站年龄:" + this.getAge());

       }

       public static void main(String[] args) {

              String xnx2="xuenixiang.com";

              Super2 xnx = new Super2("学逆向论坛","www.xuenixiang.com");

              Super2 xnx1 = new Super2("学逆向论坛","www.xuenixiang.com");

              xnx.setName("学逆向论坛");

              xnx.setAddress("www.xuenixiang.com");

              xnx.setAge(1);

              xnx.xuenixiang();

              System.out.println(xnx.equals(xnx1));

              System.out.println(xnx.toString());

              System.out.println(xnx2.toString());

       }

}

 

 

猜你喜欢

转载自blog.csdn.net/qq_41917908/article/details/88621966