學習JAVA的第八天(基礎)

目錄

多態

前提

形式

測試類

調用成員的特點

優勢

?劣勢

注意事項:

final關鍵字

常量?

命名規范:

注意事項:

?權限修飾符

分類

代碼塊

局部代碼塊?

構造代碼塊

靜態代碼塊

抽象類

抽象類:

定義格式? ??

抽象方法:

定義格式? ?

注意事項


多態

????????同類型的對象,表現出不同形態

前提

? ? ? ? 有繼承關系

? ? ? ? 有父類引用指向子類對象

? ? ? ? 有方法重寫

形式

? ? ? ? 父類類型 對象名稱 = 子類對象;

測試類

public class Test {public static void main(String[] args) {//創建3個對象 學生 老師 管理員Student s = new Student();s.setName("張三");s.setAge(18);Teacher t = new Teacher();t.setName("李四");t.setAge(50);Administrator a = new Administrator();a.setName("王五");a.setAge(30);register(s);register(t);register(a);}public static  void register(Person p) {p.show();}
//    學生的信息為:張三,18
//    老師的信息為:李四,50
//    管理員的信息為:王五,30
}

調用成員的特點

變量調用:編譯看左邊,運行也看左邊

方法調用:編譯看左邊,運行看右邊

優勢

? ? ? ? 在多態形態下,右邊對象可以解耦合,便于擴展和維護。

? ? ? ? 定義方法時,使用父類做參數,可以接收所有子類,體現多態的擴展性和便利

?劣勢

?不能調用子類的特有功能,使用時需要進行強制類型轉換。轉換時使用instanceof關鍵字進行判斷

????????包就是文件夾,用來管理不同功能的java類,方便后續的代碼維護

包名取名規則:見名知意

注意事項:

? ? ? ? 使用同一包中的類,不需要導包

? ? ? ? 使用java.lang包中的類,不需要導包

? ? ? ? 如果同時使用兩個包的同名類,需要用全類名

final關鍵字

修飾對象作用
方法表明該方法是最終方法,不能被重寫

表明類是最終類,不能被繼承

變量叫做常量,只能被賦值一次

常量?

? ? ? ? 常量一般作為系統的配置信息,方便維護,提高代碼可讀性。

命名規范:

? ? ? ? ? ? ? ? 單個單詞:全部大寫

? ? ? ? ? ? ? ? 多個單詞:全部大寫,單詞之間用下劃線隔開?

注意事項:

? ? ? ? final修飾的變量是基本數據類型,那么變量存儲的地址值不能發生變化。

? ? ? ? final修飾的變量是引用數據類型,那么變量存儲的地址值不能發生變化,對象內部可以改變

?權限修飾符

?權限修飾符:用來控制一個成員被訪問的范圍

作用:可以修飾成員變量,成員方法,構造方法,內部類

分類

修飾符同一個類中同一個包中其他類不同包下的子類不同包下的無關類
private
空(默認)
protected
public

代碼塊

  • 局部代碼塊
  • 構造代碼塊
  • 靜態代碼塊

局部代碼塊?

????????????????用于限定變量生命周期,提高內存利用率。

構造代碼塊

? ? ? ? ? ? ? ? 寫在成員位置的代碼塊,優先構造方法執行的。

靜態代碼塊

? ? ? ? ? ? ? ? 需要static關鍵字修飾,隨著類的加載而加載,并且自動觸發,只執行一次。

抽象類

抽象類:

? ? ? ? ? ? ? ? 如果一個類中存在抽象方法,那么該類必須被聲明為抽象類

定義格式? ??

public abstract class 類名{}

抽象方法:

????????????????將共性的行為抽取到父類之后。由于每個子類執行的內容不一樣,所以在父類中不能確定每個子類的方法體

定義格式? ?

public abstract 返回值類型 方法名(參數列表);

注意事項

