菜鸟求助!Java高手进

来源:百度知道 编辑:UC知道 时间:2024/09/23 14:37:05
public class Exercise4_12
{
int a=90;
static float b=10.98f;
public static void main(String []args)
{
float c=a+b;
System.out.println("c="+c);
}
}
-----------------------------------------------------------------
请问这段程序有什么错误?为什么?

public class Exercise4_12
{
public int a=90;
public static float b=10.98f;
public static void main(String []args)
{
Exercise4_12 e = new Exercise4_12();

float c=(float)e.a+e.b;
System.out.println("c="+c);
}
}
或者
public class Exercise4_12
{
static int a=90;
static float b=10.98f;
public static void main(String []args)
{
float c=a+b;
System.out.println("c="+c);
}
}

错误:
Cannot make a static reference to the non-static field a

原因:
在类 Exercise4_12 中,不指定 a 的类型,那么就默认default类型,同包或自己能够访问。子类对象是不能直接调用的。
而static类型,类似C++的常量类型,所在类本身可以直接引用。