第二十九節:Java基礎知識-類,多態,Object,數組和字元串

来源:https://www.cnblogs.com/dashucoding/archive/2018/08/15/9484722.html
-Advertisement-
Play Games

前言 基礎知識 類,多態, ,數組和字元串,回顧,繼承,類的多態性,多態,向上轉型和向下轉型, ,數組,多維數組,字元串,字元串比較。 回顧 類的定義格式: 類的修飾符: ,`abstract final`等。 private protected public default(預設) 繼承 繼承是 ...


標題圖

前言

Java基礎知識-類,多態,Object,數組和字元串,回顧,繼承,類的多態性,多態,向上轉型和向下轉型,Object,數組,多維數組,字元串,字元串比較。

回顧

類 .png

類的定義格式:

[類的修飾符] class 類的名稱 [extends 父類名稱][implements 介面名稱列表] {  
       變數的定義以及變數的初始化;
       方法的定義以及方法體;
}

類的修飾符:publicabstractfinal等。

  • private
  • protected
  • public
  • default(預設)

繼承

繼承是java中的特性,繼承可以實現代碼的復用性,繼承的類為子類,被繼承的類為父類,java中不支持多重繼承,但可以通過介面實現。

class DemoClass extends SuperClass{
 …
}

類的多態性

多態的體現:覆蓋與重載

多態

多態是為了提高功能的擴展性,提高復用,為父類的引用指向了子類的對象,多態,多種形態的體現。

父類引用指向子類對象,並調用子類的覆蓋方法,就是多態,註意父類的引用不能隨便強加轉為子類類型,因為強轉可能會出錯,在轉換前先使用instanceof判斷父類是否可以轉換為子類

abstract class Animal{
 public abstract void eat();
}

多態原理:

Dog d = new  Dog();
Animal a = new Dog();
Cat c = new Catt();
Animal aa = new Cat();

向上轉型和向下轉型

Cat c = new Catt();
Animal aa = new Cat();

Animal a = new Animal();
Cat c = (Cat) a;

向上轉型為了提高程式的擴展性,向下轉型之前要進行類型的判斷,否則容易發生classCastException異常,判斷類型的關鍵字為instanceof

if(a instanceof Cat){
 Cat c = (Cat)a;
 c.catchMouse();
}else if(a instanceof Dog){
 Dog d = (Dog)a;
 d.lookHome();
}

Object

Object是類層次結構的根類,存在java.lang.Object中。

方法 說明
clone() 創建並返回此對象的一個副本
equals() 指某個對象是否與此對象“相等”
finalize() 當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法
getClass() 返回對象運行時類
hashCode 返回該對象的哈希碼值
notify() 喚醒在此對象等待的單個線程
notifyAll() 喚醒所有線程
toString() 返回該對象的字元串表示
wait() 線程等待,直到其他線程調用此對象的notify() 或 notifyAll()

構造方法:public Object()

  1. finalize()方法:java的垃圾回收時機
  2. Object的toString()方法:返回的是對象的字元串形式
  3. Object的equals()方法:比較兩個對象是否相等

數組

Java數組.png

數組是同種類型的數據集合,數組中放的每個數據為數組中的一個元素,元素的數量為數組的長度,為數組名.length

數組的定義:

數組的數據類型[] 變數名;
數組的數據類型 變數名[];

java數組實際上是對象,通過new創建對象,數組的下標不低於0,也比數組的元素個數小,在使用數組下標時,可能會產生ArrayIndexOutOfBoundsException錯誤,要小心了。

多維數組

int[][] a = new int[2][3];

圖片

數組與字元串.png

數組的使用步驟:

  1. 聲明數組
  2. 創建數組
  3. 使用數組元素

字元串

字元串常量
聲明字元串變數
創建字元串
獲取字元串長度

字元串比較

==:比較兩個字元串是否為同一個對象
equals():比較兩個字元串的內容是否相同

檢索:indexOf()
截取:substring()
替換:replace()
忽略大小寫比較:equalsIgnoreCase()
字元串首碼、尾碼是否為指定字元串:startWith()、endWith()
字元串轉換:parseInt()、parseByte()、parseShort()、parseLong()、parseDouble()
數值轉換為字元串:valueOf()
對象的字元串:toString()

結語

  • 本文主要講解 Java基礎知識-類,多態,Object,數組和字元串
  • 下麵我將繼續對Java、 Android中的其他知識 深入講解 ,有興趣可以繼續關註
  • 小禮物走一走 or 點贊

送❤


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • KeepAlive--高可用解決方案 究竟啥才是互聯網架構“高可用” ...
  • 前言:在之前的面試中,每每問到關於Java I/O 方面的東西都感覺自己吃了大虧..所以這裡搶救一下..來深入的瞭解一下在Java之中的 I/O 到底是怎麼回事..文章可能說明類的文字有點兒多,希望能耐心讀完.. 什麼是 I/O? 學習過電腦相關課程的童鞋應該都知道,I/O 即輸入Input/ 輸 ...
  • 內部類 內部類可以直接訪問外部類,但是外部類要訪問內部類中的成員變數,就必須要創建內部類的對象。 外部類如果不創建外部類對象,就不能直接創建內部了對象 內部類可訪問外部類,而且不破壞封裝 內部類的分類: 1. 靜態內部類 2. 局部內部類 3. 成員內部類 4. 匿名內部類 成員內部類: 在成員變數 ...
  • 需求:python如何實現普通用戶登錄伺服器後切換到root用戶再執行命令 解決參考: 代碼: 遇到問題: 思路:經過檢查發現這個是中文字元集和英文字元集返回密碼格式不同導致的,在代碼中加入:ssh.send(' export LANG=en_US.UTF-8 \n'),即可解決上述問題 因為中文和 ...
  • 給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2] 輸出: 4 def make( ...
  • 給定一個字元串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。 說明:本題中,我們將空字元串定義為有效的迴文串。 示例 1: 輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2: 輸入: "race a car" 輸出: false ...
  • 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個演算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。 註意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 7 解釋: 在第 ...
  • 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多只允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 註意你不能在買入股票前賣出股票。 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 5 解釋: 在第 2 天(股票價格 = 1)的時 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...