  • 抽象類不能實例化
  • 抽象類中不一定有抽象方法,有抽象方法的類一定是抽象類
  • 可以有構造方法
  • 抽象類的子類需要重寫抽象類中的所有抽象方法,或者子類也是抽象類

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

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

相關文章

代碼隨想錄算法訓練營第五天

● 自己看到題目的第一想法 242. 有效的字母異位詞 方法&#xff1a; 方法一&#xff1a; 暴力法 1. 分別對s, t排序 2. 遍歷s與t 判斷s[i]!t[i] 返回 false 否則 返回true思路&#xff1a; 注意&#xff1a; 代碼&#xff1a; bool cmp(char a, char b){return a<b;…

網站搭建的基本流程是什么?

網站搭建的基本流程是什么? 我們選擇了白嫖雨云的二級域名 瀏覽器輸入https://www.rainyun.com/z22_ 創建賬號然后選擇一個你喜歡的子域名我建議后綴選擇ates.top的 選擇自定義地址&#xff0c;類型選擇cname 現在要選擇記錄值了&#xff0c;有a&#xff0c;aa&#xff0c;txt…

【Logback】Logback 的配置文件

目錄 一、初始化配置文件 1、logback 配置文件的初始化順序 2、logback 內部狀態信息 二、配置文件的結構 1、logger 元素 2、root 元素 3、appender 元素 三、配置文件中的變量引用 1、如何定義一個變量 2、為變量設置默認值 3、變量的嵌套 In symbols one observe…

Swift的基本數據類型

1. Int類型&#xff1a;用于表示整數&#xff0c;包括正整數和負整數。 let age: Int 30 let numberOfStudents 50 2. Double和Float類型&#xff1a;用于表示浮點數&#xff0c;即帶有小數點的數值。Double提供更高的精度&#xff0c;而Float提供較低的精度。 let pi: Do…

如何壓縮word文檔中的圖片大小?一鍵批量壓縮~

在日常工作和學習中&#xff0c;我們經常需要創建和編輯Word文檔&#xff0c;并在其中插入圖片來豐富內容。然而&#xff0c;隨著圖片的增加&#xff0c;Word文檔的大小可能會急劇增加&#xff0c;導致文件變得龐大&#xff0c;不便于傳輸和共享。針對這個問題&#xff0c;本文…

C++/WinRT教程(第四篇)WinRT 的錯誤和異常處理

目錄 前言 避免捕獲和拋出異常 捕獲異常 拋出異常 編輯API時拋出異常 使用 noexcept 時如何調試 調用同步代碼 快速失敗 斷言 前言 本文主要介紹 C/WinRT 中的異常如何使用以及使用原則&#xff0c;如果你剛開始接觸WinRT&#xff0c;建議先閱讀第一篇。 C/WinRT教程…

67-箭頭函數,new.target,模版字符串

1.箭頭函數 ES6新增語法&#xff0c;用來簡化函數的書寫()>{} <script>//箭頭函數的基本使用let a (a,b)>{return ab;}let c a(1,2);console.log(c);//輸出3</script> 2.簡寫形式&#xff1a; 2.1參數&#xff1a;只有一個參數時可以省略小括號a>{}&…

面試經典 150 題 ---- 輪轉數組

面試經典 150 題 ---- 輪轉數組 輪轉數組方法一&#xff1a;使用額外的數組方法二&#xff1a;數組翻轉 輪轉數組 方法一&#xff1a;使用額外的數組 我們可以使用額外的數組來將每個元素放至正確的位置。用 n 表示數組的長度&#xff0c;我們遍歷原數組&#xff0c;將原數組…

Java底層自學大綱_JVM篇

JVM專題_自學大綱所屬類別學習主題建議課時&#xff08;h&#xff09; A 深入理解Java虛擬機001 JVM類加載器設計原理2.5 A 深入理解Java虛擬機002 基于SPI破解雙親委派機制2.5 A 深入理解Java虛擬機003 JVM內部結構分析2.5 A 深入理解Java虛擬機004 字符串常量池原理2.5 …

【算法】長短期記憶網絡(LSTM,Long Short-Term Memory)

這是一種特殊的循環神經網絡&#xff0c;能夠學習數據中的長期依賴關系&#xff0c;這是因為模型的循環模塊具有相互交互的四個層的組合&#xff0c;它可以記憶不定時間長度的數值&#xff0c;區塊中有一個gate能夠決定input是否重要到能被記住及能不能被輸出output。 原理 黃…

37.云原生之springcloud+k8s+GitOps+istio+安全實踐

云原生專欄大綱 文章目錄 準備工作項目結構介紹配置安全測試ConfigMapSecret使用Secret中數據的方式Deployment使用Secret配置Secret加密 kustomize部署清單ConfigMap改造SecretSealedSecretDeployment改造Serviceistio相關資源DestinationRuleGatewayVirtualServiceServiceAc…

132557-72-3,2,3,3-三甲基-3H-吲哚-5-磺酸,具有優異的反應活性和光學性能

132557-72-3&#xff0c;5-Sulfo-2,3,3-trimethyl indolenine sodium salt&#xff0c;2,3,3-三甲基-3H-吲哚-5-磺酸&#xff0c;具有優異的反應活性和光學性能&#xff0c;一種深棕色粉末 您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;132557-72-3&#xff0c;5…

ROS2體系框架

文章目錄 1.ROS2的系統架構2.ROS2的編碼風格3.細談初始化和資源釋放4.細談配置文件5.ROS2的一些命令6.ROS2的核心模塊6.1 通信模塊6.2 功能包6.3 分布式6.4 終端命令和rqt6.5 launch6.6 TF坐標變換6.7 可視化RVIZ 1.ROS2的系統架構 開發者的工作內容一般都在應用層&#xff0c;…

MySQL學習Day24—數據庫的設計規范

一、數據庫設計的重要性: 1.糟糕的數據庫設計產生的問題: (1)數據冗余、信息重復、存儲空間浪費 (2)數據更新、插入、刪除的異常 (3)無法正確表示信息 (4)丟失有效信息 (5)程序性能差 2.良好的數據庫設計有以下優點: (1)節省數據的存儲空間 (2)能夠保證數據的完整性 …

力扣138.隨機鏈表的復制

給你一個長度為 n 的鏈表&#xff0c;每個節點包含一個額外增加的隨機指針 random &#xff0c;該指針可以指向鏈表中的任何節點或空節點。 構造這個鏈表的 深拷貝。 深拷貝應該正好由 n 個 全新 節點組成&#xff0c;其中每個新節點的值都設為其對應的原節點的值。新節點的 n…

編寫一個自動合并代碼到不同分支的腳本小工具

新建一個 autoMerge.sh 的文件&#xff0c;文件內容如下 # 提示用戶確認繼續執行 read -p "確認要執行腳本嗎&#xff1f;(輸入 yes 繼續): " userInput# 檢查用戶輸入是否為 "yes" if [ "$userInput" ! "yes" ]; thenecho "用戶…

《TCP/IP詳解 卷一》第9章 廣播和組播

目錄 9.1 引言 9.2 廣播 9.2.1 使用廣播地址 9.2.2 發送廣播數據報 9.3 組播 9.3.1 將組播IP地址轉換為組播MAC地址 9.3.2 例子 9.3.3 發送組播數據報 9.3.4 接收組播數據報 9.3.5 主機地址過濾 9.4 IGMP協議和MLD協議 9.4.1 組成員的IGMP和MLD處理 9.4.2 組播路由…

可用于智能客服的完全開源免費商用的知識庫項目

介紹 FastWiki項目是一個高性能、基于最新技術棧的知識庫系統&#xff0c;專為大規模信息檢索和智能搜索設計。利用微軟Semantic Kernel進行深度學習和自然語言處理&#xff0c;結合.NET 8和MasaBlazor前端框架&#xff0c;后臺采用.NET 8MasaFrameworkSemanticKernel&#xff…

嵌入式Linux學習DAY26

管道的作用&#xff1a;進程間的通信 無名管道&#xff1a; 只能在父子進程中進行通信 pipe int pipe(int pipefd[2]); 功能: 創建一個無名管道 參數: pipefd[0]:讀管道文件描述符 pipefd[1]:寫管道文件描述符 …

【InternLM 實戰營筆記】基于 InternLM 和 LangChain 搭建MindSpore知識庫

InternLM 模型部署 準備環境 拷貝環境 /root/share/install_conda_env_internlm_base.sh InternLM激活環境 conda activate InternLM安裝依賴 # 升級pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install str…