亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 Java Java入門 java中this關(guān)鍵字有什么用法

java中this關(guān)鍵字有什么用法

Oct 19, 2020 pm 03:03 PM
java this

java中this關(guān)鍵字的用法:1、調(diào)用本類中的屬性,即類中的成員變量;2、調(diào)用本類中的其它方法;3、調(diào)用本類中的其它構(gòu)造方法,調(diào)用時(shí)需要放在構(gòu)造方法的首行。

java中this關(guān)鍵字有什么用法

this關(guān)鍵字主要有三個(gè)應(yīng)用:

this調(diào)用本類中的屬性,也就是類中的成員變量;

this調(diào)用本類中的其他方法;

this調(diào)用本類中的其他構(gòu)造方法,調(diào)用時(shí)要放在構(gòu)造方法的首行。

調(diào)用成員變量

(推薦教程:java課程

結(jié)合代碼來說,會更加具體一些。參考下面這段代碼:

public class Student{
    String name;
    private void SetName(String name){
        this.name = name;
    }
}

這段代碼中,創(chuàng)建了一個(gè)類Student,有成員變量name與成員方法SetName(String name),由于成員方法接收的形參名稱與成員變量相同,都是name,所以,這里可以使用this關(guān)鍵字來調(diào)用本類中的成員變量。其作用可以簡單的這么理解:this關(guān)鍵字就是調(diào)用本類中的成員變量。

但是這樣簡單的理解并不準(zhǔn)確,this其實(shí)是當(dāng)前類對象的引用,通過當(dāng)前這個(gè)類實(shí)例化的對象的引用來訪問對象的成員變量。

注意:

this關(guān)鍵字訪問類的成員變量和成員函數(shù)時(shí)不受訪問權(quán)限的控制,可以訪問本類中所有的成員變量和方法,包括private的成員變量和方法。也可以通過this訪問本類的static成員,不過由于static成員可以通過類名直接訪問,如果通過this來訪問會有“The static field ××× should be accessed in a static way”的警告信息。不能在類的static成員或static塊中使用this。

調(diào)用成員方法

可參考如下代碼:

package Test;

public class ThisTest {
    String name;

    private void setName(String name) {
        this.name = name;
        System.out.println("setName: " + this.name);
    }

    private void thisTest(String name) {
        this.setName(name);
        System.out.println("thisTest: " + this.name);
    }

    public static void main(String[] args) {
        ThisTest tt = new ThisTest();

        tt.setName("Yida");
        tt.thisTest("Jenny");

    }
}

這段代碼中,首先創(chuàng)建了Test類,該類與之前的沒什么區(qū)別,只是增加了一個(gè)成員方法thisTest(),在這個(gè)成員方法中,通過this關(guān)鍵字調(diào)用了之前的成員函數(shù)setName(),程序運(yùn)行結(jié)果如下所示:

setName: Yida
setName: Jenny
thisTest: Jenny

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

構(gòu)造方法是一個(gè)類的對象在通過new關(guān)鍵字創(chuàng)建時(shí)自動(dòng)調(diào)用的,在程序中不能向調(diào)用其他方法一樣通過方法名(也就是類名)來調(diào)用。但如果一個(gè)類有多個(gè)構(gòu)造方法,可以在一個(gè)構(gòu)造方法中通過this(paras…)來調(diào)用其他的構(gòu)造方法。

使用this來調(diào)用其他構(gòu)造方法有如下幾個(gè)約束:

只能在構(gòu)造方法中通過this來調(diào)用其他構(gòu)造方法,普通方法中不能使用。

不能通過this遞歸調(diào)用構(gòu)造方法,即不能在一個(gè)構(gòu)造方法中通過this直接或間接調(diào)用該構(gòu)造方法本身。

通過this調(diào)用其他構(gòu)造方法必須放在構(gòu)造方法的第一行中執(zhí)行。

由于super調(diào)用父類的構(gòu)造函數(shù)也必須放在構(gòu)造方法的第一行中執(zhí)行,因此,通過this和super調(diào)用構(gòu)造方法不能同時(shí)出現(xiàn)一個(gè)構(gòu)造方法中。也不能在一個(gè)構(gòu)造方法中多次調(diào)用不同的構(gòu)造方法。

以下代碼是錯(cuò)誤的,因?yàn)橥ㄟ^this關(guān)鍵字,形成了遞歸調(diào)用:

//錯(cuò)誤的示例!??!
class test {
    test() {
        this(1);
    }
    test(int a){
        this();
    }
    tes int b) {
        this(1, 2);
    }
}

正確的使用如下所示:

public class Student { //定義一個(gè)類,類的名字為student。 
    public Student() { //定義一個(gè)方法,名字與類相同故為構(gòu)造方法
        this(“Hello!”);
    }
    public Student(String name) { //定義一個(gè)帶形式參數(shù)的構(gòu)造方法
    }
}

返回對象的值

this關(guān)鍵字除了可以引用變量或者成員方法之外,還有一個(gè)重大的作用就是返回類的引用。如在代碼中,可以使用return this,來返回某個(gè)類的引用。此時(shí)這個(gè)this關(guān)鍵字就代表類的名稱。如代碼在上面student類中,那么代碼代表的含義就是return student??梢?,這個(gè)this關(guān)鍵字除了可以引用變量或者成員方法之外,還可以作為類的返回值,這才是this關(guān)鍵字最引人注意的地方。

相關(guān)推薦:java入門

以上是java中this關(guān)鍵字有什么用法的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
VSCODE設(shè)置。JSON位置 VSCODE設(shè)置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級或工作區(qū)級路徑,用于自定義VSCode設(shè)置。1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級路徑:項(xiàng)目根目錄下的.vscode/settings

如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務(wù),必須先關(guān)閉自動(dòng)提交模式,再執(zhí)行多個(gè)操作,最后根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開始事務(wù);2.執(zhí)行多個(gè)SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時(shí)應(yīng)使用try-with-resources管理資源,妥善處理異常并關(guān)閉連接,避免連接泄漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,并保持事務(wù)盡可能短以提升性能。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

如何使用Java的日歷? 如何使用Java的日歷? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時(shí)間;3.使用of()方法創(chuàng)建特定日期時(shí)間;4.利用plus/minus方法不可變地增減時(shí)間;5.使用ZonedDateTime和ZoneId處理時(shí)區(qū);6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時(shí)通過Instant與舊日期類型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

Google Chrome無法打開本地文件 Google Chrome無法打開本地文件 Aug 01, 2025 am 05:24 AM

ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

了解網(wǎng)絡(luò)端口和防火墻 了解網(wǎng)絡(luò)端口和防火墻 Aug 01, 2025 am 06:40 AM

NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

See all articles