Java學習筆記之main方法和程式碼塊
阿新 • • 發佈:2018-12-25
還記得我們寫的第一個Java程式,hello world嗎?
public Class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
這段程式碼非常簡單,作用就是呼叫main方法列印一句“Hello World!”
1、main方法
public static void main(String[] args)
- public:表示該方法可以被外部所呼叫
- static:表示此方法可以由類名稱直接呼叫
- void:主方法是程式的起點,所以不需要任何返回值
- main:系統規定好預設呼叫的方法名稱,執行的時候,預設找到main方法名稱
- String[] args:表示執行時的引數,引數傳遞的形式:類名稱 引數1 引數2 引數3 … 引數之間用空格分隔
如果一個程式執行時,要求必須輸入三個引數,否則無法執行,則可以在程式執行前加一個判斷
public Class HelloWorld{
public static void main(String[] args){
if(args.length!=3){
System.out.println("引數個數不對,無法執行");
System.exit(1); // 直接退出程式
}
for(int i=0;i<args.length;i++){
System.out.println("第" + (i+1) + "個引數:" + args[i]);
}
}
}
2、程式碼塊
程式碼塊其實從一開始寫程式就接觸到了,就是用 { } 括起來的一段程式碼,主要分為普通程式碼塊、構造塊、靜態程式碼塊、同步程式碼塊。
2.1 普通程式碼塊
直接定義在方法裡的程式碼塊稱為普通程式碼塊
public Class HelloWorld{
public static void main(String[] args){
{ // 普通程式碼塊
int x = 10; // 區域性變數
System.out.println("普通程式碼塊:x = " + x);
}
int x = 100;
System.out.println("程式碼塊之外:x = " + x);
}
}
執行結果:
普通程式碼塊:x = 10
程式碼塊之外:x = 100
2.2 構造塊
定義在類裡的程式碼塊
public class ChapterFive {
public static void main(String[] args){
new Person();
new Person();
new Person();
}
}
class Person{
{ // 直接在類中編寫程式碼,稱為構造塊
System.out.println("1、構造塊");
}
public Person(){
System.out.println("2、構造方法");
}
}
執行結果:
1、構造塊
2、構造方法
1、構造塊
2、構造方法
1、構造塊
2、構造方法
可以看到:構造塊先於構造方法執行,且多次執行,只要一例項化物件,就執行構造塊中的內容
2.3 靜態程式碼塊
直接用static宣告的程式碼塊就叫靜態程式碼塊
public class ChapterFive {
static{ // 在主方法的類裡定義靜態程式碼塊
System.out.println("主方法類裡定義靜態程式碼塊");
}
public static void main(String[] args){
new Person();
new Person();
new Person();
}
}
class Person{
{ // 直接在類中編寫程式碼,稱為構造塊
System.out.println("1、構造塊");
}
static { // 用static宣告的程式碼塊就叫靜態程式碼塊
System.out.println("0、靜態程式碼塊");
}
public Person(){
System.out.println("2、構造方法");
}
}
執行結果:
主方法類裡定義靜態程式碼塊
0、靜態程式碼塊
1、構造塊
2、構造方法
1、構造塊
2、構造方法
1、構造塊
2、構造方法
可以看到,靜態塊優於主方法先執行,在普通類中的靜態塊優先於構造塊執行,不管例項化多少個物件,靜態塊只執行一次,靜態程式碼塊的作用就是靜態屬性初始化,因為靜態屬性是全域性共有的,所以只需要執行一次即可。
2.4 同步程式碼塊
後面學到多執行緒再講