21
48. 下面程序的功能是通过调用方法max()求给定的二个整数的最大值, 请将其补充完整。(max(a1,a2) int)
public class Class1 {
public static void main( String args[] ) {
int a1=1234,a2=456; int MaxValue;
MaxValue=____________;
System.out.println(\二个数的最大值:\ }
public static ______ max(int x,int y) { int max_value; max_value =x>y?x:y; return max_value; } }
49. 下面是一个类的定义,请将其补充完整。(class static)
______ Bank { String s;
_____ int a=666;
Bank(String s1) { s=s1; } static int geta( ) { return a; } }
50. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)
51. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)
52. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表) 53. Java 仅支持类间的____重继承。(单重)
54. 抽象方法只有方法头,没有________。 (方法体)
55. Java 语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态) ; abstract(抽象))
56. 接口中所有属性均为_________、_________和________的。 (public、static、final)
57. 如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。(methodA())
58.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。(抽象的)
59. 如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(返回值类型)
60. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承(多重)
21
22
61. 在方法头用abstract修饰符进行修饰的方法叫做________方法。(抽象) 62. Java语言中用于表示类间继承的关键字是___________。(extends) 63. 接口中所有方法均为________和________的。 (public、abstract) 64. Java语言中,表示一个类不能再被继承的关键字是________。(final)
65. Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。 (class A extends B implements C)。
66. 如果子类中的方法compute()覆盖了父类中的方法compute(),假设父类的compute()方法头部有可见性修饰符public,则methodS()的可见性修饰符必须是__________。(public) 67.下面是一个类的定义,完成程序填空。(Youwrite this.x=x;)
public class Youwrite { int x;
_______( ) {x=0;} Youwrite ( int x) { _____; } }
68.下面是定义一个接口ITF的程序,完成程序填空。 (interface abstract )
public _______ ITF {
public static final double PI=Math.PI;
public ______ double area(double a, double b); }
69.下面是定义一个接口A的程序,完成程序填空。(final ”;” )
public interface A {
public static _______ double PI=3.14159;
public abstract double area(double a, double b)_____ }
70.要调用java.io.InputStream的read或close方法,必须处理异常。该异常具体类型是 ,它的直接父类是 。(java.io.IOException; java.lang.Exception) 四、简答题
1. 请判断下面的字符序列是否是合法的Java标识符。如果认为不是合法的,请说明原因。 (1)public 不是(2)Tf123abc 不是 (3) $400是(4)redHat 是 (5) Line-Number不是 (6) 400Arcs不是 (7)_400Arcs 是(8)_debug 是(9)a@abc.com不是(10)\不是
(11)keyword是(12)goto不是(13)null不是(14)true不是(15)red hat不是(16)*pointer不是(17)猫 是(18)old-timer不是(19)double不是(20)Double是 2. 请写出下面Java直接量的数据类型。
(1)0.0f float(2)0.125d double (3) 'a' char (4) \字符串 (5) true boolean (6)123 int (7)12L long(8)null 引用数据类型 (9)0.1 double(10)0x123L long
22
23
3. 阅读程序,并写出程序运行的结果
public class test { }
结果:199
考点是方法调用(参数传递)
4. 阅读程序,如果程序可以正常运行,请写出程序运行的结果,否则请写出含有错误的语句的行号,并修正含有错误的语句。
1. abstract class J_Class 2. {
3. int mb_method() 4. {
5. return 5; 6. } 7. }
8. class test 9. {
10. public static void main(String args[]) 11. {
12. J_Class a=new J_Class(); 13. J_Class b=new J_Class();
14. System.out.println(a.mb_method()+b.mb_method()); 15. } 16.}
答:程序有错,因为J_Class是抽象的,无法对其进行实例化。可以将第1行换成“class J_Class”,去掉abstract。
5. 指出下面程序会出现编译错误的行数及其原因。
1. public class test 2. {
3. private class inner 4. { 5. 6. 7.
static String m_name=new String(\public void mb_method() {
23
public static void main(String args[]) { }
static void mb_operate(int i) { }
i+=100; int i=99; mb_operate(i);
System.out.println(i+100);
24
8. 9. 10. }
}
System.out.println(m_name);
11. public static void main(String args[]) 12. { 13. 14. 15. } 16.}
答:程序在第5行有错,原因是static的误用。非静态的内部类不能有静态成员。 6. 阅读程序,并写出程序运行的结果
class test { }
结果:12
7. 请列举出种常见的可能产生异常的情况。
答:数组下标越界、字符串在取字符时下标越界、除数为0、类型转换不合法、算术运算结果溢出、运行一个不含方法main的Java应用程序、通过空引用来访问对象的成员数据或方法、人为抛出异常、访问不存在的文件、网络连接不成功。 8. 写出下列程序完成的功能。 (1)
import java.io.* ; public class Reverse
{ public static void main(String args[ ]) { int i , n =10 ;
int a[ ] = new int[10]; for ( i = 0 ; i < n ; i ++ ) try {
BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― )
24
public static void main(String ars[]) { }
static void mb_swap(String s0,String s1) { }
String t=s0; s0=s1; s1=t;
String[] s={\mb_swap(s[0],s[1]);
System.out.println(s[0]+s[1]); inner a=new test().new inner(); a.mb_method();
25
System.out.print(a[i]+\ System.out.println( ); } }
从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。 (2)
import java.awt.*; public class abc
{ public static void main(String args[]) { new FrameOut(); } }
class FrameOut extends Frame // Frame为系统定 { Button btn; // 义的窗框类 FrameOut( )
{ super(\按钮\
btn = new Button(\按下我\ setLayout(new FlowLayout( )); add(btn);
setSize(300,200); show( ); } }
创建一个标题为\按钮\的窗框,窗框中显示有\按下我\字样的按钮。 9. 现有类说明如下,请回答问题:
public class A {
String str1=\ String str2=\ public String toString( ) { return str1+str2; } }
public class B extends A {
String str1=\,Bill.\ public String toString( ) { return super.str1+str1; } }
问题:
(1) 类A和类B是什么关系?(继承关系)
(2) 类A和类B都定义了str1属性和方法toString( ), 这种现象分别称为什么?(属性的隐藏;方法的覆盖)
(3) 若a是类A的对象,则a.toString( )的返回值是什么? (Hello!
How are you?)
(4) 若b是类B的对象,则b.toString( )的返回值是什么?(Hello,Bill.)
25