Java中this與super關鍵字
this關鍵字
主要有三個應用:
1this呼叫本類中的屬性,也就是類中的成員變數;Public Class Student {
String name; //定義一個成員變數name
private void SetName(String name) { //定義一個引數(區域性變數)name
this.name=name; //將區域性變數的值傳遞給成員變數
}
}
this.name代表的就是物件中的成員變數,又叫做物件的屬性,而後面的name則是方法的形式引數,程式碼this.name=name就是將形式引數的值傳遞給成員變數。2this呼叫本類中的其他方法;
this關鍵字除了可以呼叫成員變數之外,還可以呼叫構造方法。在一個Java類中,其方法可以分為成員方法和構造方法兩種。構造方法是一個與類同名的方法,在Java類中必須存在一個構造方法。如果在程式碼中沒有顯示的體現構造方法的話,那麼編譯器在編譯的時候會自動新增一個沒有形式引數的構造方法。這個構造方法跟普通的成員方法還是有很多不同的地方。如構造方法一律是沒有返回值的,而且也不用void關鍵字來說明這個構造方法沒有返回值。而普通的方法可以有返回值、也可以沒有返回值,程式設計師可以根據自己的需要來定義。不過如果普通的方法沒有返回值的話,那麼一定要在方法定義的時候採用void關鍵字來進行說明。其次構造方法的名字有嚴格的要求,即必須與類的名字相同。也就是說,Java編譯器發現有個方法與類的名字相同才把其當作構造方法來對待。而對於普通方法的話,則要求不能夠與類的名字相同,而且多個成員方法不能夠採用相同的名字。在一個類中可以存在多個構造方法,這些構造方法都採用相同的名字,只是形式引數不同。Java語言就憑形式引數不同來判斷呼叫那個構造方法。
this(); //無參構造
this("") ;//訪問當前類的有參構造
3this呼叫本類中的其他構造方法,呼叫時要放在構造方法的首行。
super關鍵字作用
1:主要存在於子類方法中,用於指向子類物件中父類物件。2:訪問父類的屬性
super.成員變數;(訪問父類)
3:訪問父類的函式
super.xx()
4:訪問父類的建構函式
super()://訪問的父類的無參構造
super("")://訪問的是父類的有參構造..
super關鍵字的使用
1.子類的建構函式預設第一行會預設呼叫父類無參的建構函式,隱式語句2.子類顯式呼叫父類建構函式
在子類建構函式第一行通過super關鍵字呼叫父類任何建構函式。如果顯式呼叫父類建構函式,編譯器自動新增的呼叫父類無引數的構造就消失。建構函式間的呼叫只能放在第一行,只能呼叫一次。super()和this()不能同時存在建構函式第一行。
如果父類的無參構造沒有提供?怎麼辦?
1)可以將父類的無參構造提供出來2)可以super關鍵字去訪問父類的帶參構造...
3)還可以在子類中通過this(),訪問本類中的有參構造,間接的去訪問父類帶參構造
子類的構造方法必須有一個(有參構造/無參構造),讓父類進行初始化!
相關文章
- Java™ 教程(使用super關鍵字)Java
- Java進階——super關鍵字Java
- abstract關鍵字 super 關鍵字 類與繼承繼承
- super關鍵字
- 【尚矽谷-Java學習】5.3 關鍵字 superJava
- this的HXD“super”關鍵字
- 21、super關鍵字的用法
- java中this關鍵字Java
- 你真的瞭解JAVA中物件和類、this、super和static關鍵字嗎Java物件
- Java中final關鍵字Java
- Java開發筆記(四十九)關鍵字super的用法Java筆記
- OC訊息機制和super關鍵字
- java中的instanceof關鍵字Java
- java中的static關鍵字Java
- Java中transient關鍵字的作用Java
- java中static關鍵字的作用Java
- 在Java中this關鍵字的使用Java
- Java中final關鍵字如何使用?Java
- Java中的各種關鍵字Java
- java中的static和final關鍵字Java
- Java 中 instanceof 關鍵字 object instanceof ClassJavaObject
- [java]transient關鍵字Java
- Java native關鍵字Java
- Java Final關鍵字Java
- 深入理解Java中的volatile關鍵字Java
- Java 中 final 關鍵字有什麼用Java
- Java volatile關鍵字作用Java
- Java volatile關鍵字解析Java
- Java 關鍵字之 finalJava
- Java 的 static 關鍵字Java
- Java關鍵字(八)——synchronizedJavasynchronized
- [java基礎]之JAVA關鍵字Java
- PHP中static與yield關鍵字的思考PHP
- JAVA面試題 淺析Java中的static關鍵字Java面試題
- 併發系列之「Java中的synchronized關鍵字」Javasynchronized
- break與continue關鍵字
- 安卓開發(Java)中關於final關鍵字與執行緒安全性安卓Java執行緒
- java基礎-關鍵字finalJava