1. 程式人生 > 實用技巧 >第二天:方法

第二天:方法

方法

1 定義方法

  1. 定義一個方法的格式

     public static void 方法名稱(){
       	方法體
      }
    
  2. 方法名稱的命名規則和變數一樣,使用小駝峰

  3. 方法體:也就是大括號當中可以包含任意條語句

  4. 呼叫方法格式:

    方法名稱();
    

注意事項

  1. 方法定義的先後順序無所謂
  2. 方法的定義不能產生巢狀包含關係
  3. 方法定義好之後,不會執行的,如果想執行,一定進行方法的呼叫【呼叫】

方法例項

public class Demo11Method {
    public static void main(String[] args) {
        farmer(); // 呼叫農名伯伯的方法

        seller();

        cook();

        me();
    }

    public static void farmer() {
        //        農民伯伯
        System.out.println("播種");
        System.out.println("澆水");
        System.out.println("施肥");
        System.out.println("除蟲");
        System.out.println("收割");
        System.out.println("賣給小商販");
    }

    public static void seller() {
        //        小商販
        System.out.println("運輸到農貿市場");
        System.out.println("抬高價格");
        System.out.println("吆喝");
    }

    public static void cook() {
        //        廚子
        System.out.println("賣給廚子");
        System.out.println("洗菜");
        System.out.println("切菜");
        System.out.println("炒菜");
        System.out.println("裝盤");
    }

    public static void me() {
        //        我
        System.out.println("吃");
    }
}

2 byte/short/char

  1. 對於byte/short/char 三種類型來說,如果右側賦值的資料沒有超出範圍,那麼javac編譯將會自動隱含的為我們補上一個(byte)(short)(char)
  2. 如果沒有超出左側的範圍,編譯器補上強轉
  3. 如果右側超出左側範圍,那麼直接編譯器報錯

例項

public class Demo12Notice {
    public static void main(String[] args) {
        // 右側確實是一個int數字,但是沒有超過左側的範圍,就是正確的
        // int --> byte,不是自動型別轉換
        byte num1 = 30; // 將右側沒有超過左側的範圍
        System.out.println(num1); // 30

        // byte num2 = 128; // 右側超過左側的範圍

        // int --> char,沒有超過範圍
        // 編譯器會自動補上一個隱含的(char)
        char zifu = 65;
        System.out.println(zifu); // A
    }
}

3 編譯器的常量優化

  1. 在給變數進行賦值運算的時候,如果右側的表示式當中全都是常量,沒有任何變數
  2. 那麼編譯器 javac 將會直接將若干個常量表達式計算得到結果
  3. short result = 5 + 8; // 等號右邊全都是常量,沒有任何變數參與運算
  4. 編譯之後,得到的.class位元組碼檔案當中相當於:short result = 13;
  5. 右側的常量結果數值,沒有超出左側範圍,所以正確

注意事項

  1. 這稱為"編譯器的常量優化"
  2. 但是注意:一旦表示式當中有變數參與,那麼就不能進行這種優化了

例項

public class Demo13Notice {
    public static void main(String[] args) {
        short num1 = 10; // 正確寫法

        short a = 5;
        short b = 8;
        // short + short --> int + int --> int
        // short result = a + b; // 錯誤寫法!左側需要的是int型別

        // 右側不用變數,而是採用常量,而且只有兩個常量,沒有別人
        short result = 5 + 8;
        System.out.println(result); // 13
    }
}