Java自動化測試(封裝和繼承 預習5)

方法/函數重載

規則:方法名一致,參數不一致,與返回值無關

  1. 參數的個數不一樣

  2. 參數的類型不一樣

  3. 參數的順序不一樣

package com.zhongxin.method;

public class Student {
    public void add(int a, int b) {
        System.out.println(a + b);
    }

    public void add(int a) {
        System.out.println(a);
    }

    public void add(int a, double b) {
        System.out.println(a + b);
    }

    public void add(double a, double b) {
        System.out.println(a + b);
    }
}
package com.zhongxin.method;

public class Test {
    public static void main(String[] args) {
        Student s = new Student();
        s.add(4, 3);
        s.add(4);
        s.add(4,3.0);
        s.add(4.0, 3.0);
    }
}

java內存

java內存包含了:

  • 方法區

  • 寄存器

  • 先進後出

  • 局部變量,方法都在棧中

  • new出來的對象在堆

封裝

通過函數的形式將一些代碼細節包裝起來,防止外部代碼的隨機訪問。

要訪問這些數據就必須通過調用函數來完成。

好處:

  • 提高了代碼的可讀性

  • 提高了代碼的可維護性

package com.zhongxin.method;

public class Phone {
    private int size;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        if (size < 1 || size > 10) {
            System.out.println("size設置失敗");
        } else {
            this.size = size;
        }
    }
}
package com.zhongxin.method;

public class Test2 {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.setSize(-2);
        int size = p.getSize();
        System.out.println(size);
    }
}

繼承

兩個類之間通過extends關鍵字來描述父子關係,子類可以擁有父類的公共方法和公共屬性。

  • 提高了代碼的複用性

  • 代碼的維護性更高

語法:

public class 父類{

}
public class 子類 extends 父類{

}

父類Phone

package com.zhongxin.extend;

public class Phone {
    private int size;
    private String brand;
    public String color;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public void call(){
        System.out.println("打電話");
    }

    public void show() {
        System.out.println("show...");
    }
}

子類Phone4S

package com.zhongxin.extend;

public class Phone4S extends Phone {
    public void siri() {
        System.out.println("你好");
    }
}

使用

package com.zhongxin.extend;

public class Test {
    public static void main(String[] args) {
        Phone p = new Phone();
        Phone4S p4 = new Phone4S();
        p.call();
        p4.call();
        p4.siri();
    }
}

注意

  1. 如果類不繼承任何類,默認繼承Object

  2. Java是單繼承(一個類只能繼承於一個類),多層繼承

  3. 創建本類對象之前會先初始化父類對象

  4. 子類不能繼承父類的private成員(屬性,方法)

    super

super指向父類

super()調用父類構造方法

this

this指向當前類(子類)

this()調用本類其他構造

方法重寫/覆蓋

前提條件:

  • 繼承或者實現

子父類中出現一摸一樣的方法

作用:

  • 方法升級

修飾符

訪問修飾符

  1. public

公共的

  1. protected

受保護的,必須繼承後才能訪問

  1. 默認修飾符

本類或者同一個包pakage下可以訪問

  1. private

私有的,只有本類可以訪問

上面1~4 權限依次降低

非訪問修飾符

  • static

靜態

  • final

常量

public final int b = 10;
final
  • abstract

抽象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章