《Java面向对象编程》练习题 下载本文

3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。包括如下属性和对属性进行操作的方法。

String xm;// 姓名 String xb;// 性别 int nl;// 年龄

String jtzz;// 家庭住址 String xl;// 学历

4.编写程序,提供实现各种数学计算的方法。包括如下几项。 (1)两个数的加、减、乘、除。

(2)求某数的相反数、倒数、绝对值。 (3)取两数中较大的和较小的。

(4)对浮点数(double型)的计算功能。如:给定浮点数d,取大于或等于d的最小整数,

取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数log(d)等。

(5)计算以double型数a为底数,b为指数的幂。 5.编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。

6.定义一个接口,接口中有3个抽象方法如下。 (1)“long fact(int m);”方法的功能为求参数的阶乘。 (2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。 (3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和是否大

于100。

定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出。

7.创建一个接口IShape,接口中有一个求取面积的抽象方法“public double area()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。

8.定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。 (1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作是学

习)。

(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是??

自己想吧)。

(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。 (4)编写主函数分别对上述3类具体人物进行测试。

专题6 字符串、日期时间类 一、填空题

1.已知String对象 s=”hello”,运行语句“System.out.println(s.concat(“World!”));”后,s的值为( )

2.使用+=将字符串s2添加到字符串s1后的语句是( )

3.比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:( ) 4.已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:( )

5.获取当前系统时间( )

6.已知StringBuffer sb=new StringBuffer(\,则sb.reverse()后,sb的值为 。

7、String s1=“China”; int n=s1.length( ); n的值为 (10) 。

二.选择题

1. 已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为( )。

A.”bcde” C.”cdef”

2. 若有下面的代码:

String s=”people”; String t=”people”;

Char c[]={?p?, ?e?, ?o?, ?p?, ?l?, ?e?};

下面哪一选项的语句返回值为假( )?

B.”cde” D.”def”

A.s.equals(t) C.s==t

B.t.equals(c)

D.t.equals(new String(“people”))

3. 已知s为一个String对象,s=”abcdefg”,则s.charAt(1)的返回值为( )。

A.a C.f

4. 若有下面的代码:

String s=”good”;

下面选项语句书写正确的是:( )。

B.b D.g

A.s+=”student”; C.int len=s.length

B.char c=s[1];

D.String t=s.toLowerCase();

5、假设String s=\,则下面返回\的语句为 。 A.s.substring(6,8); C.s.substring(5,7);

B.s.substring(5,9); D.s.substring(6,7);

6、调用下面哪个方法时会改变原有对象 。 A.String的trim( ) C.StringBuffer的reverse( )

B.String的length( ) D.StringBuffer的length( )

7、已知int i=123,通过以下哪种方式可以得到字符串\ 。 A.Integer.parseInt(i);

B.String.valueOf(i); D.Float.parseFloat(i);

C.Long.parseLong(i);

8、由\得到的数值 。

A.>0 B.=0 C.<0 D.不确定 9、已知String s= \,则s.indexOf(\的值为 。 A.1 B.2 C.3 D.4 10、已知int i=123,通过以下哪种方式可以得到字符串\ 。 A.Integer.parseInt(i);

B.String.valueOf(i); D.Float.parseFloat(i);

C.Long.parseLong(i); 11、以下程序段执行的结果为 。 String str1, str2; str1 = \str2= \

System.out.print(str1.equals(str2)); System.out.println(str1 == str2); A.truefalse

B.truetrue

C.falsetrue D.falsefalse

12、已知StringBuffer sb=new StringBuffer(\,则sb.delete(1,2)后sb的值为 。 A.abc B.abde C.acde D.ade

三、编程题

1.实现把“I Love Java!”的字符全部转换为小写并输出到控制台。

2.使用String类中的split()函数,统计出“this is my homework! I must finish it!”中单词的个数。 (注意:单词之间用一个空格来分隔。)

3.给出两个日期,计算它们之间相隔的天数。

4.实现将当前日期信息以4位年份、月份全称、两位日期形式输出。