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