资源描述
类的继承习题一、选择题
1. Java语言的类间的继承关系是(B )o多重的 B)单重的 C)线程的 D)不能继承
2. 以下关于Java语言继承的说法正确的选项是(C )。
A) Java中的类可以有多个直接父类B)抽象类不能有子类
C)Java中的接口支持多继承D)最终类可以作为其它类的父类B) class B implements A D)class B extends A 用于定义接口的关键字是(A)o
B) implements C) abstract D) class 用于实现接口的关键字是(B)o
B) implements C) abstract D) class
B) class B implements A D)class B extends A 用于定义接口的关键字是(A)o
B) implements C) abstract D) class 用于实现接口的关键字是(B)o
B) implements C) abstract D) class
3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。
A)class A extends B
C)class A implements B以下选项中,
A) interface以下选项中,
A) interfaceJava语言的类间的继承的关键字是(B)o
A) implements B) extends C) class D) public以下关于Java语言继承的说法错误的选项是(A )。
A) Java中的类可以有多个直接父类B)抽象类可以有子类
C)Java中的接口支持多继承D)最终类不可以作为其它类的父类现有两个类M、N,以下描述中表示N继承自M的是(D)。
A)class M extends N B) class N implements M
C)class M implements N D)class N extends M现有类A和接口 B,以下描述中表示类A实现接口 B的语句是(A)。
A)class A implements B B) class B implements A
C)class A extends BD)class B extends A以下选项中,定义抽象类的关键字是(C)。
A) interface B) implements C) abstract D) class以下选项中,定义最终类的关键字是(D)。
A) interface B) implements C) abstract D) final以下选项中,哪个是java语言所有类的父类(C)
A) String B) Vector C) Object D) KeyEventjava语言中,用于判断某个对象是否是某个类的实例的运算符是〔A)
A) instanceof B) + C) isinstance D) &&以下选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以 的修饰符是〔B)
A) public B) protected C) private D) final以下选项中,表示数据或方法只能被本类访问的修饰符是〔C)
A) publicB) protectedC) privateD) final以下选项中,接口中方法的默认可见性修饰符是(A)
A) publicB) protectedC) privateD) final以下选项中,表示终极方法的修饰符是:〔B)
A) interface B) final C) abstract D) implements以下选项中,定义接口 Mylnterface的语有正确的选项是:〔A)
A) interface My Interface ( } B) implements Mylnterface ()C) class Mylnterface{} D) implements interface My{ )
4. 如果字类中的方法mymethod()覆盖了父类中的方疫mymethod。,假设父类方法头部定义如下:void mymethod(int a),那么子类方法的定义不合法的是:〔C)A) public void mymethod(int a) B) protected void mymethod(int a)
C) private void mymethod(int a) D) void mymethod(int a)二、填空题
1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,那么称子类中的这个变量 父类的同名变量。〔隐藏)亏E的父类中商£个方法完全一样,那么称子类中
亏E的父类中商£个方法完全一样,那么称子类中
2. 属性的隐藏是指子类重新定义从父类继承来的如果子类中的某个方法的名字、返回值类型和
class //定义名为myclass的类(
int var=666;static int getvar()
( return var; })
3. 下面程序的功能是通过调用方法max U求给定的三个数的最大值, 请将其补充完整。〔max〔il,i2,i3) static)public class Classi
(
public static void main( String argsf])
(int il=1234,i2=456,i3=-987;
int Max Value;MaxValue=;
System.out.println(H三个数的最大值:”+MaxValue);
}
publicint max(int x,int y,int z)
( int temp l,max_value;templ=x>y?x:y;
max_value=temp 1 >z?temp l:z;return max_value;
}}
4. 下面是一个类的定义,请将其补充完整。〔class static) A
( String s;
int a=666;
A(String si) ( s=sl; }
static int geta() ( return a; })
6 .下面是一个类的定义,请完成程序填空。〔Room intn)public class
(
int a, b;Room (int m,)// 构造方法
{a=m; b=n;
}}
7. 下面是一个类的定义,请将其补充完整。(class String) Teacher
(
String name;
int age;Teacher ( s,int i)
(name=s;
age=i;
}}
8. 下面是一个类的定义,请将其补充完整。〔Desk static)class //定义名为Desk的类
(int var=666;
static int getvar()( return var; }
}下面程序的功能是通过调用方法max □求给定的二个整数的最大值, 请将其补充完整。〔max〔al,a2) int)
public class Classi(
public static void main( String args[])
(int al=1234,a2=456;
int Max Value;MaxValue=;
二个数的最大值:"+MaxValue);
}
public static max(int x,int y)
( int max_value;max_value =x>y?x:y;
return max_value;
})
9. 下面是一个类的定义,请将其补充完整。(class static) Bank
( String s;
int a=666;Bank(String si) ( s=sl; }
static int geta() ( return a; })
三、程序阅读题下面是一个类的定义,根据题目要求答复以下问题.
class B(
private int x;private chary;
public B(int i,char j)
(x=i; y=j;
)
public void show()
(System.out.println(”x="+x+"; y="+y);
}
public void methodC(int x)
(this.x=this.x+x;
y++;show();
})
(1) 定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为请写出相应的语句。(B b=new B(10");)假设在(1)问根底上有方法调用语句:
b.showQ;那么输出如何? 〔x=10;y=A)
⑶假设在⑴问根底上增加语句:b.methodC(l);那么输出为何?(x=ll;y=B)
(x=ll; y=B)阅读程序,答复以下问题。
public class Test52
(String static strl二"Hello, Java world! \tn;
String static str2=nHello, students! n;public static void main(String args[])
{ System.out.print(str 1); System.out.println(str2); }
}问题:1)这是哪种形式的java程序? 〔java应用程序)
2) 程序的输出是什么?
[Hello, Java world!Hello, students!)写出以下程序的输出结果
public class Test(
public static void main(String[] args)
(Count myCount = new Count();
int times = 0;for(int i=0;ivl00;i++) increment(myCount, times);
System.out.println("count is" + myCount.count);System.out.println("time is" + times);
}
public static void increment(Count c , int times)
{c.count+4-;
times++;
}}
class Count(
public int count;
Count(int c)
(count =c;
}
Count()
(count =1;
}}
答案:
count 101times 0
4 .写出以下程序的输出结果:
public class Test(
public static void main(String[] args)
(Cirecle circle 1 = new Circle(l);
Cirecle circle2 = new Circle(2);// Attempt to swap circle 1 with circle2
System.out.printlnC'Before swap:circlel = " +circlel.radius+〃 circle! = " +circle2.radius);
swap(circle l,circle2);System.out.printlnC'After swap: circlel = " +circlel.radius
+〃 circle! = " +circle2.radius);
}
public static void swap(Circle x , Circle y)
( 〃System.out.printlnf "Before swap: x = " +x.radius
+〃 y = 〃 +y.radius);Circle temp = x;
x = y;y = temp;
System.out.printlnf "Before swap: x = 〃 +x.radius+〃 y = 〃 +y.radius);
答案:
5. 阅读下面程序,答复以下问题: public class Foo
inti;
static String s;
void imethod()
(
}
static void smethod()
(
))
设f是Foo的一个实例,以下语句正确吗?
System.out.println(f.i);System.out.println(f.s);
f.imethod();f.smethod();
System.out.println(Foo.i);System.out.println(Foo.s);
Foo.imethod();Foo.smethod();
答案:
System.out.println(f.i);答案:正确
System.out.println(f.s);答案:正确
f.imethod();答案:正确
f.smethod();答案:正确
System.out.println(Foo.i);答案:错误
System.out.println(Foo.s);答案:正确
Foo.imethod();答案:错误
Foo.smethod();答案:正确
6. 以下程序的输出结果是什么?
public class Foo(
static int i=0;
static int j=0;
public static void main(String| ] args)
(int i=2;
int k=3;(
int j=3;
System.out.println("i + j is " + i + j); } k = i+j;System.out・println("k is " +k);
System.out.println("j is " + j);
))
答案:
i+j is 23k is 2
jisO根据下面的程序,指出下面每个元素的作用域〔类作用域或块作用域)
X y c i 、 量量法量量 变变方变变
public class CubeTest
int x;
public void print()int yPos = 10;
for(x= l;x<= 10;x++)System.out.println(cude(x));
for(int i=l;iv=yPos;i++)
System.out.printing ”);}
)public int code (int y)
}
)
答案: 变量x 变量y 方法cude 变量I 变量yPos 四、简答题
return y*y*y;
:类作用域 :块作用域
:类作用域
:块作用域 :块作用域面向;寸象的软件开发方法用什么把数据和基于数据的操作封装在一起?〔类)
1. 在一个类定义中,用什么描述对象的状态?用什么描述对象的行为?〔属性;方法)TH
TH
2. 什么方法是一个特殊的方法,用于对对象进展初始化? (构造方法)一个源程序文件中,能有多于一个的public类吗?〔不能)
5 .构造方法的方法名可由编程人员任意命名吗?
〔不能,必须与类名同名)类的构造方法名必须和类名一样吗?〔必须)
5. 构造函数有返回值吗?〔没有)构造函数可以重载吗?(可以)
6. 如果一个类定义中没有定义构造方法,该类有构造函数吗? 〔有,编译器会自动生成一个缺省的不带参数的构造函数)如果一个类定义中已经定义了构造方法,java还会给它定义缺省的构造方法吗?〔不会)
7. 类的访问控制权有哪两种? (public和 缺省的〔即没有访问控制修饰符))用什么修饰符修饰的方法称为静态方法?用什么修饰符修饰的属性称为静态属性?(static)
8. 静态属性和静态方法仅属于类的一个具体对象吗?它属于谁? (不是;它是类的所有对象公有的)static变量能是private变量吗?(可以)
15 .使用静态成员都能以什么做前缀?〔可以用类名或对象名做前缀)static方法中能有this引用吗?〔不能)
16. 非static方法中可以有this引用吗?〔可以)static方法能处理非static成员吗?〔不能)
17. 非static方法能处理static成员吗?〔能)类的私有属性和私有方法能不能被其子类直接访问?〔不能)
五、编程题1、根本类定义:
编写一个类,描述学生的学号、姓名、成绩。学号用整型,成绩用浮点型,姓名用String类型。 编写一个测试类,输入学生的学号和成绩,并显示该学号的学生姓名,以及成绩。
class Student (
int sNum;
double score;
String name;}
public class Tl_Student(
public static void main(String[] args)(Student s二new Student();
s.sNum=101;s.score=97;
s.name=”张三”;System.out.println(s.name+"的学号是 "+s.sNum+” 成绩是 n+s.score);
)
}2、根本类定义:
将上述类进展改写,学生拥有判断自己的成绩是否及格的功能。并能够打印输出自己的姓名和是否及格的信 息(方法名:printinfo〔))编写一个测试类,对学生类进展测试。
class Student(
int sNum;
double score;
String name;void printlnfo()( if(score>=60)(
System, out. printing我的姓名是n+name+"我的成绩为及格, }else( System, out. printing我的姓名是”+name+”我的成绩为不及格,
public class Tl_Student(
public static void main(String[] args)(Student s=new Student();
s.sNum=101;s.score=97;
s.name=”张三”;
System.out.println(s.name+"的学号是 "+s.sNum+” 成绩是 n+s.score); s.printlnfo();}
}3、设i ^一个Birthday类,其成员变量有:year,month,day;提供构造方法、输出Birthday对象值的方法和计算 年龄的方法。编写程序测试这个类。
import java.util.Date;public class Birthday
(
private int year;private int month;
private int day;
public Birthday(int year,int month,int day)
this.year=year; this.month=month; this, day二day;)
public void print()(
您的生日是:〃 +year+"年”+month+〃 月〃 +day+〃 日〃);)
public void age()(
int age二 int age=Calendar.getInstance().get(Calendar.YEAR)-year;
您的年龄是:"+age);}
public static void main(String[] args)
(Birthday b=new Birthday( 1980,12,6);
b.print();b.age();
}}
9、设计一个学生类,其中成员变量应包括:学号,姓名,性别,班级,并提供方法打印学生信息,和计算己 经创立学生对象的数目。编写一个程序测试这个类。
public class Student(
private long id;
private String name;
private char sex;
private String banji;
private static int count=0;
public Student(long id,String name,char sex,String banji)
(this.id=id;
this.name二name;this.sex=sex;
this, banji二banji;
count++;)
public void print()(
System.out.printing'该生信息如下:〃);System.out. printing'学号:〃 +id+〃 姓名:〃 +name+〃 性别:〃 +sex+〃 班级:〃 +banji);
}public static void count()
(
System, out. printing己经创立的学生个数为:〃 +count);)
public static void main(String[] args)
{Student a=new Student(01,"zhangsan”「男计专 01 班");
a. print();Student.count();
Student b=new Student(03/, 刘倩”「女',〃计专 03 班〃);print();
Student.count();)
)设计一个关于三角形的类Trival,其中的属性包括三角形的底di,三角形的高gao,方法包括:默认构造 方法、为di和gao指定初值的构造方法、获取三角形面积findArea()o class Trival
double di; double gao; Trival()di=1.0; gao=2.0;
Trival(double i,double j)
{di=i;
gao=j;
)
double findArea()
{return di*gao/2;
}}
Applet小应用程序习题单项选择题
1 .以下不在applet生命周期中的方法是〔C)。
A) init B) start C) execute D) stopKeyListener接口中处理键盘事件的处理器不包括〔D)。
A) keyPressed B keyReleasd C keyTyped D mouseEntered第一次装载或重装applet时,都要调用(A)方法。
A) init B) start C) stop D) destroy鼠标进入组件时调用的方法是〔B)。
A) mouseExit B) mouseEntered C) mouseMoved D) mouseReleased按下按钮移动鼠标时调用〔C)鼠标处理器
A) mouseMoued B) mouseReleased C) mouseDragged D) mouseClicked 以下哪个事件不是所有GUI组件都能产生的事件〔A )
A) ActionEvent B) MouseEvent C) KeyEvent D) FocusEvent以下哪些事件处理方法不是定义在MouseListener中〔D )
A) mouseEntered B) mousePressed C) mouseClicked D) mouseMoved以下哪些事件处理方法不是定义在KeyListener中〔A )
A) keyClicked B) keyPressed C) keyReleased D) keyPressed在Applet应用程序的生命周期中,以下说法正确的选项是:(C)
A) 当翻开浏览器窗口时,系统会自动调用start方法,在Applet应用程序的生命周期中,start方法可执行屡 次;当激活浏览器窗口时,系统会自动调用start方法,在Applet应用程序的生命周期中,start方法只可执行 一次;
B) 当翻开浏览器窗口时,系统会自动调用init方法,在Applet应用程序的生命周期中,init方法只可执行一 次;当激活浏览器窗口时,系统会自动调用init方法,在Applet应用程序的生命周期中,init方法可执行屡次。
2. 如果重写了 Applet的paint方法,在以下何种情况中,会自动调用paint方法绘图。(D)当浏览器运行时
A) 当Applet内容被覆盖后又重新显示时在执行repaint方法重新绘图时
B) 包括以上三种情况11 .在浏览器中执行applet程序,以下选项中的哪个方法将被最后执行〔 C )。
A) init()B) start() C) destroyO D) stop()12.在编写Java Applet程序时,需要在程序的开头写上(B)语句。
A) import java.awt.*; B) import java.applet.* ;C) import java.io.* ;D) import java.awt.event.* ;
填空题使用MouseListener接口监听鼠标按下、松开、进入、退出和点击等行为。
使用MouseMotionListener接口监听鼠标的移动和拖动等行为。
默认情况下,JApplet的内容窗格使用BorderLayout布局管理器在applet程序的生命周期中,浏览器通过调用init_、—start、stop和destroy.方法来控制applet
程序。
1. Applet的init方法在开场时只执行一次,start方法在用户每次访问包含Applet的HTML文件时都被调用,paint方法可以用来在其中画图,stop方法在用户
离开Applet所在的HTML页面时被调用。
2. applet小程序需要继承Applet/JApplet类在显示或者重新显示applet小程序时,会调用paint方法
3. JApplet内容窗格的缺省布局管理器是BorderLayout在网页中嵌入applet小程序的标记是<applet> <\applet>
判断题TextField和TextArea是用来承受用户输入的组件,但是也可以由程序控制使用户不能在其中输入信息。 用hide。或setVisible(false)方法可以使组件隐藏不可见,但是一旦隐藏便不能恢复显示。
一个Button对象,可以调用方法getLabel()获取其上的标签,从而判断是哪个按钮;Label也使用一样的方法。 所有的鼠标事件都由MouseEvent类的对象表示。
所有的鼠标事件都由实现了 MouseListener监听接口的监听者来处理。
使用BorderLayout的容器最多只能放置5个组件,如果要放置更多的组件,那么需要使用多层容器。
7. 使用GridLayout布局策略的容器中,所有的组件都有一样大小。
8. 一般情况下,applet都可以转化成applicationo在applet生存周期中stop方法总是在destroy方法之后执行。 答案:
对错,可以恢复
后半句错 对 错,鼠标移动和拖动事件由实现了 MouseMotionListener监听接口的监听者来处理 对对
对错
异常处理习题二、选择题
1 .以下异常处理语句编写正确的选项是:()try( System.out.println(2/0);}
A) try( System.out.println(2/0)) catch(Exception e)(System.out.println(e.getMessage());)
B) try( System.out.println(2/0);) catch(Exception e){ System.out.println(e.getMessage()); }
C) try( System.out.println(2/0);}catch { System.out.println(e.getMessage()); )
三、程序阅读题1 .阅读下面程序答复以下问题:
import java.io.*;public class Classi
(
public static void main(String args[])
(
int a=5;
int b=0;
System.out.println(a/b);
try (System.out.println(na=H+a);
System.out.println(a/b); System.out・println("a*a=”+a*a);}
catch(ArithmeticException e)(,除数为 0,这是不行的! ”);)
finally{ System.out.println(Hfinally 被执行! ”);}
异常已发生,但不影响程序的执行! ”);
})
1)运行上述程序,输出结果是什么?〔异常提示信息除外)答案:除提示异常提示信息外,无其他输出
2)将变量b的初值改成5后,输出结果是什么?
答案:
1a=5
1a*a=25
finally被执行!
异常已发生,但不影响程序的执行!
图形化设计填空题
Java的Swing包中定义框架的类是—JFrameJava的Swing包中定义面板的类是—JPanel
Java的Swing包中定义按钮的类是JButtonJava的Swing包中定义文本域的类是—JTextField
Java的Swing包中定义标签的类是JLabelJava的Swing包中定义组合框的类是—JComboBox
Java的Swing包中定义菜单条的类是—JMenuBarJava的Swing包中定义菜单的类是—JMenu
Java的Swing包中定义菜单项的类是_JMenuItemJava的Swing包中定义选项卡的类是—JTabbedPane
Color类定义在_ java.awt包中。
ActionEvent 类定义在—包中。
ActionEvent事件的监听接口是—ActionListener,注册方法名是—addActionListener_,事件处理方法名是actionPerformed
WindowEvent 事件的监听接口是WindowListener , 注册方法名是addWindowListener
设置容器布局管理器的方法是setLayout显示JFrame框架的方法名是setVisible
设置JFrame框架标题的方法名是setTitle设置JFrame框架大小的方法名是setSize
重画面板的方法名是repaintAWT的用户界面组件库被更稳定、通用、灵活的库取代,该库称为Swing组件库。
5. 不依赖本地GUI的Swing组件称为轻型组件,AWT组件称为重型组件。
6. 图形类可以分为三组:容器类、组件类和辅助类。
7. FlowLayout布局管理器可以使用三个常量之一来指定组件的对齐方式,这三个常量是FlowLayout.RIGHT、FlowLayout.CENTER 和 FlowLayout.LEFT。
8. FlowLayout布局方式默认的对齐方式是居中,默认的水平间距和垂直间距都是5个像素。 单项选择题下面属于容器类的是〔A
A Jframe B JtextField C Color D JmenuFlowLayout的布局策略是〔A )
A)按添加的顺序由左至右将组件排列在容器中。
B)按设定的行数和列数以网格的形式排列组件。
C)将窗口划分成五局部,在这五个区域中添加组件。
D)组件相互叠加排列在容器中。
2. BorderLayout的布局策略是(C )
A)按添加的顺序由左至右将组件排列在容器中。
的这个方法覆盖了父类的同名方法。〔参数列表)Java仅支持类间的—重继承。〔单重)
3. 抽象方法只有方法头,没有。〔方法体)Java语言的接口是特殊的类,其中包含常量和方法。(static(静态);abstract (抽象))
4. 接口中所有属性均为、和的。
(public > static > final)如果接口中定义了一个方法methodA(), 一个属性attA,那么一个类ClassA要实现这个接口的话,就必须
实现其中的方法o (methodAO)一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否那么该类就必须定义成
的。(抽象的)如果子类中的某个方法的名字、和参数列表与它的父类中的某个方法完全一样,那么称子类
中的这个方法覆盖了父类的同名方法。〔返回值类型)Java仅支持类间的单重继承,接口可以弥补这个缺陷,支持重继承〔多重)
5. 在方法头用abstract修饰符进展修饰的方法叫做方法。〔抽象)Java语言中用于表示类间继承的关键字是。〔extends)
6. 接口中所有方法均为和的。
(public> abstract)Java语言中,表示一个类不能再被继承的关键字是。〔final)
7. Java语言中,表示一个类A继承自父类B,并实现接口 C的语句是。
〔class A extends B implements C)。
8. 如果子类中的方法compute()覆盖了父类中的方法compute。,假设父类的compute()方法头部有可见性修饰符public,那么methodS()的可见性修饰符必须是。〔public)
三、程序阅读题1 .现有类说明如下,请答复以下问题:
public class A(
String strl=n Hello! \tn;String str2=n How are you? ”;
public String toString()( return strl+str2; }
)public class B extends A
(String strl=n\b\b, Bill/*;
public String toString()( return super.strl+strl; }
}问题:
1) 类A和类B是什么关系?(继承关系)类A和类B都定义了 strl属性和方法toString(),这种现象分别称为什么?〔属性的隐藏;方法的覆盖)
2) 假设a是类A的对象,那么a.toString()的返回值是什么?
(Hello! How are you?)假设b是类B的对象,那么b.toString()的返回值是什么? (Hello, Bill.)
2. 现有一个类定义如下,请答复以下问题:
class Employee
{String name;
int age;double wage;
static int No=0;Employee(String al,int a2,double a3)
{name=al; age=a2; wage=a3;
No++;}
}在使用该类时,已使用下面语句生成了该类的对象:
B) 按设定的行数和列数以网格的形式排列组件。
C) 将窗口划分成五局部,在这五个区域中添加组件。
D) 组件相互叠加排列在容器中。
4. GridLayout的布局策略是〔B )
A) 按添加的顺序由左至右将组件排列在容器中。
B) 按设定的行数和列数以网格的形式排列组件。
C) 将窗口划分成五局部,在这五个区域中添加组件。
D) 组件相互叠加排列在容器中。
5. JFrame中内容窗格缺省的布局管理器是(B )A) FlowLayoutB) BorderLayoutC) GridLayout D) Car
展开阅读全文