Java深入讲解Object类常用方法的使用

目录
  • 1.Object类的常用方法
  • 2.equals()方法
  • 3.toString方法
  • 4.getClass方法
  • 5.对象运算符instanceof
  • 实例Java代码

java继承

1.Object类的常用方法

方法 功能
public Boolean equals(Object obj) 判断两个对象变量所指向的是否为同一个对象
public String toString() 将调用该方法的对象转换为字符串返回
public final Class getClass 返回运行该方法的对象所属的类

--------------分割线--------------

2.equals()方法

  • 与比较运算符"=="相同,equals()运算符可以比较两个对象是否相等,equals()方法定义在Object类中,由于Object类是所有类的父类,所以在任何类都可以使用。
  • 在字符串类中也包含了一个equals()方法,对于字符串变量来说,使用"=="运算符和使用equals()方法是不同的,前者是用来比较两个变量本身的值,即对象在内存中的首地址,而equal()方法则是比较两个字符串包含的内容是否相等。

关于字符串的操作,Java在程序运行时会维护一个字符串池,对于一些可共享的字符串对象,会先在字符串池中判断是否有相同的String内容,如果有就直接返回,不用创建新的String对象,节省了内存空间,当在程序中直接使用“"”括起来的字符串时,该字符串就放在字符串池里。

实例1:使用类和字符串两种对象比较运算符"=="和equals()方法的不同(代码在文末)

对于非字符串类型的变量来说,两种方法都是比较所指的对象在堆内存中的首地址。即两个类类型的变量是否指向同一个对象。

3.toString方法

该方法的功能是将调用该方法的对象的内容转换成字符串,并返回。由于返回值是没有意义的字符串,所以可以根据需要重新定义该方法覆盖父类中的同名方法。

4.getClass方法

该方法的功能是返回运行时的对象所属的类。

Class 对象由JVM自动产生,每一个类在被加载的时候都会自动为其生成一个Class类对象,Class类没有构造方法。可以通过Object类的getClass()方法来取得对象对应的Class对象,再通过Class对象的一些方法获取类的基本信息。

Class类中的getName()方法:

通过getClass()方法返回class类型,根据继承的“即是”原则,所有类的对象即是Object类的对象,当前对象this调用Object的getClass()方法,得到当前对象所在的Class类,再调用Class中的getName()方法得到this的类名字符串。同样使用getSuperclass()方法获取父类。

实例2:getClass()方法的使用:(代码在文末)

5.对象运算符instanceof

对象运算符instanceof用来测试一个指定对象是否是指定类或它的子类的实例。

作用:用于强制类型转换之前检查对象的真实类型以避免类型转换异常,提高了代码的健壮性。

该方法的返回值是boolean类型。

实例Java代码

实例1:

//实例1:使用类和字符串两种对象比较运算符"=="和equals()方法的不同
//filename:A_2.java
class A{
    int a=1;
}
public class A_2{
    public static void main(String[] args){
    	  A obj1=new A();
    	  A obj2=new A();
        String s1,s2,s3="abcd",s4="abcd";
        s1=new String("abcd");
        s2=new String("abcd");
        System.out.println("s1.equals(s2)是"+(s1.equals(s2)));//true
        System.out.println("s1==s2是"+(s1==s2));//false
        System.out.println("s1.equals(s3)是"+(s1.equals(s3)));//true
        System.out.println("s1==s2是"+(s1==s2));//false
        System.out.println("s3.equals(s4)是"+(s3.equals(s4)));//true
        System.out.println("s3==s4是"+(s3==s4));//true
        System.out.println("obj1==obj2是"+(obj1==obj2));//false
        System.out.println("obj1.equals(obj2)是"+(obj1.equals(obj2)));//false
        obj1=obj2;
        System.out.println("obj1=obj2后obj1==obj2是"+(obj1==obj2));//true
        System.out.println("obj1=obj2后obj1.equals(obj2)是"+(obj1.equals(obj2)));//true
    }
}
/**
s1.equals(s2)是true
s1==s2是false
s1.equals(s3)是true
s1==s2是false
s3.equals(s4)是true
s3==s4是true
obj1==obj2是false
obj1.equals(obj2)是false
obj1=obj2后obj1==obj2是true
obj1=obj2后obj1.equals(obj2)是true
*/

实例2:

