最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的this、super、final關(guān)鍵字詳解

 更新時(shí)間:2023年09月18日 10:03:01   作者:努力的小鳴人  
這篇文章主要介紹了Java中的this、super、final關(guān)鍵字詳解,它在方法內(nèi)部使用,表示這個(gè)方法所屬對(duì)象的引用,它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對(duì)象,this 可以調(diào)用類的屬性、方法和構(gòu)造器,需要的朋友可以參考下

一、this

  1. 介紹:在Java中
    • 它在方法內(nèi)部使用,表示這個(gè)方法所屬對(duì)象的引用
    • 它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對(duì)象
  2. this 可以調(diào)用類的屬性、方法和構(gòu)造器
  3. 何時(shí)使用:當(dāng)在方法內(nèi)需要用到調(diào)用該方法的對(duì)象時(shí),就用this
    • 具體的:我們可以用this來(lái)區(qū)分屬性和局部變量:比如:this.name = name;
  4. 使用this,調(diào)用屬性、方法:
class Person{ // 定義Person類
		private String name ;
		private int age ;
	public Person(String name,int age){
		this.name = name ;
		this.age = age ; }
	public void getInfo(){
		System.out.println("姓名:" + name) ;
		this.speak();
	}
	public void speak(){
		System.out.println(“年齡:” + this.age);
	}
}
  • 使用this,調(diào)用當(dāng)前對(duì)象:
class Person{ // 定義Person類
		String name;
	Person(String name){
		this.name = name;
		}
	public void getInfo(){
		System.out.println("Person類 --> " + this.name);
		}
	public boolean compare(Person p){
		return this.name==p.name;
	}
}
	public class PersonTest{
	public static void main(String args[]){
		Person per1 = new Person("張三") ;
		Person per2 = new Person("李四") ;
		per1.getInfo() ; // 當(dāng)前調(diào)用getInfo()方法的對(duì)象是per1
		per2.getInfo() ; // 當(dāng)前調(diào)用getInfo()方法的對(duì)象是per2
		boolean b = per1.compare(per2);
	} 
}
  • 使用this調(diào)用本類的構(gòu)造器:
class Person{ // 定義Person類
		private String name ;
		private int age ;
		public Person(){ // 無(wú)參構(gòu)造器
		System.out.println("新對(duì)象實(shí)例化") ;
}
	public Person(String name){
		this(); // 調(diào)用本類中的無(wú)參構(gòu)造器
		this.name = name ;
}
	public Person(String name,int age){
		this(name) ; // 調(diào)用有一個(gè)參數(shù)的構(gòu)造器
		this.age = age;
}
	public String getInfo(){
		return "姓名:" + name + ",年齡:" + age ;
	}
}

二、super

  1. 使用super來(lái)調(diào)用父類中的指定操作:
    • super可用于訪問(wèn)父類中定義的屬性
    • super可用于調(diào)用父類中定義的成員方法
    • super可用于在子類構(gòu)造器中調(diào)用父類的構(gòu)造器
  2. super和this的用法相像,this代表本類對(duì)象的引用,super代表父類的內(nèi)存空間的標(biāo)識(shí) 
    • super的追溯不僅限于直接父類
  3. 關(guān)鍵字super舉例:
class protected Person {
		String name = "張三"; 
		protected int age;
	public String getInfo() {
		return "Name: " + name + "\nage: " + age;
	}
}
class Student extends Person {
		protected String name = "李四";
		private String school = "New Oriental";
	public String getSchool() {
		return school;
	}
	public String getInfo() {
		return super.getInfo() + "\nschool: " + school;
	}
}
	public class StudentTest {
	public static void main(String[] args) {
		Student st = new Student();
	System.out.println(st.getInfo());
	}
}

調(diào)用父類的構(gòu)造器

  1. 子類中所有的構(gòu)造器默認(rèn)都會(huì)訪問(wèn)父類中空參數(shù)的構(gòu)造器
  2. 當(dāng)父類中沒有空參數(shù)的構(gòu)造器時(shí),子類的構(gòu)造器必須通過(guò)this(參數(shù)列表)或者super(參數(shù)列表)語(yǔ)句指定調(diào)用本類或者父類中相應(yīng)的構(gòu)造器。同時(shí),只能”二選一”,且必須放在構(gòu)造器的首行
  3. 如果子類構(gòu)造器中既未顯式調(diào)用父類或本類的構(gòu)造器,且父類中又沒有無(wú)參的構(gòu)造器,則編譯出錯(cuò)
  4. 調(diào)用父類構(gòu)造器舉例:
public class Person {
		private String name;
		private int age;
		private Date birthDate;
	public Person(String name, int age, Date d) {
		this.name = name;
		this.age = age;
		this.birthDate = d;
	}
	public Person(String name, int age) {
		this(name, age, null);
	}
	public Person(String name, Date d) {
		this(name, 30, d);
	}
	public Person(String name) {
		this(name, 30);
	}
}
public class Student extends Person {
		private String school;
	public Student(String name, int age, String s) {
		super(name, age);
		school = s;
	}
	public Student(String name, String s) {
		super(name);
		school = s;
	}
	// 編譯出錯(cuò): no super(),系統(tǒng)將調(diào)用父類無(wú)參數(shù)的構(gòu)造器。
	public Student(String s) {
		school = s;
	}
}

