メソッド - パラメータの受け渡し、過負荷に、コマンドラインパラメータと変数パラメータ

パラメータ渡し機構、方法

  パラメータ渡しメカニズムの方法:パラメータの引数。(引数- >パラメータ)

  1、基本的なデータ型パラメータ

    結論:パラメータは、基本的なデータ型があり、「データ値」に渡されたパラメータの引数には、価値があるパラメータの変更には、引数には影響を与えません。引数は、パラメータのデータ値を「コピーのコピー」ですので。

    グラフィック:

    

     :この方法が実行されるときに、スタックメモリ領域は、方法に従って分割され、この方法は、単一の領域に割り当てられます。機械加工後、ごみは、再利用されるであろう。

  2、参照データ型パラメータ

    結論:データ型パラメータが参照され、パラメータに引数を渡す「アドレス値」であり、オブジェクトのプロパティ値の変更の属性パラメータの値は、引数オブジェクトに影響を与えます。

    グラフィック:

               

第二に、メソッドのオーバーロード 

  1、メソッドオーバーロード(過負荷)

    この方法は、過負荷に:、同じクラスを参照し、複数の許可同じ名前のメソッド限り、そのパラメータのリストに異なる、  修飾 および  戻り値の型 の独立を。

    パラメータリスト:異なる数、異なるデータタイプ、異なる順序。

    オーバーロードされたメソッドの呼び出し:JVMメソッドのパラメータリストによって、異なるメソッドを呼び出します

  以下の要因に関連付けられている2、メソッドのオーバーロード

    •    異なるパラメータの数。
    •    パラメータの異なる種類。
    •    多次パラメータの異なる種類。

  3、以下の要因とは何の関係もないのオーバーロード方法

    •  かかわらず、パラメータの名前の。
    •     そして、タイプの戻り値に依存しません。

第三に、コマンドライン引数

  コマンドライン引数:渡す引数の主な方法は、コマンドラインパラメータと呼ばれます。

  mainメソッドは、戻り値のないパラメータメソッドであるためので、主な方法は、それにパラメータを渡す場合はどうなりますか?

  構文:

java  main所在的类名 实参1  实参2 .....

 

四、可变参数(JDK1.5以后引入)

  可变参数:形参列表中出现了“数据类型... 形参名”形式的形参,就是可变参数。

  包含可变参数的方法的调用原则:

   (1)可变参数的形参部分,可以传入0~n个对应类型的实参,也可以传入对应类型的数组对象

   (2)非可变参数的形参部分,原来该怎么传,现在还怎么传

  可变参数的声明的原则:

   (1)一个方法只能包含一个可变参数

   (2)可变参数必须是形参列表的最后一个

  需求一:求0~n个整数的累加和。

  方式一:

1 public static int sum(int[] nums){
2     int sum = 0; 
3     for(int i=0; i<nums.length; i++){
4         sum += nums[i];
5     }
6     return sum;
7 }

   缺点:每次传入参数的时候必须要声明一个数组,不够方便。

 

   方式二:

1 public static int sum(int... nums){
2     //nums当成数组用
3     int sum = 0; 
4     for(int i=0; i<nums.length; i++){
5         sum += nums[i];
6     }
7     return sum;
8 }

  作为可变参数使用,更加的灵活了,其实nums还是相等于一个数组。但是不能与上面的方式一同时声明使用。

 

    需求二:声明一个方法,功能:可以求1~n个整数的最大值

1 public static int max(int num1, int... nums){
2     int max = num1;
3     for(int i=0; i<nums.length; i++){
4         if(nums[i] > max){
5             max = nums[i];
6         }
7     }
8     return max;
9 }

  注意:int num1就是非可变参数部分,必须传入值;int... nums 是可变参数,而且,可变参数必须是形参列表的最后一个。 

 

おすすめ

転載: www.cnblogs.com/niujifei/p/11870712.html