[IT认证]自考Java语言程序设计一课后习题.doc

上传人:sccc 文档编号:4650024 上传时间:2023-05-03 格式:DOC 页数:34 大小:191.50KB
返回 下载 相关 举报
[IT认证]自考Java语言程序设计一课后习题.doc_第1页
第1页 / 共34页
[IT认证]自考Java语言程序设计一课后习题.doc_第2页
第2页 / 共34页
[IT认证]自考Java语言程序设计一课后习题.doc_第3页
第3页 / 共34页
[IT认证]自考Java语言程序设计一课后习题.doc_第4页
第4页 / 共34页
[IT认证]自考Java语言程序设计一课后习题.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《[IT认证]自考Java语言程序设计一课后习题.doc》由会员分享,可在线阅读,更多相关《[IT认证]自考Java语言程序设计一课后习题.doc(34页珍藏版)》请在三一办公上搜索。

1、自考Java语言程序设计(一)课后习题及答案自考Java语言程序设计(一)第一章Java语言概述课后习题 一、Java语言概述1Java语言有哪些特点?答:面向对象、简单、平台无关性、安全性、内存管理、分布式应用、多线程、动态、解释运行,高效能2什么叫做类?什么叫做对象?答:在面向对象编程中,具体的客观实体称为对象,对象就是数据加方法。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类。类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对象的模板。3简述Java的运行机制。答:Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在Java开发环境中进行程序代码的输

2、入过程,最终形成后缀名为.java源文件。编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件。运行是指使用Java解释器 将字节码文件翻译成机器代码,在cpu上运行并显示结果的过程。这一过程如图所示。4简述Java应用程序的开发流程。答:Java应用程序的运行经过编写、编译、运行三个步骤。第1步,编写程序。使用记事本或其他软件编写程序的源代码,将源代码保存为文件filename.java文件。第2步,编译程序。在MS-DOS命令窗口,将当前目录转换到Java源程序所在的保存目录;输入“javame.java”形式的命令进行程序编译。第3步,执行程

3、序。在同样的命令窗口中输入“javame”形式的命令执行程序。来源:考试大完成了程序的开发,查看相应t目录,其中应该具有两个文件,分别是XXXX.java和XXXX.class。考试大收集整理c5当初Sun公司发展Java的原因是:(a)要发展航空仿真软件(b)要发展人工智能软件(c)要发展消费性电子产品b6.Java是从哪种语言改进并重新设计?(a)Ade(b)C+(c)Pascala7.Java因为什么快速发展而走红?(a)个人计算机与网络(b)游戏软件(c)系统软件8.Java程序的种类有:(a)内嵌于Web文件中,由浏览器来观看的_Applet_(b)可独立运行的_Applicatio

4、n_考试大论坛(c)服务器端的_ Servlets _9.Java是面向对象语言,对象是客观事物的_软件模型_,对象与之是一一对应的,它是很具体的概念。10. 判断:用Javac编译Java源文件后得到代码叫字节码。(ture)自考Java语言程序设计(一)第二章数据类型和流程控制课后习题二、数据类型和流程控制CDE1. 现有语句:String s = Example;则下面哪些语句是合法语句?A. s = 3;B. s3 = x;C. int i = s.length();D. String t = For + s;E. s = s + 10;BD 2下面哪些是保留字?A. run B. d

5、efault C. implement D. importADF3下面声明float变量的语句合法的有:A. float foo = -1; B. float foo = 1.0; C. float foo = 42e1; D. float foo = 2.02f; E. float foo = 3.03d; F. float foo = 0x0123;double4. 下面方法中的返回类型returnType应该是什么?public class ReturnItreturn Type methodA(byte x, double y) return (short)x / y * 2; CF

6、5以下哪两个表达式是等价的:A. 3/2 B. 32 C. 3*4 D. 32 E. 3*22F. 3 j)break tp; System.out.println(i= + i + ,j= + j); i=5 j=6 (4)public class Testpublic static void main()int i = 1, j = 10; do if(i+ -j)continue; while(i 5); System.out.println(i= + i + j= + j); 15 0 20(5)class Value public int i = 15; public class T

7、est public static void main(String argv) Test t = new Test(); t.first(); public void first() int i = 5; Value v = new Value(); v.i = 25; second(v, i); System.out.println(v.i); public void second(Value v, int i) i = 0; v.i = 20; Value val = new Value();v = val; System.out.println(v.i + + i); AC8.选出合理

