API的使用(3)Arrays 類,Math類,三大特性--繼承

🍓🍓魯阿豔🐾🐾 發表於 2020-11-21

Arrays類

概述

  java.util.Arrays此時主要是用來運算元組,裡面提供了很多的操作API的方法。如【排序】和【搜尋】功能。其所有的方法均為靜態方法,呼叫起來非常簡單。

運算元組的方法

(public static String to String(int[] a):返回指定陣列內容的字串表示形式。
public static void main(String[] args){
    //初始int型別的陣列 動態初始化只指定長度,不指定內容,而靜態初始化只指定內容,不指定長度,兩者不能混合使用。
    int[] arr  = {12,34,5,26};
    //列印陣列,輸出記憶體地址值
    System.out.println(arr);//地址值
    
    //把陣列內容轉換成字串
    String str = Arrays.toString(arr);
    //列印字串 輸出陣列內容
    System.out.println(str);//[12,34,5,26] 內容順序不變
   
}
public static void sort(int[] arr):對指定陣列按照數字升序經行排序,從大到小

API的使用(3)Arrays 類,Math類,三大特性--繼承

練習:使用Arrays相關的API方法

API的使用(3)Arrays 類,Math類,三大特性--繼承

  public static intbinarySearch(int[] arr,int key):使用二分搜尋法來搜尋指定的int型陣列,以獲得指定的值,此時key指的是要搜尋的值,而方法返回值宣告的int值的是搜尋值的是搜尋對應的索引值
排序之後的新的陣列的索引值。

  使用binarySearch()方法。搜尋陣列當中的元素時,陣列必須時有序的【升序】,得到的索引值是排序之後的新的陣列的索引值。

如果沒有找到對應的元素,得到的索引值是負值

API的使用(3)Arrays 類,Math類,三大特性--繼承

public static void fill(int[] arr,int val):將指定的int值分配給指定int型陣列指定範圍中的每個元素。

API的使用(3)Arrays 類,Math類,三大特性--繼承

Math類

概述

  java.util.Math包含了用於執行基本數學運算的方法,如指數、冪次方、對數、平方根、三角函式等運算。裡面的方法均是靜態方法,並且也不需要建立物件,呼叫起來也是非常方便。

基本運算的方法

punlic static double ads(double a):返回double值的絕對值。

API的使用(3)Arrays 類,Math類,三大特性--繼承

public static double ceil (double a):返回值大於等於引數的最小整數。往上取整。

API的使用(3)Arrays 類,Math類,三大特性--繼承

public static double floor(double a):返回小於等於引數的最大整數。往下取整。

API的使用(3)Arrays 類,Math類,三大特性--繼承

public static long round(double a):返回最接近引數的 long 型別值。相當於四捨五入

API的使用(3)Arrays 類,Math類,三大特性--繼承

練習:使用Mach相關的api 方法,計算 -10.8到5.9之間的,絕對值大於6小於2.1的整數有多少個,分別是哪些陣列

API的使用(3)Arrays 類,Math類,三大特性--繼承

API的使用(3)Arrays 類,Math類,三大特性--繼承

繼承

概述

  如果多個類中存在相同的屬性和行為時,將這些內容抽取到單獨的一個類中,那麼多個類就無需再定義這些屬性和行為,只要去繼承這個單獨的類即可

  其中,多個類稱為子類,派生類,單獨的那一個類稱為父類、超類(superclass)、基承

  繼承描述的時事物之間的所屬關係,這種關係是一種 is-a 的關係,在繼承關係中,子類就是一個父類,也就是說子類個月被當作父類看待。

例如:父類是員工,子類是講師,那麼“講師就是一個員工”。關係:is-a

一般情況下,父類更通用,子類更具體。我們可以通過繼承,使多種事物形成一種關係體系。

定義

  繼承:就是子類繼承父類的屬性和行為,使得子類物件具有域父類具有相同的屬性、相同的行為,子類可以之間訪問父類中的【非私有】屬性和行為。

好處:

​   1,可以提高程式碼的複用性,

​   2,類與類之間可以產生一種關係,是【多型的前提】。

繼承的格式

通過extend關鍵字,可以宣告一個子類繼承另一個父類

public class FuClass{
    //...
}
public class ZiClass extends FuClass{
    //...
}

程式碼演示:

API的使用(3)Arrays 類,Math類,三大特性--繼承

繼承後的特點----成員變數

當類之間產生了關係後,其中各類中的常用變數有哪些影響?

​  常用變數不重名

​  如果子類父類中呼叫的成員變數名字不重名,這時的訪問是沒有任何影響的。程式碼演示

API的使用(3)Arrays 類,Math類,三大特性--繼承

成員變數重名

​  如果子類父類出現重名的成員方法,這時訪問是有影響的,程式碼演示:

API的使用(3)Arrays 類,Math類,三大特性--繼承

​  1、在父子類的繼承關係當中,如果採用變數重名,則建立子類物件時,訪問有兩種方式:

​  2、直接通過子類物件訪問成員變數:等號左邊是誰,就優先用誰,沒有會向上找

​  3、間接通過採用方法訪問成員變數:該方法屬於誰,就優先用誰,沒有則就繼續向上找

​  子父類中出現了重名的採用變數時,在子類中想要訪問父類中的非私有成員變數時,需要使用super 關鍵字,修飾父類從成員變數,類似於this 操作。

使用格式:

super.父類的成員變數

子類方法中的程式碼需要修改

public class Zi extends Fu {
    // 定義子類中的成員變數
    int num = 20;
    // 定義子類中的成員方法
    public void show() {
        // 訪問父類中的成員變數 num
        System.out.println("父類中的成員變數num = " + super.num);// 10
        // 訪問子類中的成員變數 num
        System.out.println("子類中的成員變數num = " + num);// 
    }  
}
// 結果展示
// 10
// 20

​​  備註:Fu類中的成員變數是非私有的,子類中可以直接訪問,若Fu類中的成員變數私有了,子類不能直接訪問。通常編碼時,我們遵循的是封裝的原則,使用private關鍵字修飾成員變數,那麼如何訪問父類中的私有成員變數呢?可以藉助於父類中的提供的公共的setXxx和getXxx方法。