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):對指定數組按照數字升序經行排序,從大到小

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

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

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

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

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

Math類

概述

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

基本運算的方法

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

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

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

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

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

繼承

概述

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

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

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

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

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

定義

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

好處:

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

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

繼承的格式

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

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

程式碼演示:

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

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

​  常用變數不重名

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

成員變數重名

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

​  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方法。