孙俪袜子穿20年fl:关于java中的static

来源:百度文库 编辑:高校问答 时间:2024/04/28 00:37:30
class CCir
{
private static double pi=3.14;
private double radius;
public CCir(double r)
{
radius=r;
}
public static double compare(CCir c[])
{
double max=0.0;
for(int i=0;i<c.length;i++)
{
if(c[i].radius>max)
max=c[i].radius;
}
return max;
}
}
public class chuangjianleileishuzu
{
public static void main(String[] args)
{
CCir cir[]=new CCir[3];
cir[0]=new CCir(1.0);
cir[1]=new CCir(4.0);
cir[2]=new CCir(2.0);
System.out.println("lagest radius="+CCir.compare(cir));
}
}
在本例static调用的方法中c[i].radius是怎么执行的?其中radius 不是static形式怎么能在static方法中调用了?为什么?

它使用的从参数传来的 c[] 的 radius,并不是它本身类的字段,这当然是可以的。

你把main函数和compare函数抽出来,放到另一个新建的类里,这样逻辑就比较清楚了!