1. 程式人生 > 實用技巧 >pytest+allure+requests-介面自動化測試

pytest+allure+requests-介面自動化測試

常用類

常用類:

  1. 內部類

  2. object類

  3. object類常用方法

  4. 包裝類

  5. string類

  6. BigDecimal類

內部類

定義:在類的內部定義一個完整的類

特點

  1. 編譯之後可以生成獨立的位元組碼檔案

  2. 內部類可以直接訪問外部類(這個內部類的一層外部)的私有成員,而不破壞封裝性

  3. 內部類可以為外部內提供必要的內部功能元件

分類:

  1. 成員內部類

  2. 靜態內部類

  3. 區域性內部類

  4. 匿名內部類

成員內部類

1.性質:

  1. 在類的內部定義,與例項變數,例項方法同級別的類

  2. 成員內部類不能包含靜態成員,但能包含靜態常量(新增final關鍵詞)

  3. 外部類的一個例項部分,建立內部類物件時,必須依賴外部類物件

//依賴外部類建立內部類
package com.yyl.calss;
//外部類
public class Outer {
//例項變數
private String name="adeair";
private int age=20;
//內部類
class Inner{
private String adress="山東";
private String phone="1234";
//方法
public void show(){
//列印外部類屬性
System.out.println(name);
System.out.println(age);
//列印內部類屬性
System.out.println(adress);
System.out.println(phone);
}
}
}
//依賴外部內建立內部類
package com.yyl.calss;

public class TestOuter {
public static void main(String[] args) {
//建立一個外部類物件
Outer outer=new Outer();
//建立一個內部類物件
Outer.Inner inner=outer.new Inner();
//一步到位
//Outer.Inner inner=new Outer().new Inner();
inner.show();
}
}
  1. 當外部類和內部類存在重名屬性時,會優先訪問內部類屬性

    //包括如何訪問重名的外部類屬性
    package com.yyl.calss;

    //外部類
    public class Outer{
    //例項變數
    private String name="adeair";
    private int age=20;
    //內部類
    class Inner{
    private String adress="山東";
    private String phone="1234";
    private String name="李四";//如果內部類屬性名和外部類屬性名字相同,加上out.this
    //方法
    public void show(){
    //列印外部類屬性
    System.out.println(name);//輸出“李四”
    System.out.println(Outer.this.name);//輸出“adeair”
    System.out.println(age);
    //列印內部類屬性
    System.out.println(adress);
    System.out.println(phone);
    }
    }
    }
    package com.yyl.calss;

    public class TestOuter {
    public static void main(String[] args) {
    //建立一個外部類物件
    Outer outer=new Outer();
    //建立一個內部類物件
    Outer.Inner inner=outer.new Inner();
    //一步到位
    //Outer.Inner inner=new Outer().new Inner();
    inner.show();
    }
    }

靜態內部類

1.性質:

  1. 不依賴外部類物件,可以直接建立或者通過類名訪問,可宣告靜態成員

  2. 只有內部類才可以用static

  3. 相當於外部類

    package com.yyl.class01;

    public class Outer {
    private String name="adeair";
    private String age="18";
    static class Inner{//靜態內部類,和外部類相同
    private String adress="山東";
    private String phone="1234";
    //靜態成員
    private static int money=1000;
    public void show(){
    //呼叫外部類屬性
    //首先建立外部類物件
    Outer outer=new Outer();
    //呼叫外部類物件屬性
    System.out.println(outer.name);
    System.out.println(outer.age);
    //呼叫靜態內部類屬性和方法
    System.out.println(adress);
    System.out.println(phone);
    //呼叫靜態內部類靜態屬性
    System.out.println(Inner.money);
    }
    }
    }
    package com.yyl.class01;

    public class TestOuter {
    public static void main(String[] args) {
    Outer.Inner inner=new Outer.Inner();
    //呼叫方法
    inner.show();
    }
    }

區域性內部類

1.性質

  1. 定義在外部類方法內,作用範圍和建立物件範圍僅限於當前範圍

  2. 區域性內部類前不能加任何訪問修飾符(相當於方法成員)

  3. 不能包含static成員,但可以包含final static成員(常量)

  4. 區域性內部類訪問外部類當前方法中的區域性變數時,因無法保證生命週期與自己相同,變數必須修飾為final

    package com.yyl.class03;

    public class Outer {
    private String name="劉德華";
    private int age=35;
    public void show(){
    //定義區域性變數
    final String adress="山東";//finnal可以省略,jdk1.8預設自動新增final
    /*為什麼加final
    因為函式執行完之後adress變數會消失,
    而Inner類和inner物件不會消失,所以
    在最後的輸出adress時,adress只有聲
    明為final常量才行(因為常量會在執行時
    被替代為對應常量,例如adress被替換為
    ”山東“)*/
    //區域性內部類不能加訪問修飾符
    class Inner{
    private String phone="1234";
    private String email="[email protected]";

    public void show2(){
    //訪問外部類屬性
    System.out.println(Outer.this.name);
    System.out.println(Outer.this.age);
    //訪問內部類
    System.out.println(this.phone);
    System.out.println(this.email);
    //訪問區域性變數,jdk1.7要求變數必須是常量
    //jdk 1.8自動新增final
    //區域性變數不能修改
    System.out.println(adress);
    }
    }
    //建立區域性內部類物件
    Inner inner=new Inner();
    inner.show2();
    }
    }
    package com.yyl.class03;

    public class TestOuter {
    public static void main(String[] args) {
    //不能直接呼叫Inner
    //直接呼叫Outer.show沒有輸出
    //在class inner外建立區域性內部類物件之後可以直接呼叫函式列印結果
    Outer outer=new Outer();
    outer.show();

    }
    }