//实例2:对象运算符instanceof,getName(),getSuperclass()方法:
//filename:Person.java
import java.io.*;
public class Person{
    static int count=0;//定义静态变量
    protected String name;
    protected int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
        this.count++;
    }
    public String toString(){
        return this.name+","+this.age;
    }
    public void display(){
        System.out.println("本类名="+this.getClass().getName()+";");
        System.out.println("父类名="+this.getClass().getSuperclass().getName()+";");
        System.out.println("Person.count="+this.count+" ");
        System.out.println("Student.count="+Student.count+" ");
        Object obj=this;
        if(obj instanceof Student)
            System.out.println(obj.toString()+"是Student类对象");
        if(obj instanceof Person)
            System.out.println(obj.toString()+"是Person类对象");
    }
     public static void main(String[] args){
        Person per=new Person("张三",18);
        per.display();
        Student stu=new Student("李四",19,"计算机");
        stu.display();
    }

}
class Student extends Person{
    static int count=0;//隐藏父类的count
    protected String dept;
    protected Student(String n1,int a1,String d1){
        super(n1,a1);
        dept=d1;
        this.count++;
    }
    public String toString(){
        return super.toString()+","+dept;
    }
    public void display(){
        super.display();
        System.out.println("super.count="+super.count+" ");//引用父类的变量
        System.out.println("this.count="+this.count+" ");
    }

}
/**
本类名=Person;
父类名=java.lang.Object;
Person.count=1
Student.count=0
张三,18是Person类对象
本类名=Student;
父类名=Person;
Person.count=2
Student.count=1
李四,19,计算机是Student类对象
李四,19,计算机是Person类对象
super.count=2
this.count=1
*/

