1. 程式人生 > 其它 >AWS Graviton2上資料壓縮演算法效能比較

AWS Graviton2上資料壓縮演算法效能比較

內部類:在一個類的內部在定義一個完整的類。(套娃dog)

特點:

  • 編譯之後可生成獨立的位元組碼檔案。
  • 內部類可直接訪問外部類的私有屬性,而不破壞封裝。
  • 可為外部類提供必要的功能元件。

內部類分為:成員內部類、靜態內部類、區域性內部類和匿名內部類。


 

成員內部類:在類的內部定義,與實列變數,例項方法同級別的類。

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

      當外部類與內部類屬性重名時,優先訪問內部類屬性。

      內部類裡面不能包含靜態成員,但可以包含靜態常量

建立物件方式以及重名時如何呼叫外部類方式如下:

Outer outer = new
Outer(); Outer.Inner inner = outer.new Inner(); public class Outer { private int id = 110; private String name = "張三"; public void out(){ System.out.println("外部類的方法"); } public class Inner{ private int id = 120; private String name = "李四";
public void in(){ System.out.println("內部類的方法"); } //獲得外部類的私有屬性 public void getid(){ System.out.println(id); } //當外部內於內部類重名時,優先獲取內部類的資訊。 public void show(){ System.out.println(name); System.out.println(Outer.
this.name);//獲取外部類資訊。 } } }

 


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

Outer.Inner inner = new Outer.Inner();

 

public class Outer {

    private String name = "張三";
    private int age = 18;

    //靜態內部類和外部類同級
    static class Inner{
        private String address = "江西";private static int count = 19;

        public void show(){
            //訪問外部類屬性
            Outer outer = new Outer();
            System.out.println(outer.name);

            //呼叫靜態內部類的屬性
            System.out.println(Inner.count);//Inner可以不加
        }
    }
}

區域性內部類:定義在外部類的方法之中,作用範圍和建立物件範圍僅限於當前方法

//區域性內部類
public class Outer {
    private int phone = 1327783241;

    public void show1(){

        //定義區域性變數
        String name = "桐人";

        class Inner{//與方法同級

            private String address = "刀劍神域";

            public void show2(){
                //訪問外部類屬性
                System.out.println(phone);
                //或者這樣訪問System.out.println(Outer.this.phone);

                System.out.println(this.address);//或address

                //訪問區域性變數,jdk1.7要求變數必須是常量final,jdk1.8之後final可省略  自動新增
                System.out.println(name);

            }
        }
        //建立區域性內部類物件
        Inner inner = new Inner();
        inner.show2();
     //然後在main方法中定義Outer的物件 通過物件呼叫內部類所在的方法就可以啦 } }

匿名內部類:沒有類名的區域性內部類(一切特徵都與區域性內部類相同)

      必須繼承一個父類或者實現一個介面。

//在Usb介面中宣告一個service();方法


public class TestUsb {
    public static void main(String[] args) {

        //匿名內部類(相當於建立了一個區域性內部類)
        Usb usb = new Usb(){

            @Override
            public void service() {
                System.out.println("鍵盤連結成功,開始工作。。。");
            }
        };
        usb.service();
    }
}