夜间福利网站,免费动漫av,一级做a爰片久久毛片免费陪,夜夜骑首页,黄色毛片视频,插插插操操操,综合av色

Java編程中this關(guān)鍵字與super關(guān)鍵字的使用方法

時(shí)間:2025-09-03 07:09:19 java語(yǔ)言 我要投稿

Java編程中this關(guān)鍵字與super關(guān)鍵字的使用方法

  this

  總要有個(gè)事物來(lái)代表類(lèi)的當(dāng)前對(duì)象,就像C++中的this指針一樣,Java中的this關(guān)鍵字就是代表當(dāng)前對(duì)象的引用。

  它有三個(gè)主要的作用:

  1、在構(gòu)造方法中調(diào)用其他構(gòu)造方法。

  比如有一個(gè)Student類(lèi),有三個(gè)構(gòu)造函數(shù),某一個(gè)構(gòu)造函數(shù)中調(diào)用另外構(gòu)造函數(shù),就要用到this(),而直接使用Student()是不可以的。

  2、返回當(dāng)前對(duì)象的引用。

  3、區(qū)分成員變量名和參數(shù)名。

  看下面的例子:

  public class Student { private String name; private int age; private String college; public Student() { age = 20; } public Student(String name) { this();/pic/pic/p>

  迷失在茫茫的對(duì)象海洋時(shí),不要忘了用this來(lái)找到自我。

  super

  super是this的父輩。從面相對(duì)象的角度說(shuō),這兩個(gè)概念是很好理解的。

  子類(lèi)從父類(lèi)繼承過(guò)來(lái),父類(lèi)的protected及以上的屬性和方法在子類(lèi)中是天生就具有的。那么,為什么還要有super這個(gè)關(guān)鍵字?

  第一、看父類(lèi)的構(gòu)造

  子類(lèi)構(gòu)造時(shí)要先調(diào)用父類(lèi)的默認(rèn)構(gòu)造函數(shù)的,這與C++的構(gòu)造屬性一致。當(dāng)父類(lèi)有多個(gè)構(gòu)造函數(shù)時(shí),你需要指定調(diào)用哪個(gè)。這是就需要使用super(arg1,arg2...)。

  需要注意的是,在子類(lèi)的構(gòu)造函數(shù)中調(diào)用基類(lèi)的構(gòu)造函數(shù)時(shí),必須要把super寫(xiě)作最前面,否則報(bào)錯(cuò)。

  第二,在子類(lèi)覆蓋父類(lèi)的一些方法中再調(diào)用父類(lèi)的此方法。大家都知道,在子類(lèi)中覆蓋父類(lèi)的一些方法是面向?qū)ο笾卸鄳B(tài)的一種方式,而因?yàn)槠渌N種原因,需要在此方法中調(diào)用父類(lèi)的此方法,用以區(qū)分,此時(shí)需要使用super來(lái)完成。

  public class ClassLeader extends Student { private String duty; public ClassLeader() { duty = "class monitor"; } public ClassLeader(String duty,String name,String college) { super(name,college); this.duty = duty; } public void print() { super.print(); System.out.println("duty is " + duty); } public static void main(String[] args) { ClassLeader leader = new ClassLeader("life","linc","shenyang"); leader.print(); } }

  將兩個(gè)類(lèi)文件放在同一個(gè)目錄,編譯并運(yùn)行:

  D:workspaceJavaproject261super>javac -d . *java D:workspaceJavaproject261super>java ClassLeader

  運(yùn)行結(jié)果:

  this student name is linc this student name is linc college is shenyang name is: linc age is: 20 college is: shenyang duty is life

  看看在其他語(yǔ)言中是怎樣來(lái)處理的:

  C#中提供了base關(guān)鍵字來(lái)完成super相似的功能,C++直接用基類(lèi)的名字來(lái)調(diào)用。

【Java編程中this關(guān)鍵字與super關(guān)鍵字的使用方法】相關(guān)文章:

理解java中的關(guān)鍵字03-17

Java中Finally關(guān)鍵字03-07

解析Java中volatile關(guān)鍵字11-27

Java中synchronized關(guān)鍵字的用法01-16

Java關(guān)鍵字及注釋02-16

java關(guān)鍵字復(fù)習(xí)08-22

Java中final關(guān)鍵字用法的講解03-02

深入Java關(guān)鍵字null12-01

java的import關(guān)鍵字的使用09-18

  • 相關(guān)推薦