JAVA知識基礎(九):this、super 關鍵字總結

1.this關鍵字

this有三種常見用法

1.this調用本類中的屬性,也就是類中的成員變量
2.this調用本類中的其他方法
3.this調用本類中的其他構造方法,調用時要放在構造方法的首行。

2.super關鍵字

在java里面,對于super關鍵字通常有兩種用法

  1. 用在子類的構造方法里(初始化用),主要是調用父類的默認構造方法,如果父類有不止一個構造方法,可以通過super指定具體的構造函數,比如 super(paras);
  2. 用在子類里調用隱藏或重寫的屬性或行為,比如 super.onDestroy()等等;
    對于第1種需要注意,super表示當前類的父類,super()調用的是父類默認的構造方法,即這樣可以對父類進行初始化。如何沒有對父類進行初始化,當子類調用父類的方法時,便會從邏輯上出現錯誤,因為沒對父類初始化,父類的方法和屬性便沒有內存空間。

3.關于super 與 this 關鍵字的對比(區別)

  1. super(參數):調用基類中的某一個構造函數(應該為構造函數中的第一條語句)
  2. this(參數):調用本類中另一種形成的構造函數(應該為構造函數中的第一條語句)
  3. super: 它引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數據或函數,基類與派生類中有相同成員定義時如:super.變量名 super.成員函數據名(實參)
  4. this:它代表當前對象名(在程序中易產生二義性之處,應使用this來指明當前對象;如果函數的形參與類中的成員數據同名,這時需用this來指明成員變量名)
  5. 調用super()必須寫在子類構造方法的第一行,否則編譯不通過。每個子類構造方法的第一條語句,都是隱含地調用super(),如果父類沒有這種形式的構造函數,那么在編譯的時候就會報錯。
  6. super()和this()類似,區別是,super()從子類中調用父類的構造方法,this()在同一類內調用其它方法。
  7. super()和this()均需放在構造方法內第一行。
  8. 盡管可以用this調用一個構造器,但卻不能調用兩個。
  9. this和super不能同時出現在一個構造函數里面,因為this必然會調用其它的構造函數,其它的構造函數必然也會有super語句的存在,所以在同一個構造函數里面有相同的語句,就失去了語句的意義,編譯器也不會通過。
  10. this()和super()都指的是對象,所以,均不可以在static環境中使用。包括:static變量,static方法,static語句塊。
  11. 從本質上講,this是一個指向本對象的指針, 然而super是一個Java關鍵字。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535914.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535914.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

向MIP開源項目提交Issues

Issues 是 GitHub 管理需求,討論技術方案的方式,附:官方解釋。MIP 是在 GitHub 上的開源項目,也使用 Issues 來做任務管理。 一、Issues 在 MIP 項目中的應用 MIP 項目中的 Issues 主要有兩種用法: 1. * 記錄 bug,…

Nginx(七):nginx原理解析

