最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java深入講解Object類常用方法的使用

 更新時(shí)間:2022年04月28日 09:57:42   作者:orangemilk_  
前面java繼承中說(shuō)到的Object類是java中一個(gè)特殊的類,所有的類都是直接或者間接的繼承自O(shè)bject類,即如果某個(gè)類沒(méi)有使用extends關(guān)鍵字則默認(rèn)是java.lang.Object類的子類,所以所有的類都可以使用Object類中定義的方法,下面介紹Object類的常用方法

java繼承

1.Object類的常用方法

方法功能
public Boolean equals(Object obj)判斷兩個(gè)對(duì)象變量所指向的是否為同一個(gè)對(duì)象
public String toString()將調(diào)用該方法的對(duì)象轉(zhuǎn)換為字符串返回
public final Class getClass返回運(yùn)行該方法的對(duì)象所屬的類

--------------??分割線??--------------

2.equals()方法

  • 與比較運(yùn)算符"=="相同,equals()運(yùn)算符可以比較兩個(gè)對(duì)象是否相等,equals()方法定義在Object類中,由于Object類是所有類的父類,所以在任何類都可以使用。
  • 在字符串類中也包含了一個(gè)equals()方法,對(duì)于字符串變量來(lái)說(shuō),使用"=="運(yùn)算符和使用equals()方法是不同的,前者是用來(lái)比較兩個(gè)變量本身的值,即對(duì)象在內(nèi)存中的首地址,而equal()方法則是比較兩個(gè)字符串包含的內(nèi)容是否相等。

關(guān)于字符串的操作,Java在程序運(yùn)行時(shí)會(huì)維護(hù)一個(gè)字符串池,對(duì)于一些可共享的字符串對(duì)象,會(huì)先在字符串池中判斷是否有相同的String內(nèi)容,如果有就直接返回,不用創(chuàng)建新的String對(duì)象,節(jié)省了內(nèi)存空間,當(dāng)在程序中直接使用“"”括起來(lái)的字符串時(shí),該字符串就放在字符串池里。

實(shí)例1:使用類和字符串兩種對(duì)象比較運(yùn)算符"=="和equals()方法的不同(代碼在文末)

對(duì)于非字符串類型的變量來(lái)說(shuō),兩種方法都是比較所指的對(duì)象在堆內(nèi)存中的首地址。即兩個(gè)類類型的變量是否指向同一個(gè)對(duì)象。

3.toString方法

該方法的功能是將調(diào)用該方法的對(duì)象的內(nèi)容轉(zhuǎn)換成字符串,并返回。由于返回值是沒(méi)有意義的字符串,所以可以根據(jù)需要重新定義該方法覆蓋父類中的同名方法。

4.getClass方法

該方法的功能是返回運(yùn)行時(shí)的對(duì)象所屬的類。

Class 對(duì)象由JVM自動(dòng)產(chǎn)生,每一個(gè)類在被加載的時(shí)候都會(huì)自動(dòng)為其生成一個(gè)Class類對(duì)象,Class類沒(méi)有構(gòu)造方法??梢酝ㄟ^(guò)Object類的getClass()方法來(lái)取得對(duì)象對(duì)應(yīng)的Class對(duì)象,再通過(guò)Class對(duì)象的一些方法獲取類的基本信息。

Class類中的getName()方法:

通過(guò)getClass()方法返回class類型,根據(jù)繼承的“即是”原則,所有類的對(duì)象即是Object類的對(duì)象,當(dāng)前對(duì)象this調(diào)用Object的getClass()方法,得到當(dāng)前對(duì)象所在的Class類,再調(diào)用Class中的getName()方法得到this的類名字符串。同樣使用getSuperclass()方法獲取父類。

實(shí)例2:getClass()方法的使用:(代碼在文末)

5.對(duì)象運(yùn)算符instanceof

對(duì)象運(yùn)算符instanceof用來(lái)測(cè)試一個(gè)指定對(duì)象是否是指定類或它的子類的實(shí)例。

作用:用于強(qiáng)制類型轉(zhuǎn)換之前檢查對(duì)象的真實(shí)類型以避免類型轉(zhuǎn)換異常,提高了代碼的健壯性。

該方法的返回值是boolean類型。

實(shí)例Java代碼

實(shí)例1:

//實(shí)例1:使用類和字符串兩種對(duì)象比較運(yùn)算符"=="和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
*/

實(shí)例2:

