1. 程式人生 > 實用技巧 >第十天

第十天

Arrays類
什麼是Arrays類:
java.util.Arrays包下,主要是用來運算元組,裡面提供很多操作api方法,主要是【排序】和【搜尋】方法
特點
1.主要用來運算元組
2.裡面封裝的全部都是靜態方法,呼叫簡單 類名.方法名。
操作方法(運算元組)
1.public static String toString(int[] arr) 返回指定陣列的字串形式

2.public static void sort(int[] arr): //陣列從小到大升序排序

3.public static int binarySearch(int[] arr,int key); 使用二分搜尋法,來搜尋指定的int陣列,以獲得指定數值,key指的是在陣列中要要搜尋的值,返回值int表示搜尋之所在的索引。二分搜尋法,一半一半的搜尋
注意:
1.使用的時候陣列元素必須先經過【升序排序】在進行搜尋得到之後的索引值是排序之後的索引值
2.沒找到返回【負數值】

4.public static void fill(int[] arr,int val); 把val值填滿陣列

Math類:
什麼是math類:
java.longl.Math; 用於基本數學運算

特點:
1.包含了很多的基本數學運算,指數,冪次方,平方根,三角函式
2.裡面的方法都是靜態方法·,可以直接呼叫。

操作使用
1.public static double abs(double a); 返回double值得絕對值
2.public static double ceil(double a); 數字往上取整,返回大於等於引數的最小整數
3.public static double floor(double a); 向下取整,返回小於等於引數最小整數
4.public static long round(double a);返回最接近引數的long型別,傳入float,返回int型別。四捨五入

繼承

什麼是繼承?
1.多個類中存在相同的屬性和內容。。。。我們可以把相同的屬性和行為,存放到單獨類中,多個類就不用再單獨宣告。。。。繼承父類就可以,使用這些屬性和行為了。

2.多個類稱為子類:派生類。。。。。。單獨類稱為父類:超類,基類

3.繼承描述的是事物之間的所屬關係,【is-a】關係,繼承關係中【子類就是一個父類】,例如【講師就是一個員工】。【is-a】-----------【講師是一個員工】。

4.父類更通用,子類更具體,使多種事物形成關係體系。

定義
繼承就是:繼承繼承父類中【非私有】的屬性和行為,使得子類物件與父類有相同的屬性和行為,子類可以直接訪問父類中【非私有的屬性和行為】。繼承主要解決問題就是共性【抽取效果】

優點
1.提高程式碼複用性
2.類與類之間可以長生一種關係,是【多型的前提】

繼承格式

通過【extends】關鍵字可以宣告一個子類繼承另一個父類

public class FuClass{
    
}
public class Ziclass extends Fuclass{
    
}

程式碼演示

//定義一個員工類
public class Employee{
    String name;	//姓名
    int id;			//工號
    //定義一個員工工作方法
    public void work{
        System.out.println(name+"努力工作");
    }
}
//定義講師類,繼承員工類
public class Teacher extends Employee{
    //定義講課方法
    public void teach(){
         System.out.println("教學");
    }
}

//定義一個助教類
public class Ta extends Employee{
//助教類
    
}


//定義一個測試類
public class Test{
    public static void main(String[] args){
        //建立一個講師類
        Teacher t=new Teacher();
        //為該員工類的name屬性賦值,
        t.name="小張";
        //呼叫該員工中的講課方法
        t.teach();
        //呼叫teach中繼承過來的work方法
        t.wokrk();
        //使用助教裡面繼承的屬性和方法方法
        ta.name="如意";
        ta.work();
    }
}

解釋:就是說子類物件可以使用父類裡面【非私有】的屬性和方法,也能給他賦值,使用的理由就是很多子類的時候不用每個子類都去寫屬性很方便。

繼承和多型的關係
繼承是多型的前提,沒有繼承就沒有多型

繼承特點---成員變數:

1.成員變數不重名: 子類和父類中成員變數不重名,訪問沒有影響

public class Fu{
    int num=10;
}
public class Zi extends Fu{
    int num1=20;
    
    //定義成員方法
    public void show(){
        System.out.println("父類中的參與變數:"+num);
        System.out.println("子類中的成員變數:"+num1);
    }
}

public class Test1{
      public static void main(String[] args){
	//建立子類物件
    Zi zi=new Zi();
    //呼叫子類方法
    zi.show();
}
}

2.如果子類和父類吹醒那重名變數,這時候訪問是有影響的。父類中的成員變數依然在子類的當中

public class Fu{
    //定義父類中的成員變數
    int num=10;
}
public class Zi extends Fu{
    intn num=20;
    //定義成員方法
    public void show(){
        System.out.println("父類中的參與變數:"+num);
        System.out.println("子類中的成員變數:"+num);
    }
}

public class Test2{
      public static void main(String[] args){
	//建立子類物件
    Zi zi=new Zi();
    //呼叫子類方法
    zi.show();
    
}
}

備註:在父子類繼承關係中,如果成員變數重名了,則建立子類物件時候訪問有兩種方式;

1.直接通過子類物件訪問成員變數:等號左邊new 的哪個類,就會優先使用那個類裡面的成員變數,如果沒找到就像上去父類找

2.間接通過成員方法訪問成員變數,該方法屬於誰就優先用誰,不會向上去父類找成員變數,沒有才向上找

super關鍵字

如果父子類中出現了重名的成員變數,子類像訪問父類中【非斯有】成員變數時需要使用 【super關鍵字】,修飾父類的成員變數,

使用格式:
super.父類的成員變數名;

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

public class Zi extends Fu{
    intn num=20;
    //定義成員方法
    public void show(){
        System.out.println("父類中的參與變數:"+super.num);
        System.out.println("子類中的成員變數:"+num);
    }
}

備註:父類中的成員變數是非私有的,子類中可以直接訪問,私有之後子類不能直接訪問。遵循封裝原則,使用private修飾成員變數,所以子類不能直接訪問。值能借助父類提供的公共的setXxx和getXxx方法。