8、的标识符A、 _sys1_lll B、 2mail C、 $change D、 class 9. 判断:一个方法最多能有一个return语句(ture)10. Java语言中一个Char类型的数据占用2个字节大小的内存空间(ture)自考Java语言程序设计(一)第三章类与对象课后习题三、类与对象1什么叫引用类型,对象是引用类型吗?答:引用类型是指该类型的标识符表示的是一片内存连续地址的首地址。对象是引用类型。2什么是类成员,什么是实例成员?他们之间有什么区别?答:Java中使用static修饰的变量和方法称为类变量(或称静态变量)和类方法(或称静态方法),没用static修饰符的变量和方法称

9、为实例变量和实例方法。类成员是指该成员属于这个类,由这个类所创建的所有对象共同拥有,该成员仅在类的存储单元中存在,这个类所创建的所有对象中仅存储一个指向该成员的 引用。任何一个该类的对象改变了类成员,其他对象同样会发生改变。对于类成员既可以使用对象访问,也可以使用类名直接进行访问,并且在类方法中只能访问类 变量,而不能访问实例变量。实例成员是指该成员由每一个对象个体独有,对象的存储空间中的确有一块空间用来存储该成员,不同对象的实例成员不同,任何一个对象改变了实例成员, 只会影响这个对象本身,其他对象中的实例成员不会发生改变。对于实例成员只能通过对象来访问,不能通过类名进行访问,在实例方法中既可

10、以访问实例变量,也 可以访问类变量。考试大收集整理3. 判断:数组、类和接口都是引用数据类型(ture)4.判断:类A和类B位于同一个包中,则除了私有成员,类A可以访问类B的所有其他成员(ture)C5.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的()A、publicB、privateC、staticD、final采集者退散C6.下面关于java中类的说法哪个是不正确的()A、类体中只能有变量定义和成员方法的定义,不能有其他语句。B、构造函数是类中的特殊方法。C、类一定要声明为public的,才可以执行。采集者退散D、一个java文件中可以有多个class定义。D7.下列哪个类声明是

11、正确的() A abstract final class H1B abstract private move()C protected private number;D public abstract class CarACD8.下述哪些说法是正确的? (多选)A、 实例变量是类的成员变量B、 实例变量是用static关键字声明的C、 方法变量在方法执行时创建D、方法变量在使用之前必须初始化9设计一个动物类,它包含动物的基本属性。例如名称、大小、重量等,并设计相应的动作,例如跑、跳、走等。答:public class Animalprivate String name;private doub

12、le weight;private int length;privateString sex; public void run()System.out.println(the animal is running!);public void jump()System.out.println(the animal is jumping!);public void walk()System.out.println(the animal is walking!);10设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的set方法和get方法设置和获得长和宽。编写测试类测试是否达

13、到预定功能。要求使用自定义的包。答:package mypackage.math;class Rectangleprivate int length;private int width;public Rectangle(int length,int width)this.length=length;this.width=width;public void set(int length,int width)this.length=length;this.width=width;public void get()System.out.println(此长方形的长为+length+宽为+width)