到此这篇关于Java深入讲解Object类常用方法的使用的文章就介绍到这了,更多相关Java Object类方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于Java中Object类的几个方法示例

    前言 Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先.这个祖先就是Object类. Object类被称为上帝类,也被称为祖宗类.在定义Java类时,如果没有指定父类,那么默认都会去继承Object类.配合Java的向上类型转换,借助Object类就可以完成很多工作了. object类的结构 Object类的方法 在Object类中,有几个常用的方法,比如getClass().toString()和equals()这三个方法.它们在Object

  • java Object的hashCode方法的计算逻辑分析

    目录 1. 背景介绍 2. 调用过程梳理 java的Object代码 jvm的hashCode相关代码 3. 关于hashCode值的大小 4. 验证 5. 总结 1. 背景介绍 在为重写hashCode方法的时候,看到hashCode打印出的数据像是一个地址值,很是好奇. 加之最近在研读jvm源码,特此一探究竟,看看在hotspot中hashCode究竟是如何实现的. 2. 调用过程梳理 java的Object代码 public native int hashCode(); 通过官产jdk的O

  • Java的Object类九个方法技巧

    目录 一.getClass() 二.finalize() 三.toString() 四.equals()和hashcode() 五.wait().notify()和notifyAll() 六.clone() 前言: Java的Object 类的完整路径是java.lang.Object ,是所有类的父类编译,当我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类(隐式继承).Object类有九大常用方法,分别是getClass().finali

  • Java中Object类常用的12个方法(小结)

    目录 前言 1. getClass 方法 2. hashCode 方法 3. equals 方法 4. clone 方法 5. toString 方法 6. notify 方法 7. notifyAll 方法 8. wait(long timeout) 方法 9. wait(long timeout, int nanos) 方法 10. wait 方法 11. finalize 方法 前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的"老祖宗&qu

  • Java如何重写object类的equals方法详解

    1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回true Object类是所有类的父类,它的equals方法自然会被所有类继承,有一个子 类String对equals方法进行了覆盖(重写),使其具有了新功能 2.Object类的equals()方法与==没区别 Java.lang.String重写了equals()方法,把equals()方法的判断变为

  • java中Object类4种方法详细介绍

    目录 Object(四大方法): hashCode()方法: equals()方法: getClass()方法: toString()方法: 总结 Object(四大方法): 文章干货满满,耐性看完~~何为Object?首先先来看看官方对Object的介绍:在这里附上Java官方的查阅工具:https://docs.oracle.com/en/java/javase/17/docs/api/index.html 由官方介绍可见,object属于Java.lang包内的一个类,而且提供了很多种方法

  • Java Object类equals方法

    基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.可以使用类型为Object的变量指向任意类型的对象 equals()方法:比较两个对象是否同一       如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equa

  • Java深入讲解Object类常用方法的使用

    目录 1.Object类的常用方法 2.equals()方法 3.toString方法 4.getClass方法 5.对象运算符instanceof 实例Java代码 java继承 1.Object类的常用方法 方法 功能 public Boolean equals(Object obj) 判断两个对象变量所指向的是否为同一个对象 public String toString() 将调用该方法的对象转换为字符串返回 public final Class getClass 返回运行该方法的对象所属

  • Java基础之Object类详解

    object类的介绍 object是所有类的直接父类或者是间接父类,为什么这么说呢? 可以查询java8的API帮助文档: 可见在这样的一个类树中,所有的类的根还是Object类 在IDEA中新建一个类,系统会默认继承Object类 public class Pet extends Object{ } 那么Dog继承了Pet类的属性和行为方法,还会继承Object类的属性和行为方法了吗?这一点是肯定的,Pet类作为Object类的子类,Dog类作为Pet类的子类,所以说Object是Dog类的间

  • Java 语言中Object 类和System 类详解

    Object是java所有类的基类,是整个类继承结构的顶端,也是最抽象的一个类.大家天天都在使用toString().equals().hashCode().waite().notify().getClass()等方法,或许都没有意识到是Object的方法,也没有去看Object还有哪些方法以及思考为什么这些方法要放到Object中. 一.Java Object类简介-所有类的超类 Object 是 Java 类库中的一个特殊类,也是所有类的父类.也就是说,J ava 允许把任何类型的对象赋给

  • Java深入浅出讲解String类常见方法

    目录 1.定义字符串 2.字符串的存储 3.String中常用的方法 3.1字符串的比较 3.2查找字符串 3.3转换字符串 4.StringBuilder和StringBuffer 5.常量池 1.定义字符串 字符串常见的构造方式如下: String s1 = "with"; String s2 = new String("with"); char[] array = {'w','i','t','h'}; String s3 = new String(array)

  • Java深入探究Object类的方法

    目录 1.equals方法 1.API中equals方法的介绍 2.==和equals 的对比 2.hashCode方法 3.toString方法 4.finalize方法 本文主要带大家看看Object类中一些常用方法的API文档的介绍和JDK中的源码. 1.equals方法 1.API中equals方法的介绍 2.==和equals 的对比 == 既可以判断基本类型,又可以判断引用类型,如果判断的是基本类型,判断的是值是否相等,如果判断的是引用类型,则判断的是地址是否相等,即判断是不是同一个

  • 你了解Java中的Object类吗

    任何一个类默认继承Object类,就算没有直接继承,最终也会间接继承. Object类,有两种方式找到: 第一种:在源码当中找到 第二种:查阅java类库的帮助文档 Object类中两个重要的方法: boolean equals (Object obj) //判断两个对象是否相等 String toString () //将对象转换成字符串形式 equals方法: 源代码: public boolean equals(Object obj) { return (this == obj); } 作

  • java中的Object类的toSpring()方法

    Object是类层次结构的根,每个类都可以将Object作为超类.所有类都直接或者间接的继承自该类 构造方法:public Object() 回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法? 因为它们的顶级父类只有无参构造方法 package com.itheima_56; public class Student extends Object{ private String name; private int age; public Student(){ } public

  • 一文带你了解Java中的Object类及类中方法

    目录 1. Object类介绍 2. 重写toString方法打印对象 3. 对象比较equals方法 4. hashCode方法 1. Object类介绍 Object是Java默认提供的一个类.Java里面除了Object类,所有的类都是存在继承关系的.默认会继承Object父 类.即所有类的对象都可以使用Object的引用进行接收. 范例:使用Object接收所有类的对象 class Person{} class Student{} public class Test { public s

  • Java中父类Object的常用方法总结

    简介 Object类: 这个类java.lang.java是所有类默认继承的父类 Object类中常用的三个方法:toString() , equal() , hashCode() 一.toString()方法 对象的自我描述,对象的自我介绍 在对象的自我描述过程中,由于使用get()方法打印实例变量比较麻烦,为了简便,使用toString() . Public String toString(){ Return "学好" + getNo() + "姓名" + ge

随机推荐