您的当前位置:首页正文

Java面向对象(二)习题-推荐下载

2021-09-26 来源:步旅网
1、 Java中用于定义接口的关键字是( )

A、importB、packageC、classD、interface

2、 以下关于abstract的说法,正确的是( )

A、abstract只能修饰类B、abstract只能修饰方法

C、abstract类中必须有abstract方法

D、abstarct方法所在的类必须用abstract修饰3、 下列哪种说法是正确的( )

A、私有方法不能被子类覆盖。

B、子类可以覆盖超类中的任何方法。

C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。 D、覆盖方法中的参数清单必须是被覆盖方法参数清单的子集。 4、关于类继承的说法,正确的是( )

A、Java 类允许多重继承B、Java接口允许多继承C、接口和类都允许多继承D、接口和类都不允许多继承5、关于抽象类,正确的是______。

A. 抽象类中不可以有非抽象方法

B. 某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法C. 不能用抽象类去创建对象D. 接口和抽象类是同一个概念

6、 下列哪个类是由编译器自动生成对象的特殊类,是用于类操作?( )

A、Class类B、Thread类C、System类D、Object类

7、 下面关于继承的哪些叙述是正确的。 ( )

A、在java中只允许单一继承。

B、在java中一个类只能实现一个接口。

C、在java中一个类不能同时继承一个类和实现一个接口。 D、java的单一继承使代码更可靠。8、 抽象类A和抽象类B的定义如下:

abstract class ex4_5_10_A {

abstract int getinfo();}

public class ex4_5_10 extends ex4_5_10_A {

private int a = 0;public int getinfo() {

return a;}

public static void main(String args[]) {

ex4_5_10 b = new ex4_5_10();

}

System.out.println(b.getinfo());

}

关于上述代码说明正确的是( )。A. 输出结果为0 B.通过编译但没有输出任何结果C. 第5行不能通过编译 D. 程序第2行不能通过编译9、下面程序的运行结果是______

class ex4_5_11_A {

protected static int count = 0;public ex4_5_11_A() {

count++;}}

class ex4_5_11_B extends ex4_5_11_A {

public ex4_5_11_B() {

count++;}}