this與super的區(qū)別

在這里插入圖片描述

三、final

可使用關(guān)鍵字 final 來(lái)修飾,表示 最終的

  1. final標(biāo)記的類不能被繼承
  2. final標(biāo)記的方法不能被子類重寫
  3. final標(biāo)記的變量(成員變量或局部變量)即稱為常量
  4. 關(guān)鍵字final應(yīng)用舉例:
public final class Test {
		public static int totalNumber = 5;
		public final int ID;
	public Test() {
		ID = ++totalNumber; // 可在構(gòu)造器中給final修飾的“變量”賦值
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.ID);
		final int I = 10;
		final int J;
		J = 20;
		J = 30; // 非法
	}
}

總結(jié):this、super、final三個(gè)關(guān)鍵詞的靈活運(yùn)用會(huì)很好地改變代碼量,了解其中細(xì)節(jié)也會(huì)減少平時(shí)那令人頭疼的bug哈,做個(gè)筆記經(jīng)??纯?/p>

到此這篇關(guān)于Java中的this、super、final關(guān)鍵字詳解的文章就介紹到這了,更多相關(guān)Java中的關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java泛型機(jī)制的程序演示詳解

    Java泛型機(jī)制的程序演示詳解

    這篇文章主要為大家詳細(xì)介紹了Java泛型機(jī)制的程序演示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java生成二維碼可添加logo和文字功能

    Java生成二維碼可添加logo和文字功能

    這篇文章主要介紹了Java生成二維碼可添加logo和文字功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel是阿里巴巴開源的一款微服務(wù)流量控制組件,主要以流量為切入點(diǎn),從流量路由、流量控制、流量整形、熔斷降級(jí)、系統(tǒng)自適應(yīng)過(guò)載保護(hù)、熱點(diǎn)流量防護(hù)等多個(gè)維度來(lái)幫助開發(fā)者保障微服務(wù)的穩(wěn)定性,本文介紹Sentinel 斷路器在Spring Cloud使用,感興趣的朋友一起看看吧
    2025-02-02
  • SpringMVC @ControllerAdvice使用場(chǎng)景

    SpringMVC @ControllerAdvice使用場(chǎng)景

    這篇文章主要介紹了SpringMVC @ControllerAdvice使用場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • JAVA中Spring Boot的AOP切面編程是什么,如何使用?(實(shí)例代碼)

    JAVA中Spring Boot的AOP切面編程是什么,如何使用?(實(shí)例代碼)

    本文詳細(xì)介紹了SpringBoot中面向切面編程(AOP)的基本概念、核心術(shù)語(yǔ)、配置方法以及應(yīng)用場(chǎng)景,涵蓋了AOP的五種通知類型、切點(diǎn)表達(dá)式、動(dòng)態(tài)代理、切面優(yōu)先級(jí)與執(zhí)行順序等核心知識(shí)點(diǎn),并通過(guò)實(shí)戰(zhàn)案例展示了AOP在微服務(wù)架構(gòu)中的應(yīng)用潛力
    2026-01-01
  • SpringBoot數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)

    SpringBoot數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)

    本文主要介紹了SpringBoot數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn),引入各種xxxTemplate,xxxRepository來(lái)簡(jiǎn)化我們對(duì)數(shù)據(jù)訪問(wèn)層的操作,感興趣的可以了解一下
    2023-11-11
  • IDEA編譯亂碼Build Output提示信息亂碼

    IDEA編譯亂碼Build Output提示信息亂碼

    IDEA編譯的時(shí)候亂碼,Build Output提示信息亂碼,本文就詳細(xì)的介紹一下解決方法,有需要的同學(xué)可以了解一下
    2021-06-06
  • JDK反序列化時(shí)修改類的全限定性名解析

    JDK反序列化時(shí)修改類的全限定性名解析

    這篇文章主要介紹了JDK反序列化時(shí)修改類的全限定性名解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • java中ExecutorService創(chuàng)建方法總結(jié)

    java中ExecutorService創(chuàng)建方法總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于java中ExecutorService創(chuàng)建方法總結(jié),有興趣的朋友們可以參考下。
    2021-01-01
  • Java8 實(shí)現(xiàn)stream將對(duì)象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    Java8 實(shí)現(xiàn)stream將對(duì)象集合list中抽取屬性集合轉(zhuǎn)化為map或list

    這篇文章主要介紹了Java8 實(shí)現(xiàn)stream將對(duì)象集合list中抽取屬性集合轉(zhuǎn)化為map或list的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02

最新評(píng)論

佛坪县| 盘山县| 成武县| 鄂托克旗| 南安市| 修文县| 凉城县| 公安县| 那曲县| 日喀则市| 左权县| 五台县| 瑞安市| 温州市| 玛纳斯县| 开鲁县| 田东县| 永顺县| 枝江市| 轮台县| 昌宁县| 忻城县| 松桃| 库车县| 红原县| 浏阳市| 通州市| 晋中市| 淄博市| 东城区| 弥渡县| 安福县| 晋宁县| 吉木乃县| 龙游县| 炎陵县| 广元市| 亳州市| 阿克| 深圳市| 丹巴县|