1. 程式人生 > 資訊 >華為進軍鈉離子電池領域,旗下深圳哈勃入股中科海鈉

華為進軍鈉離子電池領域,旗下深圳哈勃入股中科海鈉

main 方法理解

public static void main( String[] args ){}  -- 程式的入口(只有類中有main方法時,類中右鍵才有run選項)
各個關鍵詞解釋:static直接呼叫(此時還沒建立物件),void(虛擬機器無需返回值),public(虛擬機器直接訪問,不在當前包中),arg (亦可以作為跟控制檯互動的一種方式,run config :執行時引數,需要先編譯下才可以看到當前類 中間一個空格分開)
final:final 修飾類表示該類功能完備不可繼承(如String、System),修飾方法表示該方法無新花樣不可重寫,修飾屬性表示屬性不可修改(對於物件屬性表示物件不可變更如修飾人則表示人不可變更但是人的年齡是可以變得即被修飾物件屬性是可變的)。

異常:異常都是執行時才會發生,一旦出現異常,就會在異常程式碼處生成一個異常類的物件,並將此物件丟擲。異常排出給呼叫者如果一直丟擲到main沒處理拋到虛擬機器,則虛擬機器停止。
編譯時異常:大概率會出現的異常,編譯時會提醒處理的異常。如IOException、FileNotFoundException (一般呼叫的方法會直接或者間接繼承Exception而不是RuntimeException)
執行時異常:小概率會出現的異常,編譯時可以不用處理的異常,但執行時可能會發生異常。(一般呼叫的方法會直接或者間接繼承RuntimeException)

列舉類:
class Festerbel{
    private String code;
    private String mesg;
    
    private static final Festerbel SPRING = new Festerbel("3","Spring");

    private Festerbel(String code, String mesg) {
        this.code = code;
        this.mesg = mesg;
    }
}
列舉類由於是固定的值所以final 直接呼叫static . 簡化的話去掉private static final Festerbel 和 new Festerbel 變成 :
enum  Festerbel{
    SPRING("3","Spring"),
    SUMMER("4","SUMMER");
    private String code;
    private String mesg;
    
    private Festerbel(String code, String mesg) {
        this.code = code;
        this.mesg = mesg;
    }
}

程式碼塊的作用:初始化類、物件 如果有修飾的話只能是static。靜態程式碼塊隨著類載入一次,非靜態程式碼塊隨著物件每建立一次就執行一次

載入順序:物件使用時才開始載入,先載入類資訊(包括靜態資訊)
package luofu.com.cn.dto;

public class Parent {

    public static void main(String[] args) {
        Sub2 sub2 = new Sub2();  -- 呼叫Sub2構造方法,Sub2構造方法中第一行super()呼叫父類Sub1初始化構造,sub1呼叫parent構造。此時用到物件就開始執行程式碼塊及構造方法。
    }

    static{
        System.out.println("parent static block");
    }
    {
        System.out.println("parent block");
    }
    public Parent(){
        System.out.println("Parent construct");
    }
}
class Sub1 extends Parent{
    static{
        System.out.println("Sub1 static block");
    }
    {
        System.out.println("Sub1 block");
    }
    public Sub1(){
        System.out.println("Sub1 construct");
    }
}
class Sub2 extends Sub1{
    static{
        System.out.println("Sub2 static block");
    }
    {
        System.out.println("Sub2 block");
    }
    public Sub2(){
        System.out.println("Sub2 construct");
    }
}
執行結果:
parent static block
Sub1 static block
Sub2 static block
parent block
Parent construct
Sub1 block
Sub1 construct
Sub2 block
Sub2 construct

** Itelator **

for 中 Itelator.next 給到了形參,改變的是形參