class ex4_5_11 {

public static void main(String args[]) {

ex4_5_11_B x = new ex4_5_11_B();System.out.println(\"count=\" + x.count);}}

A. count=1 B. count=2C. count=3 D. count=49、设有下面两个类的定义:

class Person

{ long id; // 身份证号

String name; // 姓名 }

class Student extends Person { int score; // 入学总分

int getScore(){

return score; } } 问:类Person和类Student的关系是(  )

A、包含关系 B、继承关系 C、关联关系 D、无关系,上述类定义有语法错误10.下面的程序段执行后输出的结果是( )

StringBuffer buf=new StringBuffer(\"China2008\"); buf.insert(5,\"@\");

System.out.println(buf.toString());

A、China2008@B、@China2008C、China@2008D、China#2008

判断题

1.Java语言中,构造方法是不可以继承的。( )

2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。( )

3.抽象方法是一种只有说明而无具体实现的方法。( )4.Java语言中,所创建的子类都应有一个父类。( )5.调用this 或super构造方法的语句必须放在第一条语句。( )6.一个类可以实现多个接口,接口可以实现“多重继承”。 ( )7.实现接口的类不能是抽象类。( )

8.使用构造方法只能给实例成员变量赋初值。( )9.Java 语言不允许同时继承一个类并实现一个接口。( )

填空题:

1、对于接口的实现,不可以构造一个接口对象,但可以声明一个接口______。1、在Java语言中所有的类都是直接或间接地继承______类而得到的。

2、在Java中一个父类可以有______个子类,一个类只能有______个直接父类。3、什么是继承?什么是多重继承和单继承?Java采用何种机制来实现多重继承?4、什么是隐藏?什么是重写?二者有何区别?5、子类会继承父类的所有方法和属性么?6.简述接口定义的一般格式。

7.什么是接口?如何定义接口?接口与类有何区别?8.比较接口与抽象类的异同。

9.什么是抽象类?什么是抽象方法?各自有什么特点?

分析题

1.分析下面的程序,写出运行结果。public class Exercises6_1 extends TT{    public void main(String args[]){

    Exercises6_1 t = new Exercises6_1(\"Tom\");   }

   public Exercises6_1(String s){    super(s);

    System.out.println(\"How do you do?\");   }

   public Exercises6_1(){    this(\"I am Tom\");   }  }

3.分析下面的程序,写出运行结果。class Exercises6_3 {

class Dog {

private String name;private int age;

  class TT{

    public TT(){

     System.out.println(\"What a pleasure!\");    }

    public TT(String s){     this();

     System.out.println(\"I am \"+s);    }  }

运行结果是:( )

2.分析下面的程序,写出运行结果。public class Exercises6_2 {

private static int count;private String name;public class Student {

private int count;private String name;

public void Output(int count) {

count++;this.count++;

Exercises6_2.count++;Exercises6_2.this.count++;

System.out.println(count + \" \" + this.count + \" \"

+ Exercises6_2.count + \" \" + Exercises6_2.this.count++);

}}

public Student aStu() {

return new Student();}

public static void main(String args[]) {

Exercises6_2 g3 = new Exercises6_2();g3.count = 10;

Exercises6_2.Student s1 = g3.aStu();s1.Output(5);}

}

运行结果是:( )

编程题

}

public static void main(String args[]) {

Exercises6_3 a = new Exercises6_3();Dog d = a.new Dog(\"Tom\d.step = 29;d.run(d);

System.out.println(\" \" + d.step);}

}

运行结果是:(

public int step;

Dog(String s, int a) {

name = s;age = a;step = 0;}

public void run(Dog fast) {

fast.step++;}

4.分析下面的程序,写出运行结果。

class Aclass { void go() { System.out.println(\"Aclass\"); } }public class Bclass extends Aclass {

void go() { System.out.println(\"Bclass\"); }public static void main(String args[]) {

Aclass a = new Aclass(); Aclass a1 = new Bclass(); a.go(); a1.go();

} }

运行结果是:( )

1.将一个字符串反转

2.获取一个字符串在另一个字符串中出现的次数

3将一个字符串全部转换大写,将一个字符串全部转换小写,将一个字符串大写变小写,小写变大写

4.把客户端输入如下格式的时间(2008/09/10)换成如下格式(2008-09-10)5.将一个字符串的第一个字符与最后一个字符组合成一个新字符串。6.简述String str=null,String str=””之间的区别7.列举Java 判断字符串是否为空的的方法

8. 给出字符串的两个位置,pos1和pos2, 如何替换pos1和pos2之间的字串

9. 要求:参考API帮助,查找相关的方法,使用String类完成如下功能,对英文字符串进

’m’,’e’},末尾的字符为’e’, {‘w’,’e’,’i’,’c’,’o’,’m’}依次加上3后成为{‘z’,’h’,’o’,’f’,’r’,’p’},故加密后的结果为{‘e’,‘z’,’h’,’o’,’f’,’r’,’p’}

17.练习final、static修饰符使用

18.练习对象的比较:是否同一个对象,以及重写equals方法19尝试使用单态设计模式理论写一个类。

20.使用接口、实现完成,完成课件中45页,多个类实现同一个接口。46页一个类实现多个接口,47页抽象类和接口混合使用。

21.假设一种场景:“假设人分为学生和工人,学生和工人都可以说话,但是学生和工人说话的内容是不一样的,也就是说,说话的这个功能应该是一个具体功能,而说话的内容就要由学生或工人来决定了”,所以此时就可以使用抽象类实现这种场景。

22.尝试写出一个工厂设计模式。

23、设计一个Student类,以一维数组存储一个班级的学生信息。要求:

行加密处理。

a、将给定的英文字符取相反顺序,并改变每个字符的大小写形式(大写变小写、小写变大写)。

b、将经第一步处理的信息进一步加工,将每个字符取其所在字母表中的顺序,取其后一个字母。

c、编写解密方法。

d、编写测试函数,在运行时通过命令行参数接受需要处理的字符串,将源字符串、加密字符串和解密字符串打印到屏幕输出。

10.区别String s=\"\"与String s=null的不同?

11.字符串\"yekmaakkccekymbvb\求出字符串中有多少种字符,以及每个字符的个数?

12.从控制台输入字符串,字符串之间用逗号连接,然后按逗号分隔成数组,对字符串数组进行升序排列并打印输出

13.编写一个截取字符串的方法, 输入为一个英文字符串、起始位置、截取字节数,输出截取的字符串。

14.实现检查输入字符串是否为”回文”.的功能。通常称正读和反读都相同的字符序列为”回文”, 例如,abcdeedcba、abcdcba 是回文。

15.写一方法,用于删除字符串中所有空格(不仅仅是两端的空格),并返回没有空格的字16.编写一个加密类,在其中实现对字符串(字母、数字组成)的加密和解密方法。

加密原理是:加密后的字符数组的第一个字符是原字符数组的最后一个,其余的每个字符是对应的原字符数组中的前一个字符的值加上3。比如:{‘w’,’e’,’i’,’c’,’o’,

1)将Student设计成一个接口

2)自定义一个包来管理所设计的类

24、定义一个接口,该接口中只有一个抽象方法getClassName()。设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。

25实现一个宠物商店,在宠物商店中可以有多种(由用户确定数量)宠物,试表示出此种关系,并要求可以根据宠物的关键字查找到相应的宠物信息。所需要的宠物信息自行设计。宠物的创建由工厂来完成。创建宠物管理类,使用数组来保存宠物,实现宠物的添加,删除,修改,查询,打印功能。

因篇幅问题不能全部显示,请点此查看更多更全内容