close
package classadvanced;
/*
 * 傳遞物件陣列到函數裡
 * EX:建立10個物件陣列,值為1~100的亂數整數
 * (a)建立有一引數(int r)的建構元設定實例變數radius的值
 * (b)傳遞物件陣列到average函數中算radius平均並回傳
 * (c)傳遞物件陣列到compare函數中找出最大值並回傳
 */
class CCircle{
	private int radius;
	
	public CCircle(int r){
		this.radius=r;
	}
	
	public static double average(CCircle c[]){ //宣告為static函數,方便用類別名稱.函數名稱()呼叫
		double sum=0,average=0;
		for(int i=0;i<c.length;i++){
			System.out.println("c["+i+"]="+c[i].radius);
			sum+=c[i].radius;
		}
		average=(sum)/c.length;
		return average;
		
	}
	
	public static int compare(CCircle c[]){ //比較大小
		int max;
		max=c[0].radius;
		for(int i=0;i<c.length;i++){
			if(max<c[i].radius){
				max=c[i].radius;
			}
		}
		return max;
	}
}

public class BasicArrayObject {

	public static void main(String[] args) {
		CCircle c[]=new CCircle[10]; //設定物件陣列大小
		for(int i=0;i<c.length;i++){  //亂數給值
			c[i]=new CCircle((int)(Math.random()*100)+1);
		}
		System.out.printf("ArrayObject of average=%.2f\n",CCircle.average(c)); //印出平均取小數點第2位
		System.out.println("ArrayObject of maxvalue="+CCircle.compare(c));

	}

}

 

arrow
arrow
    全站熱搜

    goodice0728 發表在 痞客邦 留言(0) 人氣()