JAVA入門級教學之(方法-1)

/*
    1.以下程序不使用"方法",分析一下程序會存在哪些優缺點?
        
        *以下的代碼都是完成兩個int類型數據的和,相同的代碼寫了三遍(只不過每一次參與求和的數據不同)
         代碼沒有的到重複使用
        
        *java語言中有一種機制:
            -某種功能代碼只需要寫一遍
            -要使用這個功能,只需要給這個功能傳遞具體的數據
            -這個功能完成後返回一個最終的結果
            -這樣就可以提高代碼的複用性【這就是"方法"】
    
    使用這個方法我們稱爲 "調用/invoke"


    2.方法的本質:是一段代碼片段,可以完成特定功能,可以重複利用
      方法在c語言叫做函數:function,可以理解爲方法就是函數
        

    3.注意:方法定義在類體中。而且獨立存在,所以說不存在方法體裏面在嵌套使用方法體


    4.一個類中可以定義多個方法,方法編寫的位置沒有先後順序,可以隨意

    5.方法體中不能再定義方法!!!!!!!!!!!!!!
    
    6.方法體中的代碼有順序要求!!!!!!!!!!!!!!

        -java代碼遵守自上而下的順序執行


    7.1.方法怎麼定義:語法結構:
        [修飾符列表]返回值類型 方法名(形式參數列表)
        {
            方法體;

        }


        2.對以上的語法結構進行解釋說明:

            2.1、關於修飾符列表
                *是一個可選項,不是必選項
                *目前統一寫成:public static
                *方法的修飾符列表中有static關鍵字的話,怎麼調用此方法?
                    -類名.方法名(實際參數列表);
    
            2.2、關於返回值類型
                *什麼是返回值:
                    -需要調用的方法返回給用戶的一個值,一個結果
                    -有些像垃圾回收機制的方法就不需要返回值,但是是作用在程序運行中    
                    -java中規定:當一個方法執行結束之後不返回任何數據的話,
                                 返回值類型位置必須編寫: void關鍵字
                                    -此時不能再編寫"return 返回值;"這樣的java語句
                    -返回值類型若不是void,表示這個方法執行結束之後必須返回一個具體的數值。
                     當方法執行結束的時候沒有返回任何數據的話編譯器報錯。
                    
                    -注意:return返回值的類型需要和方法體的"返回值類型"保持一致
                           否則編譯器報錯。
                            -"return 返回值 ;"
                *返回值類型?
                    -返回值是一個具體存在數據,數據都是有類型的,此處需要指定的
                      是返回值的具體類型

                *只要帶有return關鍵字的語句執行,return語句所在的方法結束。
                    【不是JVM結束,是return所在的方法結束】

            2.2、方法名:
                *只要是合法的標識符就行
                *見名知意
                *首字母小寫,後面每個單詞首字母大寫

            2.3、形式參數列表:
                *形參是局部變量:int a,double b,float c,String d....
                *多個形參之間用"逗號"隔開
                *形參的個數可以使0-N個
                *形參中起決定性作用的是形參的數據類型,形參的名字就是局部變量的名字
                *方法在調用的時候,收集給這個方法傳遞的真實數據被稱爲:實際參數
            
                
                例如:
                    方法定義
                    public static int sum(int a,int b)
                {
                }
                    方法調用
                    sum("bac","sss");//編譯報錯,因爲兩個類型和形參不匹配
                    sum(10,20);//編譯通過,兩個類型和形參類型匹配【實參列表】

            2.4、方法體:
                *方法體必須由大括號括起來,方法體中的代碼有順序,遵循自上而下的順序依次執行。
                    並且方法體由java語句構成,每一個java語句以"分號;"結尾

        3.方法怎麼調用:
            *重點:方法只定義不去調用的時候是不會執行的,只有在調用的時候纔會執行
            *語法規則:【前提是方法的修飾符列表中有static】
                -類名.方法名(實參列表);//這是一條java語句,表示調用某個類的某個方法,傳遞這樣的實參
            


*/    

//public表示公開的
//class表示定義類
//method是一個類名
//整句話連起來:表示定義一個公開的類,起名method,由於是公開的類,所以源文件名必須是method
    
            

public class method
{

 //這個大括號括起來的就是一個類體
 //類體中不能直接編寫java語句,除聲明變量之外
 //方法出現在類體中

    //主方法
    //public表示公開的
    //static表示靜態的
    //void表示方法執行結束之後不返回任何數據
    //main是主方法
    //(String[] args):形式參數列表,其中String[]是一種引用數據類型,args是一個局部變量的變量名
    //所以以下只有args這個局部變量的變量名是隨意的
    //主方法就需要這樣固定編寫,這是程序的入口。
    
    public static void main(String[] args)//這個主方法相當於調用了虛擬機
    {
        //因爲自動調用了虛擬機,這裏的程序一定會執行
        //main方法是JVM負責調用的,是一個入口位置    
        //從此處作爲起點開始執行程序
        //既然是這樣,我們就可以在這裏編寫java語言來調用其它的方法
        //因爲sum方法是在主方法的類體裏面
        //可以調用method類的sum方法,傳遞兩個實參
        method.sum(10,20);//實際上執行到這裏main方法暫停了,進入sum方法執行,sum方法執行結束後表示main方法的135行結束

        //注意:第135行的程序執行不結束,無法執行第141行代碼。是一種順序結構

        
        //一個方法可以被重複使用,重複調用
        method.sum(20,10);

        //需求:計算10和20的和,並將結果輸出
        int a=10;
        int b=20;
        int c=a+b;
        System.out.println(a+"+"b+"="+c);

        //需求:計算10和200的和,並將結果輸出
        int a=10;
        int b=200;
        int c=a+b;
        System.out.println(a+"+"b+"="+c);

        //需求:計算10和2000的和,並將結果輸出
        int a=10;
        int b=2000;
        int c=a+b;
        System.out.println(a+"+"b+"="+c);
    }


        //在這裏寫自定義方法:並不是程序的入口
        //方法作用:計算兩個int類型數據的和,不要求返回結果,但是要求將結果直接輸出到控制檯
        //修飾符列表:public static
        //返回值類型:void
        //方法名:sum
        //形式參數列表(int x,int y)
        //方法體:主要任務是求和之後輸出計算結果
        
        public static void sum(int i,int j)//這個方法沒有調用虛擬機,所以不調用的話不會執行
        {
            System.out.println(i+"+"+j+"="+(i+j));            

        //調用dosome方法
        //方法調用不一定在main方法中,也可以在其它方法中。
        //只要程序可以執行到的位置,都可以去調用其它方法
        method.dosome();


        }

        public static void dosome(){
                System.out.println("dosome");
        }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章