//實(shí)例2:對(duì)象運(yùn)算符instanceof,getName(),getSuperclass()方法:
//filename:Person.java
import java.io.*;
public class Person{
    static int count=0;//定義靜態(tài)變量
    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類對(duì)象");
        if(obj instanceof Person)
            System.out.println(obj.toString()+"是Person類對(duì)象");
    }
     public static void main(String[] args){
        Person per=new Person("張三",18);
        per.display();
        Student stu=new Student("李四",19,"計(jì)算機(jī)");
        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類對(duì)象
本類名=Student;
父類名=Person;
Person.count=2
Student.count=1
李四,19,計(jì)算機(jī)是Student類對(duì)象
李四,19,計(jì)算機(jī)是Person類對(duì)象
super.count=2
this.count=1
*/

到此這篇關(guān)于Java深入講解Object類常用方法的使用的文章就介紹到這了,更多相關(guān)Java Object類方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過(guò)Class類獲取對(duì)象(實(shí)例講解)

    通過(guò)Class類獲取對(duì)象(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇通過(guò)Class類獲取對(duì)象(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • SpringBoot快速通關(guān)自動(dòng)配置應(yīng)用

    SpringBoot快速通關(guān)自動(dòng)配置應(yīng)用

    在進(jìn)行項(xiàng)目編寫(xiě)前,我們還需要知道一個(gè)東西,就是SpringBoot對(duì)我們的SpringMVC還做了哪些配置,包括如何擴(kuò)展,如何定制,只有把這些都搞清楚了,我們?cè)谥笫褂貌艜?huì)更加得心應(yīng)手
    2022-07-07
  • Spring?Boot和Vue前后端分離項(xiàng)目架構(gòu)的全過(guò)程

    Spring?Boot和Vue前后端分離項(xiàng)目架構(gòu)的全過(guò)程

    前后端分離是目前互聯(lián)網(wǎng)開(kāi)發(fā)中比較廣泛使用的開(kāi)發(fā)模式,主要是將前端和后端的項(xiàng)目業(yè)務(wù)進(jìn)行分離,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot和Vue前后端分離項(xiàng)目架構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • java之Timer和TimerTask簡(jiǎn)單demo(分享)

    java之Timer和TimerTask簡(jiǎn)單demo(分享)

    下面小編就為大家?guī)?lái)一篇java之Timer和TimerTask簡(jiǎn)單demo(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 詳解springboot解決第三方依賴jar包的問(wèn)題

    詳解springboot解決第三方依賴jar包的問(wèn)題

    本篇文章主要介紹了詳解springboot解決第三方依賴jar包的問(wèn)題,解決了第三方依賴jar包的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java實(shí)現(xiàn)的日歷功能完整示例

    Java實(shí)現(xiàn)的日歷功能完整示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的日歷功能,結(jié)合完整實(shí)例形式分析了Java日歷功能相關(guān)的日期時(shí)間獲取、計(jì)算、顯示等操作技巧,需要的朋友可以參考下
    2019-02-02
  • Java實(shí)現(xiàn)二維碼生成的代碼方法

    Java實(shí)現(xiàn)二維碼生成的代碼方法

    這篇內(nèi)容分享了JAVA實(shí)現(xiàn)二維碼生成的實(shí)例代碼,對(duì)此有需要的朋友們可以測(cè)試參考下。
    2018-07-07
  • Java 中的注解詳解及示例代碼

    Java 中的注解詳解及示例代碼

    本文主要介紹Java 中的注解,這里提供了詳細(xì)的相關(guān)資料,及示例代碼,幫助大家學(xué)習(xí)理解,有興趣的小伙伴可以參考下
    2016-08-08
  • Java多線程run方法中直接調(diào)用service業(yè)務(wù)類應(yīng)注意的問(wèn)題及解決

    Java多線程run方法中直接調(diào)用service業(yè)務(wù)類應(yīng)注意的問(wèn)題及解決

    這篇文章主要介紹了Java多線程run方法中直接調(diào)用service業(yè)務(wù)類應(yīng)注意的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java  StringBuilder類的詳解及簡(jiǎn)單實(shí)例

    java StringBuilder類的詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java StringBuilder類的詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,實(shí)現(xiàn)了StringBuilder類的追加、插入、替換、刪除等操作,需要的朋友可以參考下
    2017-08-08

最新評(píng)論

梅河口市| 丰县| 宁德市| 乌什县| 板桥市| 滕州市| 广平县| 湖南省| 开鲁县| 随州市| 玉溪市| 城市| 铁岭市| 莱西市| 渭源县| 洪雅县| 巫溪县| 开江县| 临江市| 大安市| 黎平县| 铁岭县| 保山市| 大连市| 巴塘县| 雷波县| 江华| 南江县| 泾源县| 尉氏县| 湖州市| 平罗县| 神农架林区| 江口县| 无锡市| 六安市| 岳普湖县| 昆山市| 祁阳县| 南充市| 靖安县|