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

Java基礎(chǔ)之this關(guān)鍵字的使用

 更新時間:2021年06月30日 14:52:54   作者:請教我學(xué)Python  
今天給大家?guī)淼氖顷P(guān)于Java基礎(chǔ)的相關(guān)知識,文章圍繞著this關(guān)鍵字的使用展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

一、this關(guān)鍵字的作用

this關(guān)鍵字除了可以強(qiáng)調(diào)本類中的方法還具有以下作用。

1.表示類中的屬性

2.可以使用關(guān)鍵字調(diào)用本類中的構(gòu)造方法

3.this表示當(dāng)前對象

1.1表示類中的屬性

package thiss;

class Person{
    private int age;
    private String name;
    public Person(int age,String name){
        this.age=age;//為類中的age屬性賦值
        this.name=name;//為類中的name屬性賦值
    }
    public String getinfo(){
    return "姓名為:"+name+","+"年齡為:"+age;
    }
}

public class ThisDemo {
    public static void main(String[] args) {
        Person person = new Person(15,"張三");
        person.getinfo();
        System.out.println(person.getinfo());
    }

}

1.2使用this調(diào)用構(gòu)造方法

如果在一個類中有多個構(gòu)造方法,也可以使用this調(diào)用構(gòu)造方法。使用this()調(diào)用構(gòu)造方法,此語句必須放在構(gòu)造方法的第一行。

package thiss;

class Person1{
    private int age;
    private String name;
    public Person1(){//無參構(gòu)造方法

    }
    public Person1(String name){//一個參數(shù)的構(gòu)造方法
        this();//調(diào)用無參構(gòu)造方法
        this.name=name;
    }
    public Person1(int age,String name){//含有兩個參數(shù)的構(gòu)造方法
        this(name);//調(diào)用含有一個參數(shù)的構(gòu)造方法
        this.age=age;
    }
    public String getinfo(){
        return "姓名為:"+name+","+"年齡為:"+age;
    }
}

public class ThisDemo01 {
    public static void main(String[] args) {
        Person1  person = new Person1 (15,"張三");//調(diào)用構(gòu)造方法實例化對象并初始化成員屬性。
        person.getinfo();
        System.out.println(person.getinfo());//調(diào)用方法輸出年齡和姓名。
    }

}

在使用this()調(diào)用構(gòu)造方法的時候,至少有一個構(gòu)造方法是不用this()調(diào)用的。
構(gòu)造方法出現(xiàn)遞歸調(diào)用:recursive constructor invocation//避免出現(xiàn)遞歸調(diào)用,如下面代碼所示

package thiss;

class Person1{
    private int age;
    private String name;
    public Person1(){//無參構(gòu)造方法
      **this("李四",10);//這樣會出現(xiàn)遞歸調(diào)用,編譯都不能通過**
    }
    public Person1(String name){//一個參數(shù)的構(gòu)造方法
        this();//調(diào)用無參構(gòu)造方法
        this.name=name;
    }
    public Person1(int age,String name){//含有兩個參數(shù)的構(gòu)造方法
        this(name);//調(diào)用含有一個參數(shù)的構(gòu)造方法
        this.age=age;
    }
    public String getinfo(){
        return "姓名為:"+name+","+"年齡為:"+age;
    }
}

public class ThisDemo01 {
    public static void main(String[] args) {
        Person1  person = new Person1 (15,"張三");//調(diào)用構(gòu)造方法實例化對象并初始化成員屬性。
        person.getinfo();
        System.out.println(person.getinfo());//調(diào)用方法輸出年齡和姓名。
    }

}

1.3可以使用this表示當(dāng)前對象

package thiss;

class Person2 {
    public String getinfo() {
        System.out.println("Person類的對象---》" + this);
        return null;
    }
}

public class ThisDemo02 {
        public static void main(String[] args) {
            Person2 person = new Person2();//調(diào)用構(gòu)造方法實例化對象
            System.out.println("輸出main中的對象---》" + person);//輸出person中的對象
            person.getinfo();//調(diào)用Person2中的對象是否和main中的對象相同
        }
}

E:\Java\jdk\bin\java.exe “-javaagent:E:\Java\IDEA\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar=58205:E:\Java\IDEA\IntelliJ IDEA 2019.1.3\bin” -Dfile.encoding=UTF-8 -classpath E:\Java\jdk\jre\lib\charsets.jar;E:\Java\jdk\jre\lib\deploy.jar;E:\Java\jdk\jre\lib\ext\access-bridge-64.jar;E:\Java\jdk\jre\lib\ext\cldrdata.jar;E:\Java\jdk\jre\lib\ext\dnsns.jar;E:\Java\jdk\jre\lib\ext\jaccess.jar;E:\Java\jdk\jre\lib\ext\jfxrt.jar;E:\Java\jdk\jre\lib\ext\localedata.jar;E:\Java\jdk\jre\lib\ext\nashorn.jar;E:\Java\jdk\jre\lib\ext\sunec.jar;E:\Java\jdk\jre\lib\ext\sunjce_provider.jar;E:\Java\jdk\jre\lib\ext\sunmscapi.jar;E:\Java\jdk\jre\lib\ext\sunpkcs11.jar;E:\Java\jdk\jre\lib\ext\zipfs.jar;E:\Java\jdk\jre\lib\javaws.jar;E:\Java\jdk\jre\lib\jce.jar;E:\Java\jdk\jre\lib\jfr.jar;E:\Java\jdk\jre\lib\jfxswt.jar;E:\Java\jdk\jre\lib\jsse.jar;E:\Java\jdk\jre\lib\management-agent.jar;E:\Java\jdk\jre\lib\plugin.jar;E:\Java\jdk\jre\lib\resources.jar;E:\Java\jdk\jre\lib\rt.jar;E:\Java\project\out\production\Demo01 thiss.ThisDemo02
輸出main中的對象—》thiss.Person2@4554617c
Person類的對象—》thiss.Person2@4554617c
Process finished with exit code 0

