java object类

发布时间:2020-11-16编辑:dyy阅读(171)

Java Object 类

java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法

Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类,Object 类可以显示继承,也可以隐式继承,以下两种方式时一样的:

显示继承:public class Runoob extends Object                      隐式继承:public class Runoob 

Object():构造一个新对象

JavaObject clone() 

Object clone() 方法用于创建并返回一个对象的拷贝。

clone 方法是浅拷贝,对象内属性引用的对象只会拷贝引用地址,而不会将引用的对象重新分配内存,相对应的深拷贝则会连引用的对象也重新创建

无参数,返回值返回对象的拷贝,由于 Object 本身没有实现 Cloneable 接口,所以不重写 clone 方法并且进行调用的话会发生 CloneNotSupportedException 异常

例:创建了 obj1 对象,然后拷贝 obj1 给 obj2,通过 obj2 输出变量的值:

class RunoobTest implements Cloneable {    String name;    int likes;  // 声明变量    public static void main(String[] args)        RunoobTest obj1 = new RunoobTest(); // 创建对象        obj1.name = "Runoob";   obj1.likes = 111;  // 初始化变量        System.out.println(obj1.name); // Runoob    打印输出        System.out.println(obj1.likes); // 111        try {            RunoobTest obj2 = (RunoobTest) obj1.clone();  // 创建 obj1 的拷贝            System.out.println(obj2.name); // Runoob   // 拷贝后obj2 输出变量            System.out.println(obj2.likes); // 111        } catch (Exception e) {            System.out.println(e);      

 }}}

Java Object equals() 方法

Object equals() 方法用于比较两个对象是否相等。

equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等

语法:object.equals(Object obj)     obj - 要比较的对象

返回值:如果两个对象相等返回 true,否则返回 false

equals() 方法的使用:

class RunoobTest {    public static void main(String[] args) {        // Object 类使用 equals() 方法        // 创建两个对象        Object obj1 = new Object();        Object obj2 = new Object();        // 判断 obj1 与 obj2 是否相等        // 不同对象,内存地址不同,不相等,返回 false        System.out.println(obj1.equals(obj2)); // false        // obj1 赋值给 obj3        // String 重写了 equals() 方法        // 对象引用相等,内存地址相同,相等,返回 true        Object obj3 = obj1;      

         System.out.println(obj1.equals(obj3)); // true    }}

String 类重写了 equals() 方法,用于比较两个字符串是否相等:

class RunoobTest {    public static void main(String[] args) {        // String 类使用 equals() 方法        // 创建两个对象        String obj1 = new String();        String obj2 = new String();        // 判断 obj1 与 obj2 是否相等        // 初始化的两个对象都为 null,所以是相等,返回 true        System.out.println(obj1.equals(obj2)); // true

       // 给对象赋值        obj1 = "Runoob";        obj2 = "Google";        // 判断 obj1 与 obj2 是否相等        // 两个值不同,内存地址也不同,所以不相等,返回 false        System.out.println(obj1.equals(obj2)); // false    }}

Java object getClass() 方法

Object getClass() 方法用于获取对象的运行时对象的类

返回值为对象的类

使用 getClass() 方法获取String 和 ArrayList    Object

import java.util.ArrayList; class RunoobTest {    public static void main(String[] args) {    // getClass() with Object    Object obj1 = new Object();    

   System.out.println("obj1 的类为: " + obj1.getClass());   //class java.lang.Object    // getClass() with String    String obj2 = new String();  

    System.out.println("obj2 的类为: " + obj2.getClass()); // class java.lang.String

   // getClass() with ArrayList    ArrayList<Integer> obj3 = new ArrayList<>();  

     System.out.println("obj3 的类为: " + obj3.getClass());   //class java.util.ArrayList

 }}

自定义类调用 getClass() 方法:

class RunoobTest {    public static void main(String[] args) {        // 创建 RunoobTest 类的对象        RunoobTest obj = new RunoobTest();                // RunoobTest 继承 Object 类,Object 是所有类的超类        // 调用 getClass() 方法        System.out.println(obj.getClass());   //class RunoobTest

 }}

标签

上一篇:未命名

下一篇:未命名

评论