JAVA學習第九課(關鍵字一),java學習關鍵字

來源:互聯網
上載者:User

JAVA學習第九課(關鍵字一),java學習關鍵字
關鍵字:

this 關鍵字

this 使用一:

直接以代碼解釋:

class Man{private int age;private String name;Man(){name= null;age = 0;}Man(String n)//正常直接列印"BLF,0",但是把n改為name呢,就會列印null,0{name = n;  }//改成name雖然增加了閱讀性,但是參數名進棧時,棧區已經有了一個局部變數名name,                              那麼name的賦值,只會把自己賦值給自己。如同int x = 5; x = x; /*Man(String name){this.name = name;//this關鍵字的作用就是說,這個對象的name,那麼會進堆記憶體,就不會起衝突了} */Man(int a){ age = a; }Man(int a,String n){age = a;name = n;}void run(){System.out.println(name+","+age);//實際上這裡省略了this.name+","+this.age}}public class Main {public static void main (String[] args) {Man jo = new Man("BLF");jo.run();}}
所以:當局部變數和成員變數重名時,可以用關鍵字this來區分,this就代表當前對象(this就是所在函數所屬對象的引用):
this代表(建構函式)Man所屬的對象jo。哪個對象調用了this所在的函數,那麼this就代表那個對象。


PS:只有對象才能調用建構函式
所以,正規且閱讀性強的代碼


class Man{private int age;private String name;Man(){name= null;age = 0;}Man(String name){this.name = name;  }Man(int age){ this.age = age; }Man(int age,String name){this.age = age;this.name = name;}void run(){System.out.println(this.name+","+this.age);}}public class Main {public static void main (String[] args) {Man jo = new Man("BLF");jo.run();}}


以記憶體配置圖解釋this



this 使用二:
this可以在建構函式裡調用其他建構函式

錯誤示範:

class Man{private int age;private String name;Man(){name= null;age = 0;}Man(String name){this.name = name; }Man(int age){this.age = age; }Man(int age,String name){//上面已經寫過了,是不是就可以進行調用了呢?答案是否定的this.Man(name);//this代表了對象,對象要想進行是使用必須先初始化,但是this.Man(age);//這裡還沒有進行初始化,就開始使用,所以是錯誤的}void run(){System.out.println(this.name+","+this.age);}}public class Main {public static void main (String[] args) {Man jo = new Man(12,"BLF");//此處傳2個參數jo.run();}}
修改

class Man{private int age;private String name;Man(){name= null;age = 0;}Man(String name){this.name = name; }Man(int age){this.age = age; }Man(int age,String name){this(name);//調用上述建構函式,注意:必須放第一行,房子this.age  = age;下面就錯,理由見下this.age = age;}void run(){System.out.println(this.name+","+this.age);}}public class Main {public static void main (String[] args) {Man jo = new Man(12,"BLF");jo.run();}}
注意:this 規則:this只能定義在建構函式的第一行,因為初始化必須先執行
下述代碼,this如果放下面

Man(int age,String name){this.name = name;//初始化BLFthis.age = age;//初始化12this("gggg"); //改變BLF,變為gggg,故錯誤}
PS:this() 不要濫調用.

this的應用

import java.security.cert.TrustAnchor;class Man{private int age;private String name;Man(){name= null;age = 0;}Man(String name){this.name = name; }Man(int age){this.age = age; }Man(int age,String name){this(name);//調用上述建構函式,注意:見下this.age = age;}public void run(){System.out.println(this.name+","+this.age);}/*判斷兩個人是否是同齡人*/public boolean judge(Man g){return this.age == g.age;//這裡的this代表jo2}}public class Main {public static void main (String[] args) {Man jo = new Man(12,"BLF");Man jo2 = new Man(12,"BLF2");boolean flag = jo2.judge(jo);if(flag==true)System.out.println("YES");else System.out.println("NO");}}



java關鍵字

嚴格來講true,false和null的確不是關鍵字(keyword),而是保留字(reserved),實際上是常量(literal)。
會出錯的。
參考資料:download.oracle.com/...s.html
 
java關鍵字問題1

break
一個Java的關鍵字,用來改變程式執行流程,立刻從當前語句的下一句開始執行從。如果後面跟有一個標籤,則從標籤對應的地方開始執行
case

Java語言的關鍵字,用來定義一組分支選擇,如果某個值和switch中給出的值一樣,就會從該分支開始執行。
catch
Java的一個關鍵字,用來聲明當try語句塊中發生執行階段錯誤或非運行時異常時啟動並執行一個塊。
char
Java語言的一個關鍵字,用來定義一個字元類型

continue
一個Java的關鍵字,用來打斷當前迴圈過程,從當前迴圈的最後重新開始執行,如果後面跟有一個標籤,則從標籤對應的地方開始執行。
do
一個Java語言的關鍵字,用來聲明一個迴圈,這個迴圈的結束條件可以通過while關鍵字設定

else
一個Java語言的關鍵字,如果if語句的條件不滿足就會執行該語句。

for
一個Java語言的關鍵字,用來聲明一個迴圈。程式員可以指定要迴圈的語句,推出條件和初始設定變數。
if
Java程式設計語言的一個關鍵字,用來產生一個條件測試,如果條件為真,就執行if下的語句。

instanceof
一個二運算元的Java(TM)語言關鍵字,用來測試第一個參數的運行時類型是否和第二個參數相容。

return
Java語言的一個關鍵字,用來結束一個方法的執行。它後面可以跟一個方法聲明中要求的值。

while
Java語言的一個關鍵字,用來定義一段反覆執行的迴圈語句。迴圈的允出準則是while語句的一部分。

關於break和continue。

continue語句與break語句相關,但較少用到。continue語句用於使其所在的for、while或do-while語句開始下一次迴圈。在while與do-while語句中,continue語句的執行意味著立即執行測試部分;在for迴圈語句中,continue語句的執行則意味著使控制傳遞到增量部分。

Java沒有關鍵字default,如果class定義前什麼也不寫就是預設型,說明訪問他的範圍是包內!

希望我的答案對你有所協助!
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.