1. 程式人生 > 其它 >PAT刷題4——成績排名

PAT刷題4——成績排名

技術標籤:JAVA

文章目錄

1.修飾屬性

Java中的靜態屬性和類相關,和具體的例項無關。也就是說同一個類的不同例項共用同一個靜態屬性。

public class T20210114 {
    public static void main(String[] args){
        Persion persion1=new Persion();
        persion1.count++;
        System.out.println(persion1.count);
        Persion persion2=
new Persion(); System.out.println(persion2.count); } } class Persion{ public static int count=0; }

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-DUF8vSEF-1610803680937)(C:\Users\ThinkPad\AppData\Roaming\Typora\typora-user-images\image-20210114110438105.png)]
由上述程式碼執行結果可以明顯看到兩個實體是共用被static修飾的屬性。

2.修飾方法

靜態方法屬於類,不屬於類的物件。

可以直接呼叫靜態方法,無需建立類的例項。

靜態方法可以直接訪問靜態資料成員,並且可以更改靜態資料成員的值。

public class T20210114 {
    public static void main(String[] args){
       Persion.
print(); } } class Persion{ public static int count=0; public static void print(){ System.out.println(count); count++; System.out.println(count); } }

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-D80X23tx-1610803680941)(C:\Users\ThinkPad\AppData\Roaming\Typora\typora-user-images\image-20210114160254429.png)]

由上述程式碼執行結果可以看出靜態方法可以將該類內的靜態資料進行更改。並且靜態方法可以不使用實體進行呼叫。

3.修飾程式碼塊

首先我們來了解一下什麼是程式碼塊,程式碼塊是程式中{ }內的部分。

程式碼塊可以分為四種:普通程式碼塊、構造程式碼塊、靜態程式碼塊、同步程式碼塊。

普通程式碼塊是直接使用{ }進行定義的這種一般很少見。

構造塊是定義在類中的程式碼塊(不加修飾符)也稱為例項程式碼塊。構造程式碼塊一般用於初始化例項成員變數。

public class Person {
    public String name; //例項成員變數
    public int age;
    public String sax;
    //例項程式碼塊
    {
        this.name="zhangsan";
        this.age=12;
        this.sax="男";
    }

}

靜態程式碼塊是用static定義的程式碼塊,一般用於初始化靜態成員屬性。使用static修飾的程式碼塊就是這裡的。

public class Person {
    public String name; //例項成員變數
    public int age;
    public String sax;
    public static int count;
    //例項程式碼塊
    {
        this.name="zhangsan";
        this.age=12;
        this.sax="男";
    }
    static {
       count=100;//只能訪問靜態成員
    }

}

同步程式碼塊在之後會進行補充這裡暫時不談它。

4.修飾類(內部類)

被static修飾的內部類成為靜態內部類,靜態內部類類似於靜態屬性、靜態方法都是和當前類進行繫結的。

public class Person {
    static class A{

    }
    public static void main(String[] args){
        A a1=new Person.A();
    }

}