下列程序的功能是为变量赋值,程序运行后,输出i=51。请改动main方法中的错误,使程序能够正确编译、运行并输出正确的结果。
注意:不改动程序结构。
class A
private int a;
public void setA (int x)
a=x;
public int getA()
return a;
public class MethodTest
public static void main(String args[])
A a=A();
a.getA(51);
int i=a.getA();
System.out.println ("i="+i);
参考答案:改正后的main方法如下:
public static void main(String args[])
{
A a=new A();
a.getA(51);
int i=a.getA();
System.out.println("i="+i);
}
解析:[讲解] 本题综合考查类及类成员的定义与使用方面的知识。该程序中定义了两个类:A和MethodTest,类A中封装了一个私有的成员变量a和两个公有的方法setA和getA。在类MethodTest中包含了main方法。创建对象应使用new操作符来实例化对象,程序在创建对象a时未使用new,故存在错误。由于a是对象a的私有变量,在main方法中不能直接访问,只能通过对象a的公有方法setA和getA来访问。公有方法setA的功能是将传递回来的参数值赋给a,所以应当调用setA方法来为变量a赋值。