Java独学ノートシリーズ6:パッケージ(二)関数と不定長引数


関数は、Javaの世界ではメソッド(methods)とも呼ばれ、クラスのメンバーである属性(attributes)を操作するためのものであり、メソッドの存在がなければ、属性は退屈なゴミデータの山にすぎないと思うので、操作の存在がこれらの属性の存在意義を持つようになった.両者は「おもりを離れず、おもりを離れず」のように親密である.
書式:
修飾子戻り値タイプ関数名(パラメータタイプ形式パラメータ1,パラメータタイプ形式パラメータ2,...){実行文;return戻り値;}
コードの例:

  
  
  
  
  1. public int getSum(int x, int y){     
  2.    return x+y*8

本文はただ簡単に関数のフォーマットを提出して、もちろん関数の重荷、カバー、および構造関数、静的関数などの重点の概念は後でゆっくりと完備を補充します.関数のその他の知識点は、「Java関数の基本知識」という文章を参照してください.
メソッドを呼び出すとき、メソッドの引数の個数が先にどのように処理するかを決定できない場合、すなわち「複数の形式パラメータ」の場合、クライアントが一気に100個の同型の形式パラメータを必要とする場合、100個は書けないでしょう.JDK 4の前に、引数の個数が確認できないメソッド呼び出しを配列で解決できます.JDK 5はjavaの多様なパフォーマンスを実現したバージョンと言える.これはまたコンパイラ蜜糖の例です.次のコードを見てください.

  
  
  
  
  1. package com.ivantian.CoreFengZhuang; 
  2.  
  3. public class Variable { 
  4.      
  5.     public static int sum(int... numbers){ 
  6.         int sum = 0
  7.         for(int num :numbers){ 
  8.             sum += num; 
  9.         } 
  10.         return sum; 
  11.     } 
  12.  
  13.     public static void main(String[] args) { 
  14.         System.out.println(Variable.sum(1,2)); 
  15.         System.out.println(Variable.sum(1,2,3,4)); 
  16.         System.out.println(Variable.sum(1,2,3,4,5,6)); 
  17.     } 
  18. /*
  19.  3 
  20. 10 
  21. 21 
  22. */ 

主関数の3つの出力文で優位性がわかります.逆コンパイルの観点から、このプログラムが蜜糖をコンパイルすることによる効果:

  
  
  
  
  1. public static transient int sum(int ai[]){ 
  2.  
  3.   int i = 0
  4.   int ai1[] = ai; 
  5.   int j = ai1.length; 
  6.  
  7.   for(int k=0;k<j;k++){ 
  8.    int l = ail[k]; 
  9.    i+=l; 
  10.  } 
  11.  return i; 

上記の3つの出力文では、コードに示すように、不定長引数を呼び出すクライアントにとって、展開後も配列です.

  
  
  
  
  1. System.out.println(sum(new int[]{1,2,3})); 

関数定義中に不定長の形式パラメータを定義する必要がある場合は、次のルール定義に従う必要があります.そうしないとコンパイルできません.
不定長形式パラメータは、必要に応じて1つしかありません.メソッド宣言の不定長形式パラメータは、次の定義のようにパラメータリストの最後に配置する必要があります.形式パラメータがオブジェクトである場合も上記の原則に従います.
コード:

  
  
  
  
  1. public  void some(int arg1,String args2,int... args){ 
  2.  //method blocks 
  3. }

  
  
  
  
  1. public void some(Wife... SanQiSiQie){ 
  2.  //   

これで不定長変数(形式パラメータ)は終了し,指摘を望む.