C) 第13行错误,不能用类名引用类中的变量; D) 没有错误,输出1234;
48、对以下程序说法正确的有( )。
1) class Exp{ 2) int x;
3) static int y;
4) static void setX(int x) { this.x = x;} 5) int getx( ) { return x;} 6) static void run() {
7) System.out.print(getX()); 8) }
9) public static void main(String[] args){ 10) Exp.run();
11) Exp a = new Exp(); 12) a.setX(2);
13) System.out.print(a.getX()); 14) } 15) }
A) 第4行错误,静态方法不能使用非静态实例变量; B) 第7行错误,类方法不能调用实例方法;
C) 第10行错误,对象没有创建,其方法不能调用;
D) 第12行错误,静态方法不能用对象名.方法名方式来调用。 49、下面程序哪些编译错误是存在的( )。
1) class exp16{
2) double fun(int x,int y){ return x+y;}
3) double fun(int x,int y,int z){ return x*y-z;} 4) int fun(int x,int y){ return x-y;}
5) double fun(double x,double y){ return x/y;} 6) } 7) }
A) 第2行错误,返回值类型不配;
B) 第3行错误,fun(int,int)方式已存在; C) 第4行错误,fun(int,int)方式已存在;; D) 第5行错误,fun(int,int)方式已存在;;
50、关于Java源程序文件的代码构成形式方面,下述说法中是正确的( )。
A) 除了开头的包声明语句,包引用语句之外,Java程序代码中只能有类和接口,所有变量与
方法的定义或其它语句都不能放在类体或接口体之外;
B) java的类体中除了方法的定义之外,只能有为成员变量定义及初始化,不能有赋值、表达
式计算等操作性的语句。
C) 类体内还可定义类,也即java的类可互相嵌套,定义在其它类内部的类称内部类。 D) Java中的main方法是特殊方法,是Java程序的入口和出口,必须定义在所有类和接口之
外。
51、关于类中成员变量的作用范围,下述说法中正确的是( )。
A) 只有用public修饰的变量才能在所有方法中使用; B) 用private修饰的成员变量可以在main方法中直接使用; C) 类中所有成员变量在所有成员方法中有效;
资料
D) 用static修饰的成员变量只能在用static修饰的方法中使用。
52、方法体内定义的变量称局部变量,下述关于局部变量的说法中错误的是( )。
A) 局部变量仅在所定义的代码块内(花括号对内)有效; B) 局部变量不能加修饰词修饰; C) 局部变量不能与类中的成员变量同名; D) 局部变量未经赋值不能使用。
53、同一类中有两个以上方法同名称方法重载,Java语言规定( )。
A) 不允许重载;
B) 重载方法的参数表必须不同; C) 重载方法的返回值类型必须不同;
D) 重载方法的参数表和返回值类型必须都不同。
三、 改错
1、
public class ShowErrors{ public static void main(String args[]){ ShowErrors t = new ShowErrors(5); } } public class ShowErrors{ public static void main(String args[]){ ShowErrors t = new ShowErrors(); t.x(); }
2、
} 3、
4、
public class ShowErrors{ public void method1(){ Circle c; System.out.println(“what is radius”+c.getRadius()); c =new Circle(); } } public class ShowErrors{ public static void main(String args[]){ C c = new C(5.0); t.x(); System.out.println(c.value); } } class C{ int value =2; } public class C{ int p; public void setP(int p){ p=p; } }
5、
资料
6、
四、 阅读程序
public class Test{ private double code; public double getCode(){ return code; } Protected abstract void setCode(double code); } 1、 阅读下面的程序,分析代码是否能够编译通过.如果能编译通过.请列出运行的结果,否则
说明编译失败的原因。 (1) 代码一:
class A{
private int secret =5; } public class Test1{ public static void main(String args[]){ A a=new A();
System.out.println(a.secret++);
}
}
(2) 代码二:
public class Test2{
int x =50;
static int y=200; public static void method(){ System.out.println(x+y); } public static void main(String args[]){
Test2.method();
}
}
(3)代码三:
final class Animal{ public final void shout(){ //程序代码
} } class Dog extends Animal{ public void shout(){ //程序代码
} } public class Test02{
public static void main(String args[]){ Dog dog =new Dog(); } } 资料
(4)代码四
class Animal{ void shout(){ System.out.println(\动物叫!\); } } class Dog extends Animal{ void shout(){ super.shout(); System.out.println(\汪汪....\); } } public class Test03{ public static void main(String args[]){ Animal animal =new Dog(); animal.shout(); } } (5)代码五 interface Animal{ void breathe(); void run(); void eat(); } class Dog implements Animal{ public void breathe(){ System.out.println(\); } public void eat(){ System.out.println(\); } } public class Test04{ public static void main(String args[]){ Dog dog =new Dog(); dog.breathe(); dog.eat(); } } 2、下列程序的运行结果是: (1)
class StaticTest{ static int x=1; int y; StaticTest(){ y++; } public static void main(String args[]){ StaticTest st = new StaticTest(); System.out.println(\+x); System.out.println(\+st.y); st=new StaticTest(); System.out.println(\+st.y); } static{ x++; } }
资料