JAVA學習.方法的重載的理解

package ljy.overload;
/**
 * 
 */

/**
 * @author fshxxxyydys
 *
 */
public class overloadMethod { //方法重載
	
	//JAVA只支持方法重載,不支持符號重載
	//在傳統的語言中,方法名稱不能重複,優秀的方法名資源
	//只能被使用一次,很是遺憾,程序員必須花費額外的時間
	//去費盡心機思考替代的方法名。
	//在現代的編程語言,比如JAVA,支持方法名的重複使用,
	//這種語法現象叫做方法名的重載,但是有一定的約束條件。
	//1.參數的數量不同。
	//2.參數的數量相同,參數的數據類型也要略有不同
	//3.參數名、返回值以及訪問修飾符均不作爲考量的尺度。
	
	//重載失敗就會構成重名(duplicate method)
	
	//重載給我們帶來了超級方法和智能方法
	
	//本質上:根本不存在方法的重載 在編譯器編譯的時候將
	//所謂的重載的方法的名稱全部改掉了,雖然這樣但是我們
	//享受到了所謂的“重載”所帶來的樂趣和便利。
	int add(int a,int b){    //編譯器:add_int_int
		
		return a + b;
	}
	
	double add(int a,double b){ //編譯器:add_int_double
		
		return a + b;
		
	}
	int add(int a,int b,int c){ //編譯器:add_int_int_int
		
		return a + b+ c;
	}
	
    //重名
	//private void add(int c,int d){
	//		
	//					return c + d;
	//}
	
	double add(double a,double b){ //編譯器:add_double_double
		
		return a + b;
	}
	
	//不定參數,m不在是普通的整型變量,而是一個整型數組的名稱
	//一個方法中的不定參數只能有一個,而且必須是該方法參數列表的最後一個
	double add(double a, int ... m ){
		
		double sum = a;
		
		for(int x:m)
			sum += x;
		return  sum; 
	}	
}


/**
 * 
 */
package ljy.overload;

/**
 * @author fshxxxyydys
 *
 */
public class Tester {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		overloadMethod om = new overloadMethod();
		//智能:根據傳入參數的樣式,選則合適的方法進行調用
		//System.out.println();就是一個最典型的例子,幾乎
		//你放進去的東西都可以被打印,因爲一個方法名下有
		//十幾個函數在支持者它,所以你覺得它功能強大。
		System.out.println(om.add(1, 2));
		System.out.println(om.add(1, 2.0));
		System.out.println(om.add(5.0, 2.0));
		System.out.println(om.add(1, 2,3));
		
		//第一個數是double型的,剩餘的整型可以無限添加
		System.out.println(om.add(1.8,1,2,3,4,5,6,7));
		
	}
}

===============================================================

Result:

3
3.0
7.0
6
29.8

===============================================================


原創出處:http://blog.csdn.net/u012830807

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