搜尋
首頁Javajava教程Java中的兩個特殊變數this和super

  在java中有兩個非常非凡的變數:this和super,這兩個變數在使用前都是不需要宣告的。 this變數使用在一個成員函數的內部,指向當前對象,當前對象指的是呼叫目前正在執行方法的那個對象。 super變數是直接指向超類別的建構函數,用來引用超類別中的變數和方法。        因此它們都是非常有用的變量,以下我想介紹this和super的使用方法。

  1、this

  讓我們先看一段程式碼吧:

  class PersonInformation

  {
,.〜『〜〜〜〜〜,a〜〜〜〦〜〜〜,a〜〜) int age;

   void PersonInformation(String p_name,String p_gender,String p_nationality,String p_address,int p_age)

   {

    name=p_name;

   gender=pender;

    address=p_address;

    age=p_age;

   }🀜『會發現,在PersonInformation()函數中這個物件的方法提示可以直接存取物件的成員變數的,而且在同一個範圍中,定義兩個相同的名字的局部變數是不答應的,假如確實想使類別的成員變數和方法的參數或方法自己定義的局部變數同名的話就需要想一種方法使成員變數與更它同名的方法參數或局部變數區分開來,這就要使用到this變數。下面我想改寫上面的程式碼,讓PersonInformation類別的建構子的每個參數都有與物件成員變數相同的名字,而成員變數的初值由參數給定。

  class PersonInformation

   {

    String name,gender,nationality,address; ation(String name,String gender,String nationality,String address,int age)

    {

    this. name=name;

    this.gender=gender;

    this.nationality=nationality;

   〜》》〦〟.
    }

   }

  由上一例中,我們可以看出,該建構函數中必須使用this,this在方法體重用來指向引用當前正在執行方法的那個物件實例,this變數的類型總是為包含前執行方法的類,上例中,我們要區別參數name和成員變數name,寫成name=name顯然是不答應的,在參數或局部變數名稱與類別成員變數同名的時候,由於參數或局部變數的優先權高,這樣在方法體中參數名稱或局部變數名稱將隱藏同名的成員變量,因此,為了值名成員變量,你必須使用this顯示地指明當前物件。

  有時會碰到這種情況,我們全面的訪問當前對象,而不是訪問某一個個別的實例對象,我們也可以使用this,並利用Java中的toString()方法(它能夠返回一個描述這個物件的字串)假如把任何一個物件傳遞到System.out.PRintln方法中,這個方法呼叫這個物件的toString方法,並且列印出結果字串,所以,我們可以用如下方法System.out.println(this ),來列印出任何對方法固有參數的目前狀態。

  this還有一個用法,就是建構函數的第一個語句,它的形式是this(參數表),這個建構子就會呼叫同一個類別的另一個相對的建構子。請看下面的例子:

  class UserInfo 

  {

   public UserInfo(String name)

   {

    this(name,aNewSerialNumber);

   }

   public Userinfo(String name,int number)

   {

    userName=name;

    userNumber=number;

   }
🀜 Info 、〜『〜〜"info = Info〜〜〜〜〦〜〜〜="​​cofS comfcomf. ayne Zheng")後,就會自動呼叫UserInfo(String 

 以上就是Java中的兩個特殊變數this和super的內容,更多相關文章請關注PHP中文網(www.php.cn)!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
是否有任何威脅或增強Java平台獨立性的新興技術?是否有任何威脅或增強Java平台獨立性的新興技術?Apr 24, 2025 am 12:11 AM

新興技術對Java的平台獨立性既有威脅也有增強。 1)雲計算和容器化技術如Docker增強了Java的平台獨立性,但需要優化以適應不同雲環境。 2)WebAssembly通過GraalVM編譯Java代碼,擴展了其平台獨立性,但需與其他語言競爭性能。

JVM的實現是什麼,它們都提供了相同的平台獨立性?JVM的實現是什麼,它們都提供了相同的平台獨立性?Apr 24, 2025 am 12:10 AM

不同JVM實現都能提供平台獨立性,但表現略有不同。 1.OracleHotSpot和OpenJDKJVM在平台獨立性上表現相似,但OpenJDK可能需額外配置。 2.IBMJ9JVM在特定操作系統上表現優化。 3.GraalVM支持多語言,需額外配置。 4.AzulZingJVM需特定平台調整。

平台獨立性如何降低發展成本和時間?平台獨立性如何降低發展成本和時間?Apr 24, 2025 am 12:08 AM

平台獨立性通過在多種操作系統上運行同一套代碼,降低開發成本和縮短開發時間。具體表現為:1.減少開發時間,只需維護一套代碼;2.降低維護成本,統一測試流程;3.快速迭代和團隊協作,簡化部署過程。

Java的平台獨立性如何促進代碼重用?Java的平台獨立性如何促進代碼重用?Apr 24, 2025 am 12:05 AM

Java'splatformindependencefacilitatescodereusebyallowingbytecodetorunonanyplatformwithaJVM.1)Developerscanwritecodeonceforconsistentbehavioracrossplatforms.2)Maintenanceisreducedascodedoesn'tneedrewriting.3)Librariesandframeworkscanbesharedacrossproj

您如何在Java應用程序中對平台特定問題進行故障排除?您如何在Java應用程序中對平台特定問題進行故障排除?Apr 24, 2025 am 12:04 AM

要解決Java應用程序中的平台特定問題,可以採取以下步驟:1.使用Java的System類查看系統屬性以了解運行環境。 2.利用File類或java.nio.file包處理文件路徑。 3.根據操作系統條件加載本地庫。 4.使用VisualVM或JProfiler優化跨平台性能。 5.通過Docker容器化確保測試環境與生產環境一致。 6.利用GitHubActions在多個平台上進行自動化測試。這些方法有助於有效地解決Java應用程序中的平台特定問題。

JVM中的類加載程序子系統如何促進平台獨立性?JVM中的類加載程序子系統如何促進平台獨立性?Apr 23, 2025 am 12:14 AM

類加載器通過統一的類文件格式、動態加載、雙親委派模型和平台無關的字節碼,確保Java程序在不同平台上的一致性和兼容性,實現平台獨立性。

Java編譯器會產生特定於平台的代碼嗎?解釋。Java編譯器會產生特定於平台的代碼嗎?解釋。Apr 23, 2025 am 12:09 AM

Java編譯器生成的代碼是平台無關的,但最終執行的代碼是平台特定的。 1.Java源代碼編譯成平台無關的字節碼。 2.JVM將字節碼轉換為特定平台的機器碼,確保跨平台運行但性能可能不同。

JVM如何處理不同操作系統的多線程?JVM如何處理不同操作系統的多線程?Apr 23, 2025 am 12:07 AM

多線程在現代編程中重要,因為它能提高程序的響應性和資源利用率,並處理複雜的並發任務。 JVM通過線程映射、調度機制和同步鎖機制,在不同操作系統上確保多線程的一致性和高效性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),