class SrcArea
{    final  double PI=3.14159;  //我把final去掉还是一样的执行结果
    public static void main(String args[])
    {
        double r1=8.0,r2=5.0;
        System.out.println("半径为"+r1+"的圆面积="+area(r1));
        System.out.println("半径为"+r2+"的圆面积="+area(r2));        
    }
        static double area(double r)
    {
        return (PI*r*r);
    }}

解决方案 »

  1.   

    static final double PI = 3.14159;//可以了
      

  2.   

    因为area方法是static的,所以当执行这个方法的时候还不知道PI这个实例变量~!
      

  3.   

    PI是成员变量,它必须在类被实例化才能调用。
    如果你要在静态方法里调用它,就必须把PI修饰成静态的变量。
      

  4.   

    static final  double PI=3.14159;
      

  5.   

    final  double PI=3.14159; 
    属于成员变量,需要通过对象事例才能使用.
    如 SrcArea sa = new SrcArea(); sa.PI;你还可以把他定义为 static  double PI=3.14159; 属于类静态变量,不需要类实例就可以使用
    如:SrcArea.PI;
      

  6.   


    class SrcArea
    {    static final  double PI=3.14159;  //这样就可以了    public static void main(String args[])
        {
            double r1=8.0,r2=5.0;
            System.out.println("半径为"+r1+"的圆面积="+area(r1));
            System.out.println("半径为"+r2+"的圆面积="+area(r2));        
        }    static double area(double r)
        {
            return (PI*r*r);          //静态方法只能调用静态实列化的参数
        }}
      

  7.   

    import static java.lang.Math.PI;
    public class TestStaticImport {
        public static void main(String args[])
        {
            double r1=8.0,r2=5.0;
            System.out.println("半径为"+r1+"的圆面积="+area(r1));
            System.out.println("半径为"+r2+"的圆面积="+area(r2));        
        }    static double area(double r)
        {
        
            return (PI*r*r);         
        }}
      

  8.   

    pi定义成static,或者你把area方法去掉static