前面我們講到了nginx的反向代理、負載均衡、動靜分離以及高可用,本篇我們來了解一下nginx的原理,看一下nginx是怎么執行的。 1、mater和worker 2、worker是如何進行工作的 3、相關問題 3.1、一個 master 和多個 woker 有好處 (1&#xff0…

為什么MIP-Cache存在

在去年十月的一篇 博客文章 提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三個模塊共同產生加速效果的。MIP-HTML 和 MIP-JS 都是開源的,在 GitHub 上可以訪問。但 MIP-Cache 是百度提供的,所有從百度搜索結果頁打開的頁面都是 MIP-Cache 的頁面。…

JAVA知識基礎(十):多態

1.概述 1.1多態的定義 多態是同一個行為具有多個不同表現形式或形態的能力。 多態就是同一個接口,使用不同的實例而執行不同操作。 多態性是對象多種表現形式的體現。 1.2多態的優點 消除類型之間的耦合關系可替換性可擴充性接口性靈活性簡化性 1.3多態存在的三個…

MIP技術交流分享(3月9日)

3月9日上周四下午,MIP 團隊工程師與去哪兒酒店云、眾薈的 Web 前端工程師進行了一次面對面的技術交流。 在這次交流中,MIP 工程師主要分享了 MIP 技術原理,MIP 加速原理,以及 MIP 為開發者提供的工具集。去哪兒的工程師也提出了通…

JAVA知識基礎(十一):異常

1.異常的概念 簡單說就是不正常運行,最終導致JVM的非正常停止。 在Java等面向對象的編程語言中,異常本身是一個類,產生異常就是創建異常對象并拋出了一個異常對象。Java處理異常的方式是中斷處理。 異常指的并不是語法錯誤,語法錯了,編譯不…

SpringBoot基礎篇(一):Spring Boot入門

我們今天開始對SpringBoot的學習,本篇主要是Spring Boot的入門部分。 1、SpringBoot簡介 引用SpringBoot在百度百科中的含義: Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使…

SpringBoot基礎篇(二):HelloWorld細節探究

1、場景啟動器 1.1依賴 <!--Hello World項目的父工程是org.springframework.boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</versio…

MIP 與 AMP 合作進展(3月7日)

“到目前為止&#xff0c;全網通過 MIP 校驗的網頁已超10億。除了代碼和緩存&#xff0c; MIP 還想做更多來改善用戶體驗移動頁面。” 3月7日&#xff0c;MIP 項目負責人在首次 AMP CONF 上發言。 那么 MIP 和 AMP 的關系是什么呢&#xff1f; AMP 是一個開源性項目&#xff…

SpringBoot番外篇(一):使用Spring Initializer快速創建Spring Boot項目(IDEA版)

IDE都支持使用Spring的項目創建向導快速創建一個Spring Boot項目&#xff1b; 選擇我們需要的模塊&#xff1b;向導會聯網創建Spring Boot項目&#xff1b; ps:需要聯網 1、創建新項目時選擇Spring Initializ&#xff0c;選擇好java版本&#xff0c;點擊next。r 2、填寫項…

開發教程(四) MIP組件平臺使用說明

組件審核平臺用于上傳 MIP 組件。經過自動校驗之后&#xff0c;提交審核&#xff0c;通過審核的組件會定時推送到線上&#xff0c;供網站使用。 平臺地址&#xff1a;https://www.mipengine.org/platform/ 1. 使用說明 MIP 組件審核平臺用于提交開發完成的組件&#xff0c;如…

MIP 技術交流分享(3月15日)

3月15日下午&#xff0c;MIP 團隊工程師與58趕集的 Web 前端工程師進行了一次面對面的技術交流。 在這次交流中&#xff0c;MIP 工程師主要分享了 MIP 技術原理&#xff0c;MIP 加速原理&#xff0c;以及 MIP 為開發者提供的工具集。 58趕集的工程師提出了以下問題&#xff1a…

Redis(零):背景

什么是NoSQL&#xff0c;什么是Redis&#xff0c;我們在了解這個系列之前&#xff0c;先來看一下Redis是從何而來&#xff1f;Why redis is needed? 1、單機MySQL年代 在最早的單機MySQL年代&#xff0c;存在著訪問量小&#xff0c;單個數據庫等特點。 但是特有著眾多的缺…

Redis(一):什么是NoSQL與NoSQL分類

1、什么是NoSQL NoSQL Not only SQL (不僅是SQL)&#xff0c;即泛指非關系型數據庫。隨著Web2.0時代誕生&#xff01;NoSQL在當今大數據的環境下發展十分迅速&#xff01; NoSQL 是一項全新的數據庫革命性運動&#xff0c;早期就有人提出&#xff0c;發展至2009年趨勢越發高漲…

MIP 內容聲明

從搜索結果頁點出的 MIP 頁面&#xff0c;其頁面上的任何內容&#xff08;包括但不限于廣告、在線咨詢、統計等組件&#xff09;均視為在原站點上的投放和使用。 MIP &#xff08;Mobile Instant Pages - 移動網頁加速器&#xff09;, 是一套應用于移動網頁的開放性技術標準。…

Redis(二):Redis入門與性能測試

1、Redis概述 Redis是什么&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即遠程字典服務&#xff0c;是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫&#xff0c;并提供多種語言的API。 免費開源&#xf…

互聯網的發展背離了其初衷嗎?

作者 | 高磊 編輯 | 尾尾 一、互聯網初衷究竟是什么&#xff1f; 互聯網的初衷究竟是什么&#xff1f; 對于這個問題&#xff0c;被譽為“互聯網之父”的蒂姆伯納斯李&#xff08;Tim Berners-Lee&#xff09;應該最有發言權。 伯納斯李認為&#xff0c;互聯網最具價值的地…

Redis(三):Redis基礎知識與常用命令

1、基礎命令 Redis默認有16個數據庫&#xff0c;用的是第0個數據庫&#xff0c;可以使用select進行切換數據庫&#xff0c;使用DBSIZE查看DB大小&#xff08;只針對當前數據庫&#xff09;。 使用keys * 查看當前數據庫下所有的key&#xff0c;使用flushdb清除當前數據庫&am…

移動Web加速技術月報第1期

作者 | Brilliant Open Web團隊breezet、JennyL 編輯 | 尾尾 為推進Web技術的發展&#xff0c;Brilliant Open Web 團隊特推出每月一期的《移動Web加速技術月報》&#xff0c;該月報將整理較流行的移動Web加速技術&#xff0c;并跟進各項技術的進展和發展方向&#xff0c;以期…

Redis(四):String字符串數據類型詳解

Redis 字符串數據類型的相關命令用于管理 redis 字符串值&#xff0c;基本語法如下&#xff1a; redis 127.0.0.1:6379> COMMAND KEY_NAME1、String類型的常用命令 1.1、set、get SET key v//設置key值為v get key //獲取key值1.2、Append APPEND key "hi" //…