1. 程式人生 > >API的使用(3)Arrays 類,Math類,三大特性--繼承

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

##Arrays類 ####概述   java.util.Arrays此時主要是用來運算元組,裡面提供了很多的操作API的方法。如【排序】和【搜尋】功能。其所有的方法均為靜態方法,呼叫起來非常簡單。 ####運算元組的方法 #####(public static String to String(int[] a):返回指定陣列內容的字串表示形式。 ```java 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):對指定陣列按照數字升序經行排序,從大到小 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121225645023-117437722.png) ####練習:使用Arrays相關的API方法 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121225748232-1148451054.png)   public static intbinarySearch(int[] arr,int key):使用二分搜尋法來搜尋指定的int型陣列,以獲得指定的值,此時key指的是要搜尋的值,而方法返回值宣告的int值的是搜尋值的是搜尋對應的索引值 排序之後的新的陣列的索引值。   使用binarySearch()方法。搜尋陣列當中的元素時,陣列必須時有序的【升序】,得到的索引值是排序之後的新的陣列的索引值。 如果沒有找到對應的元素,得到的索引值是負值 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121230825922-1146314673.png) #####public static void fill(int[] arr,int val):將指定的int值分配給指定int型陣列指定範圍中的每個元素。 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121231102518-564990735.png) ##Math類 ####概述   java.util.Math包含了用於執行基本數學運算的方法,如指數、冪次方、對數、平方根、三角函式等運算。裡面的方法均是靜態方法,並且也不需要建立物件,呼叫起來也是非常方便。 ####基本運算的方法 #####punlic static double ads(double a):返回double值的絕對值。 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121231706530-47604375.png) #####public static double ceil (double a):返回值大於等於引數的最小整數。往上取整。 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232059104-952151008.png) #####public static double floor(double a):返回小於等於引數的最大整數。往下取整。 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232127228-1361778589.png) #####public static long round(double a):返回最接近引數的 long 型別值。相當於四捨五入 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232217333-294923743.png) #####練習:使用Mach相關的api 方法,計算 -10.8到5.9之間的,絕對值大於6小於2.1的整數有多少個,分別是哪些陣列 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232253732-1404717920.png) ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232310967-824258982.png) ##繼承 ###概述   如果多個類中存在相同的屬性和行為時,將這些內容抽取到單獨的一個類中,那麼多個類就無需再定義這些屬性和行為,只要去繼承這個單獨的類即可   其中,多個類稱為子類,派生類,單獨的那一個類稱為父類、超類(superclass)、基承   繼承描述的時事物之間的所屬關係,這種關係是一種 is-a 的關係,在繼承關係中,子類就是一個父類,也就是說子類個月被當作父類看待。 例如:父類是員工,子類是講師,那麼“講師就是一個員工”。關係:is-a 一般情況下,父類更通用,子類更具體。我們可以通過繼承,使多種事物形成一種關係體系。 ###定義   繼承:就是子類繼承父類的屬性和行為,使得子類物件具有域父類具有相同的屬性、相同的行為,子類可以之間訪問父類中的【非私有】屬性和行為。 ####好處: ​   1,可以提高程式碼的複用性, ​   2,類與類之間可以產生一種關係,是【多型的前提】。 ####繼承的格式 通過extend關鍵字,可以宣告一個子類繼承另一個父類 ```java public class FuClass{ //... } public class ZiClass extends FuClass{ //... } ``` 程式碼演示: ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232715383-717686873.png) ###繼承後的特點----成員變數 當類之間產生了關係後,其中各類中的常用變數有哪些影響? ​  常用變數不重名 ​  如果子類父類中呼叫的成員變數名字不重名,這時的訪問是沒有任何影響的。程式碼演示 ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121232853042-1065182908.png) #####成員變數重名 ​  如果子類父類出現重名的成員方法,這時訪問是有影響的,程式碼演示: ![](https://img2020.cnblogs.com/blog/2195823/202011/2195823-20201121233001128-1744214253.png) ​  1、在父子類的繼承關係當中,如果採用變數重名,則建立子類物件時,訪問有兩種方式: ​  2、直接通過子類物件訪問成員變數:等號左邊是誰,就優先用誰,沒有會向上找 ​  3、間接通過採用方法訪問成員變數:該方法屬於誰,就優先用誰,沒有則就繼續向上找 ​  子父類中出現了重名的採用變數時,在子類中想要訪問父類中的非私有成員變數時,需要使用super 關鍵字,修飾父類從成員變數,類似於this 操作。 使用格式: super.父類的成員變數 子類方法中的程式碼需要修改 ```java 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方