1.4比較兩個對象是否相同

class Person{		// 定義Person類
	private String name ;	// 姓名
	private int age ;		// 年齡
	public Person(String name,int age){
		this.setName(name) ;
		this.setAge(age) ;
	}
	public boolean compare(Person per){
		// 調(diào)用此方法時里面存在兩個對象:當(dāng)前對象、傳入的對象
		Person p1 = this ;	// 當(dāng)前的對象,就表示per1
		Person p2 = per ;	// 傳遞進(jìn)來的對象,就表示per2
		if(p1==p2){	// 判斷是不是同一個對象,用地址比較
			return true ;
		}
		// 之后分別判斷每一個屬性是否相等
		if(p1.name.equals(p2.name)&&p1.age==p2.age){
			return true ;	// 兩個對象相等
		}else{
			return false ;	// 兩個對象不相等
		}
	}
	public void setName(String name){	// 設(shè)置姓名
		this.name = name ;
	}
	public void setAge(int age){		// 設(shè)置年齡
		this.age = age ;
	}
	public String getName(){
		return this.name ;
	}
	public int getAge(){
		return this.age ;
	}
};
public class ThisDemo08{
	public static void main(String args[]){
		Person per1 = new Person("張三",30) ;	// 聲明兩個對象,內(nèi)容完全相等
		Person per2 = new Person("張三",30) ;	// 聲明兩個對象,內(nèi)容完全相等
		// 直接在主方法中依次取得各個屬性進(jìn)行比較
		if(per1.compare(per2)){
			System.out.println("兩個對象相等!") ;
		}else{
			System.out.println("兩個對象不相等!") ;
		}
	}
};

到此這篇關(guān)于Java基礎(chǔ)之this關(guān)鍵字的使用的文章就介紹到這了,更多相關(guān)this關(guān)鍵字的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解JAVA 抽象類

    詳解JAVA 抽象類

    這篇文章主要介紹了JAVA 抽象類的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 關(guān)于log4j漏洞修復(fù)解決方案及源碼編譯

    關(guān)于log4j漏洞修復(fù)解決方案及源碼編譯

    Log4j?是Apache為Java提供的日志管理工具。他與System.out.println()的作用相似,用來跟蹤、調(diào)試、維護(hù)程序。這篇文章主要介紹了關(guān)于log4j漏洞修復(fù)解決方案及源碼編譯,需要的朋友可以參考下
    2021-12-12
  • jconsole使用介紹(圖文)

    jconsole使用介紹(圖文)

    大家在學(xué)習(xí)java的時候,難免會對jvm進(jìn)行一些深入的了解。推薦大家使用jdk下面的jconsole.exe來輔助理解jvm的一些概念
    2015-12-12
  • Spring boot集成swagger2生成接口文檔的全過程

    Spring boot集成swagger2生成接口文檔的全過程

    這篇文章主要給大家介紹了關(guān)于Spring boot集成swagger2生成接口文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringBoot文件分片上傳的示例代碼

    SpringBoot文件分片上傳的示例代碼

    分片上傳在很多地方都可以使用的到,本文主要介紹了SpringBoot文件分片上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解JAVA8 函數(shù)式接口

    詳解JAVA8 函數(shù)式接口

    這篇文章主要介紹了JAVA8 函數(shù)式接口的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Java中的BigDecimal原理詳解

    Java中的BigDecimal原理詳解

    這篇文章主要介紹了Java中的BigDecimal原理詳解,對于日常開發(fā)過程中出現(xiàn)小數(shù)的問題,通常都是使用float或者double類型來處理,在java中float占用四個字節(jié), double類型占用8個字節(jié),需要的朋友可以參考下
    2023-09-09
  • Java子類實例化總是默認(rèn)調(diào)用父類的無參構(gòu)造操作

    Java子類實例化總是默認(rèn)調(diào)用父類的無參構(gòu)造操作

    這篇文章主要介紹了Java子類實例化總是默認(rèn)調(diào)用父類的無參構(gòu)造操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • RabbitMQ實現(xiàn)Work Queue工作隊列的示例詳解

    RabbitMQ實現(xiàn)Work Queue工作隊列的示例詳解

    工作隊列(又稱任務(wù)隊列)的主要思想是避免立即執(zhí)行資源密集型任務(wù),而不得不等待它完成。本篇文章將記錄和分享RabbitMQ工作隊列相關(guān)的知識點,希望對大家有所幫助
    2023-01-01
  • Java下Struts框架中的ActionForm類詳解

    Java下Struts框架中的ActionForm類詳解

    這篇文章主要介紹了Java下Struts框架中的ActionForm類詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

无极县| 湛江市| 革吉县| 天长市| 都江堰市| 政和县| 岳阳县| 定南县| 忻城县| 会昌县| 胶州市| 葫芦岛市| 舟山市| 通州市| 桐乡市| 琼中| 临潭县| 渭南市| 当雄县| 临桂县| 乐陵市| 绥芬河市| 厦门市| 千阳县| 松滋市| 北票市| 达孜县| 普兰店市| 筠连县| 新沂市| 丰都县| 南和县| 汝州市| 阜康市| 彰武县| 高唐县| 平昌县| 咸阳市| 正定县| 松江区| 新蔡县|