习题
一、选择题(答案可能不止一个)
1.设有下面两个类的定义:
class  Person {}                       
class  Student  extends  Person {
long  id;              // 身份证号           
int  score;                  // 入学总分
  String  name;                // 姓名             
  int  getScore(){return  score;}
}
问:类Person和类Student的关系是(    )。
        A.包含关系    B.继承关系    C.关联关系    D.无关系,上述类定义有语法错误
2.设有下面的两个类定义
        class  AA { 
void  Show(){
System.out.println(“我喜欢Java!”);
}
class  BB extends  AA {
void  Show(){
System.out.println(“我喜欢C++!”);
}
    }
则顺序执行如下语句后输出结果为:(    )
    AA  a;                  BB  b;
a.Show();                  b.Show();
A.我喜欢Java!                B.我喜欢C++!
  我喜欢C++!                  我喜欢Java!
C.我喜欢Java!                D.我喜欢C++!
  我喜欢Java!                  我喜欢C++!
3.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(    )。
    A、隐藏    B、覆盖    C、重载  D、Java不支持此特性
4.对于子类的构造方法说明,下列叙述中不正确的是(    )。
    A.子类无条件地继承父类的无参构造方法。
B.子类可以在自己的构造方法中使用super关键字来调用父类的含参数构造方法,但这个调用语句必须是子类构造方法的第一个可执行语句。
C.在创建子类的对象时,将先执行继承自父类的无参构造方法,然后再执行自己的构造方法。
D.子类不但可以继承父类的无参构造方法,也可以继承父类的有参构造方法。
5.给出下面代码:
  1) class Parent {
  2) private String name;
  3) public Parent(){}
  4) }
  5) public class Child extends Parent {
  6) private String department;
  7) public Child() {}
  8) public String getValue(){ return name; }
  9) public static void main(String arg[]) {
  10) Parent p = new Parent();
  11) }
  12) }
  那些行将引起错误? (  )
      A.第3行        B.第6行      C.第7行        D.第8行
6.类Teacher和Student是类Person的子类;
  Person p;
  Teacher t;
  Student s;
  //p, t and s are all non-null.
  if(t instanceof Person) { s = (Student)t; }
  最后一句语句的结果是: (  )
    A.将构造一个Student对象          B.表达式是合法的
C.表达式是错误的                D.编译时正确,但运行时错误
7.对于下列代码:
  1) class Person {
  2) public void printValue(int i, int j) {//... }
  3) public void printValue(int i){//... }
  4)}
  5) public class Teacher extends Person {
  6) public void printValue() {//... }
  7) public void printValue(int i) {//...}
  8) public static void main(String args[]){
  9) Person t = new Teacher();
  10) t.printValue(10);
  11) }
  第10行语句将调用哪行语句?(  )
A.line 2      B.line 3        C.line 6    D.line 7
8.对于下列代码:(  )
    public class Parent {
        public int addValue( int a, int b) {
            int s;
        s = a+b;
        return s;
      }
    }
  class Child extends Parent {
}
下述哪些方法可以加入类Child?
A. int addValue( int a, int b ){// }
B.public void addValue (int a, int b ){// }
C.public int addValue( int a ){// }
D.public int addValue( int a, int b )throws MyException {//do }
9.给出下面代码, 那个选项是正确的?(  )
public class test{
      static int a[] = new a[10];
      public static void main(String args[]) {
java程序设计考试题
            System.out.println(arr[10]);
      }
  }
      A. 编译时将产生错误                    B. 输出零   
C. 编译时正确,运行时将产生错误        D. 输出空
二、填空题
1.      是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。
2.派生类构造方法可以通过关键字       调用基类构造方法。
2多态是指                                        ,在Java中有两种多态,一种是使用方法的          实现多态,另一种是使用方法的           实现多态。
3. Java中所有类都是类            的子类。
4被关键字            修饰的方法是不能被当前类的子类重新定义的方法。
三、思考题
1.比较Overload(方法重载)和Override(方法覆盖)的区别。
2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?
3.比较this和super的区别
4.什么是多态?面向对象程序设计为什么要引入多态的特性?使用多态有什么优点?
四、编程题
1.编写一个学生类 Student ,要求:
(1) 学生类 Student 属性有:
id    :  long型,代表学号
name  :  String类对象,代表姓名
age  :  int型,代表年龄
sex  :  boolen型,代表性别(其中:true表示男,false表示女)
phone :  String类对象,代表
(2) 学生类 Student的方法有:
Student(long  i , String  n , int  a , boolean  s , long  p) : 有参构造方法,形参表中的参数分别初始化学号、姓名、年龄、性别和。
int  getAge() ( ) : 获取年龄作为方法的返回值。
boolean  getSex( ) ( ) : 获取性别作为方法的返回值。
long  getPhone ( ) : 获取作为方法的返回值。
public String  toString( ) : 以 姓名: 的形式作为方法的返回值
2.编写一个圆类,要求:
    (1) Circle类的成员变量:radius 半径
(2) Circle类的成员方法:
① Circle() 构造方法,将半径置为0
② Circle(double r) 构造方法,创建Circle对象时将半径初始化为r
③ double getRadius() 获得圆的半径值
④ double getPerimeter() 获得圆的周长
⑤ double gerArea() 获得圆的面积
⑥ void disp() 将圆的半径、周长、面积输出到屏幕
    (3) 创建圆的派生类圆柱体类Cylinder,要求如下:
Cylinder类的成员变量:height 表示圆柱体的高
Cylinder类的方法成员:
① Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h
② double getHeight() 获得圆柱体的高
③ double getVol() 获得圆柱体的体积
④ void dispVol() 将圆柱体的体积输出到屏幕
3.按要求编写程序:
(1) 基类:Point (点)类,它封装了:
     两个成员变量:
        x                    //点的横坐标,int型
        y                    //点的纵坐标,int型
     七个成员方法::

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。