类和对象练习题 下载本文

class Base{

static int oak=99; }

public class Doverdale extends Base{

public static void main(String argv[]){ Doverdale d = new Doverdale(); d.amethod(); }

public void amethod(){ //Here } }

程序运行结果为:

四、问答题

1、什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单重继承?什么是多重继承? 2、什么是类成员,什么是实例成员?他们之间有什么区别? 3、抽象类和接口有什么区别? 4、类与对象的关系是什么? 5、Java的访问限定修饰符有几种,各自的访问权限是什么? 6、谈谈final, finally, finalize的区别。 7、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 8、abstract class和interface有什么区别? 五、判断题

1、类体中private修饰的变量在本类中能访问,类生成的对象也能访问。( )

2、一个类中,只能拥有一个构造器方法。( ) 3、抽象类中不可以有非抽象的方法。 ( )

4、如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException 异常。 ( )

5、Java中Object类是最顶层的类。 ( )

6 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。 ( )

7 可以通过javac来运行一个Java Application。 ( ) 8 可以在子类构造函数中通过this关键字调用基类的构造函数。 ( )

9 Java语言是IBM公司设计的一种面向对象程序设计语言。( )

10 一个Unicode字符占4个字节。 ( ) 11 在循环语句中,使用continue;语句可以跳出循环。 ( ) 12 在Java Application中如果没有定义main()方法,则程序不能编译。 ( )

13、Java 语言的模块只有类。( ) 14、定义方法时方法名可以是任何标识符。( ) 15、方法体中至少有一条 return 语句。( ) 16、如果需要可以在方法中再声明一个方法。( )

17、方法定义语句 void x( int a,int b ) { return (a-b); }是正确的。( )

18、方法内定义的变量是可以在方法外使用的。( ) 19、只有直接调用自身的方法才叫递归方法。( )

20、Java 中允许两方法同名,只要它们参数的类型或个数不同就行。( )

21、每个应用程序都必须要有 main 方法。 ( ) 22、方法定义语句 float x( int a,int b ) { return (a-b); }是正确的。( )

23、对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( ) 24、有的类定义时可以不定义构造方法,所以构造方法不是必需的。( ) 25、类及其属性、方法可以同时有一个以上的修饰符来修饰。( ) 六、编程题 1、学生有姓名(name)和成绩(score)信息。成绩有科目(course)和分数(grade)信息。学生类的getResult方法显示输出成绩信息,setData方法实现初始化学生信息。编写学生类(Student)和成绩类(Score),并测试。

2、 定义一个学生类,包含三个属性(学号,姓名,成绩)均为私有的,分别给这三个属性定义两个方法,一个设置它的值,另一个获得它的值。然后在一个测试类里试着调用。 3、编写程序,模拟银行账户功能。要求如下、

属性、账号、储户姓名、地址、存款余额、最小余额。方法、

存款、取款、查询。根据用户操作显示储户相关信息。如存款操作后,显示储户原有余额、今日存款数额及最终存款余额;取款时,若最后余额小于最小余额,拒绝收款,并显示“至少保留余额XXX”

4、编程实现、以电话Phone为父类(例、电话有本机号码、打电话、接电话等属性和功能,当然还有一些其它的特性),移动电话Mobilephone和固定电话Fixedphone为两个子类,并使移动电话实现接口、可移动Moveable。固定电话又有子类、无绳电话Cordlessphone。设计并定义这几个类,明确它们的继承关系,定义子类时给出子类有别于父类的新特性。 5、声明测试类、声明Phone类的数组(含5个元素),生成五个对象存入数组、其中二个Phone类的对象、一个Mobilephone类的对象、一个Fixedphone类的对象和一个Cordlessphone类的对象,打印输出每个对象的某个成员变量。将一个父类的引用指向一个子类对象,用这个塑型后的对象来调用某个方法实现多态性。

6、设计一个动物类,它包含动物的基本属性。例如名称、大小、重量等,并设计相应的动作,例如跑、跳、走等。 7、设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的set方法和get方法设置和获得长和宽。编写测试类测试是否达到预定功能。要求使用自定义的包。

8、创建一个People类,定义成员变量如编号、姓名、性别、年龄;定义成员方法“获得编号”、“获得姓名”、“获得年龄”等,再创建People类的对象。

9、设计Point类用来定义平面上的一个点,用构造函数传递坐标位置。编写测试类,在该类中实现Point类的对象。 10、编写程序说明静态成员和实例成员的区别。

11.设计雇员Employee类,记录雇员的情况,包括姓名、年薪、受雇时间,要求定义MyDate类作为受雇时间,其中包括工作的年、月、日,并用相应的方法对Employee类进行设置。编写测试类测试Employee类。要求使用自己的包。 12、编写一个学生的类,要求有姓名、年龄、兴趣、班级编号和一个教员类,要求有姓名、教授课程、专业方向、教龄,设计一个主方法,要求在主方法中调用这两个类。

13、.声明Patient类表示在门诊中的病人,此类对象应包括name(a string),sex(a char),age(an integer),weight(a float),allergies(a boolean).声明存取及修改方法.在一个单独的

类中,声明测试方法,并生成两个patient对象,设置其状态并将信息显示在屏幕上。 14、声明并测试一个负数类,其方法包括toString()及负数的加,减,乘运算。

15、定义一Student类:包括姓名的属性值,Statics类:

16、定义一个类,成员变量是String数组s,成员方法有s的setter和getter,显示s中使用字符串元素的方法。

17、 构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括、取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。 18、用两个方法打印出 200 以内的全部素数(一个是 main()方法,一个是专门判定一个数是 否为素数的方法)。 19、已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1;

fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2;

用递归方法计算 Fibonacci序列,并打印出其前 15项的值。 20、编写一个 Application,其中包含三个同名方法 mySqrt(),它们都只有一个参数,参数的 类型分别为 int 型、float 型和 double 型,它们的功能均为返回参数的平方根,返回值的类 型与参数的类型相同。在方法 main( ) 中调用上面的三个方法并输出结果。 21、编程生产 100 个 1到 6 之间的随机数,统计 1到 6 每个数出现的概率。