API的使用(3)Arrays 類,Math類,三大特性--繼承
阿新 • • 發佈:2020-11-22
##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方