14、;public int getLength()return length;public int getWidth()return width;public int calculatePerimeter()return 2*(length+width);public int calculateArea()return (length*width);public void print()System.out.println(此长方形的周长为+calculatePerimeter()+面积为+calculateArea();class Testpublic static void main(Stri

15、ng args)Rectangle myrectangle=new Rectangle(15,10);myrectangle.get();myrectangle.print();myrectangle.set(20,15);System.out.println(长方形的长是+myrectangle.getLength()+宽是+ myrectangle .getWidth();myrectangle.print();自考Java语言程序设计(一)第四章方法与构造函数课后习题四、方法与构造函数1Java的访问限定修饰符有几种,各自的访问权限是什么?答:Java的访问限定修饰符有4种,分别使pub

16、lic、protected、private和默认修饰符。用public修饰的类或成员拥 有公共作用域,表明此类或类的成员可以被任何Java中的类所访问,是最广泛的作用范围。用protected修饰的变量或方法拥有受保护作用域,可以被 同一个包中所有的类及其他包中该类的子类所访问。用private修饰的变量或方法拥有私有作用域,只能在此类中访问,在其他类中,包括该类的子类也是不 允许访问的,private是最保守的作用范围。没有任何修饰符拥有默认访问权限(友好访问权限),表明此类或类的成员可以被同一个包中的其它类访问2如何创建自己的包,如何引入包?答:创建自己的包只要将package语句作为Ja

17、va源文件的第一句就可以了。例package myPackage; 声明创建了一个名为myPackage的包。Java使用import语句来引入包及其中的类。例如import myPackage.*;就引入了myPackage包中所有的类。3下面哪一个是类Myclass的构造函数? 答:public Myclass()是类Myclass的构造函数。class Myclasswww.xamda.CoMpublic void Myclass()public static Myclass()public Myclass()public static void Myclass()4. 判断:类体中pr

18、ivate修饰的变量在本类中能访问,类生成的对象也能访问。(false)5. 判断:一个类中,只能拥有一个构造器方法。(false)6.Java中类成员的限定词有以下几种:private, public, _protected_, _默认_。其中,_public_的限定的范围最大。7、被关键字_private_修饰的方法是不能被当前类的子类重新定义的方法8设计Point类用来定义平面上的一个点,用构造函数传递坐标位置。编写测试类,在该类中实现Point类的对象。答:class Point int x,y;Point(int a,int b) x=a;y=b;public class A pub

19、lic static void main(String args) Point p1,p2;p1=new Point(10,10);p2=new Point(23,35);9编写程序说明静态成员和实例成员的区别。答:class StaticTestint i=5;static int j=5;void print()System.out.println(i=+i);System.out.println(j=+j);static void classprint()/System.out.println(i=+i);System.out.println(j=+j);class Testpublic

20、 static void main(String args)/System.out.println(StaticTest.i);System.out.println(StaticTest.j);/StaticTest.print();StaticTest.classprint();StaticTest st=new StaticTest();System.out.println(st.j);System.out.println(st.j);st.print();st.classprint();10设计雇员Employee类,记录雇员的情况,包括姓名、年薪、受雇时间,要求定义MyDate类作为受

21、雇时间,其中包括工作的年、月、日,并用相应的方法对Employee类进行设置。编写测试类测试Employee类。要求使用自己的包。答:package mypackage.employee;class MyDateprivate int year;private int month;private int day;public MyDate(int year,int month,int day)this.year=year;this.month=month;this.day=day;public int getYear()return year; public class Employeepri

22、vate String name;private double salary;private MyDate hireDay;public Employee(String name,double salary,MyDate day)this.name=name;this.salary=salary;hireDay=day;public void print()System.out.println(name+ +salary+hireYear();public int hireYear()return hireDay.getYear();class TestEmployeepublic stati

23、c void main(String args)Employee a=new Employee(李明,20000,new MyDate(2000,10,1);Employee b=new Employee(王强,24000,new MyDate(1995,8,12);a.print();b.print();自考Java语言程序设计(一)第五章类的继承课后习题五、类的继承l什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单重继承?什么是多重继承?答:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中所有非私有的数据和操作的定义作为它自己的部分或

24、全部成分时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。面向对象程序设计中的继承,可使得程序结构更加清晰,降低了编码和维护的工作量。如果一个类只能有一个父类,则这种继承关系称为单重继承;如果一个类可以有多个父类,则这种继承关系称为多重继承。2观察下面的程序片断,指出其中的父类和子类,以及父类和子类的各个域和方法。class SuperClassint data;voidsetData(intnewData)data=newDataintgetData()return dataclass SubClass extends SuperCla

25、ssint suhData;void setSubData(intnewData)suhData=new Data;intgetData()return subData;答:父类SuperClass父类的域data来源:考试大的美女编辑们父类的方法setData(),getData()子类SubClass子类的域data,subData子类的方法setSubData(),setData(),getData()3“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否正确?为什么?答:这种说法是错误的,因为子类不一定能继承父类的所有域和方法,它只能继承所有非私有的域和方法。如果子类

26、在继承之外自己定义的域和方法数目小于父类中私有成员的数目,则子类的域和方法的数目小于父类的域和方法的数目|考试大收集整理4. 在Java程序中,通过类的定义只能实现单重继承(ture)AD 5.下列哪些说法是正确的?A、 Java 语言只允许单一继承B、 Java 语言只允许实现一个接口C、 Java 语言不允许同时继承一个类并实现一个接口D、 Java 语言的单一继承使得代码更加可靠6.Java中所有类都是类_object_的子类。7.请写出下面程序的运行结果。public class Test extends TT public void main(String args) Test t

27、= new Test(Tom); public Test(String s) super(s); System.out.println(How do you do?); public Test() this(I am Tom); class TT public TT() System.out.println(What a pleasure!); public TT(String s) this(); System.out.println(I am +s); 结果:What a pleasure!I am TomHow do you do?8.父类的成员在子类中的访问权限由_访问权限修饰符_决定

28、。9.对象的使用包括引用对象的成员变量和方法。通过运算符_“.”_就能实现对对象成员变量的访问和对象10.Java是面向对象语言,对象是客观事物的_软件模型_,对象与之是一一对应的,它是很具体的概念。自考Java语言程序设计(一)第六章重载与多态课后习题六、重载与多态1.判断:接口中的所有方法都没有被实现。(true)A2.方法重载是指 ( ) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同考试大论坛B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型相同D.两个以上的方法取相同的方法名,并且方法的返回类型相同

29、3什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?答:子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的隐藏不同。子类重新定义父类已有的域,并不能完全取代它从父类那 里继承的同名的域,这个域仍然占用子类的内存空间,在某些情况下会被使用;而当子类重新定义父类的方法时,从父类那里继承来的方法将被新方法完全取代,不 再在子类的内存空间中占一席之地。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。4解释this和super的意义和作用。答:关键字this指代当前类的当前对象,关键字super指代当前类的直接父类对象。

30、5什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点? 答:一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦合和依赖。6Java程序如何实现多态?有哪些方式?答:Java程序通过覆盖和重载两种方式来实现多态。覆盖是子类重新定义父类中已有的方法,重载是在一个类内部定义与已存在的方法同名但是参数列表不同的方法。7根据下面的要求编程实现复数类ComplexNumber。(1)复数类ComplexNumb

31、er的属性m_dRealPart实部,代表复数的实数部分。m_dlmaginPart虚部,代表复数的虚数部分。(2)复数类ComplexNumber的方法ComplexNumber()构造方法,将实部、虚部都置为0。ComplexNumber(doubler,doublei)构造方法,创建复数对象的同时完成复数的实部、虚部的初始化;r为实部的初值,i为虚部的初值。getRealPart()获得复数对象的实部。getlmaginaryPart()获得复数对象的虚部。setRealPart(doubled)把当前复数对象的实部设置为给定的形参的数字。setlmaginaryPart(doubled

32、)把当前复数对象的虚部设置为给定形参的数字。complexAdd(ComplexNumberc)当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调用者。complexAdd(doublec)当前复数对象与形参实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。complexMinus(ComplexNumberc)当前复数对象与形参复数对象相减,所得的结果也是复数值,返回给此方法的调用者。答:public class ch5_e5_12public static void main(String args)ComplexNumber cNumber_1 =new Co

33、mplexNumber(3,-5);ComplexNumber cNumber_2 = new ComplexNumber(2,2);double d = 10.0;System.out.println(cNumber_1.toString() + 加 + cNumber_2.toString() + 等于 + cNumber_plexAdd(cNumber_2).toString();System.out.println(cNumber_1.toString() + 加 + d + 等于 + cNumber_plexAdd(d).toString();System.out.println(c

34、Number_1.toString() + 减 + cNumber_2.toString() + 等于 + cNumber_plexMinus(cNumber_2).toString();System.out.println(cNumber_1.toString() + 减 + d + 等于 + cNumber_plexMinus(d).toString();System.out.println(cNumber_1.toString() + 乘 + cNumber_2.toString() + 等于 + cNumber_plexMulti(cNumber_2).toString();Syste

35、m.out.println(cNumber_1.toString() + 乘 + d + 等于 + cNumber_plexMulti(d).toString();class ComplexNumber/域private double m_dRealPart;private double m_dImaginPart;/构造方法ComplexNumber()m_dRealPart = 0.0;m_dImaginPart = 0.0;ComplexNumber(double r,double i)m_dRealPart = r;m_dImaginPart = i;ComplexNumber(Com

36、plexNumber c)m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();/get,set方法double getRealPart()return m_dRealPart;double getImaginaryPart()return m_dImaginPart;void setRealPart(double d)m_dRealPart = d;void setImaginaryPart(double d)m_dImaginPart = d;/复数运算方法ComplexNumber complexAdd(Co

37、mplexNumber c)return new ComplexNumber(this.m_dRealPart + c.getRealPart(),this.m_dImaginPart + c.getImaginaryPart();ComplexNumber complexAdd(double c)return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);ComplexNumber complexMinus(ComplexNumber c)return new ComplexNumber(this.m_dRealPar

38、t - c.getRealPart(),this.m_dImaginPart - c.getImaginaryPart();ComplexNumber complexMinus(double c)return new ComplexNumber(this.m_dRealPart - c, this.m_dImaginPart);ComplexNumber complexMulti(ComplexNumber c)return new ComplexNumber(this.m_dRealPart * c.getRealPart() - this.m_dImaginPart * c.getImag

39、inaryPart(),this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart();ComplexNumber complexMulti(double c)return new ComplexNumber(this.m_dRealPart * c, this.m_dImaginPart * c);/toString()public String toString()return ( + m_dRealPart + + + m_dImaginPart + i + );8什么是接口?为什么要定义接口?接口与类有何异同?来源:考试大的美女编辑们答:接口是用来实现类间多重继承功能的结构。接口与类相似,但是接口中只能包括常量和抽象方法。定义接口相当于定义了一组抽象的功能、属性集合,可以使了ava程序的类层次结构更加合理,并实现多重继承。9一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 文秘知识


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号