面向对象基础_参考答案
面向对象试题(标准答案)
CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。
A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。
《C#面向对象基础教程》课后习题参考答案
一、填空题1.3.02.和WinForm、和XML、基础类库3.解决方案资源管理器4.服务器资源管理器5.Ctrl+J二、选择题1.A 2.B 3.B 4.Ctrl+J一、填空题1.值,引用2.Private/私有的3.const4.break5.variable>5&& variable<=10二、选择题1.C 2.D 3.B 4.B 5.一、填空题1.属性、方法2.New、构造3.~类名( ){ //析构函数体}。
用于销毁类的实例,来释放被类的实例所占用的资源。
4.继承、多态、封装5.被继承且被实现二、选择题1.B 2.A 3.D 4.D 5.一、填空题1.值类型2.对象类型3.void4.某个命名空间5.using 别名=命名空间或类的完全限定名;二、选择题1.C 2.C 3.C 4.D 5.一、填空题1.引用,02.值、引用、输出3.引用,方法4.20363542435.3,4二、选择题1.B 2.C 3.A 4.C 5. D一、填空题1.接口,继承2.方法、属性,实例化3.接口,父类4.IA.PaintIB.Paint5.03二、选择题1.C 2.C 3.A 4.A 5.一、填空题1.类,数据、操作2.限制,封装3.属性,get、set4.value5.只读二、选择题1.D 2.A 3.B 4.C 5.一、填空题1.object,密封类2.base,个数、次序3.父接口,new4.调用A的构造函数调用B的构造函数5.IB,public void IA.Disp(),public void IB.Disp()二、选择题1.D 2.B 3.B 4.D 5.一、填空题1.同名2.virtual,static、abstract3.对接口直接重新实现,对接口成员使用virtual关键字重新实现4.Shanghai5.this is a function in Athis is a function in Bthis is a function in C二、选择题1.D 2.C 3.B 4.D 5.一、填空题1.Collections2.健/值对3.先进后出/后进先出,Push、Pop4.先进先出,Enqueue、Dequeue5.类型,类型二、选择题1.D 2.B 3.C 4.C 5.一、填空题1.Length2.Trim3.System.Text4.¥1265.jpg二、选择题1.B 2.D 3.B 4.C 5.一、填空题1.try、catch2.throw [异常类的对象];3.编译、运行时、逻辑4.监视5.F9,F5,F11二、选择题1.D 2.A、C 3.B 4.D 5.C。
面向对象基础-参考答案
一、【必做题】1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。
面向对象答案
一、填空题101 Java 中一个类可以有1 个父类。
102 如果一个类的声明中没有使用extends 关键字,这个类被系统默认为是Object 类的子类。
103 子类自然地继承了其父类中不是private 的成员变量作为自己的成员变量。
104 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量隐藏了父类的成员变量。
105 子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变为自身的状态和行为。
106 对于重写或继承的方法,Java 运行时系统根据调用方法的实例的类型来选择调用哪个方法。
107 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类的方法。
108 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用父类的方法。
109 在Java 语言中多态性体现在由方法重载实现的静态多态性和方法重写实现的动态多态性。
110 final 类不能被继承,即不能有子类。
111 abstract 类不能创建对象,必须产生其子类,由子类创建对象。
112 如果一个方法被修饰为final 方法,则这个方法不能被重写。
113 对于abstract 方法,只允许声明,而不允许实现。
114 如果一个方法被修饰为final 方法,则这个方法不能被重写。
115 如果一个类是一个abstract 类的子类,它必须具体实现父类的abstract 方法。
116 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字this 。
117 在关键字中能代表当前类或对象本身的是this 。
118 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字super 。
119 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super 来表示。
120 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字super 。
第7章 面向对象的程序设计基础 答案
第7章面向对象的程序设计基础答案一、单项选择题1.D2.A3.D4.D5.A6.A7.C8.D9.C 10.A 11.C 12.C 13.A 14.A 15. D 16.A 17.D 18. A 19.C 20.B 21.D 22.A23.C二、多项选择题1.B C2.A B D3.B C D4.A B C5.B C6.A B7.A B C D8.A B D9.A B D10.A B C D三、填空题1.事件方法2.封装性多态性3.容器类控件类容器类对象控件类对象4.类对象5.绝对引用相对引用6.This ThisForm ThisFormset Parent四、面向对象程序设计题1.(1)新建如图7-1所示的表单:图7-1 显示当前系统日期和时间表单(2)在相应的事件过程中,编写如下代码:a)a)在文本框Text1的Click事件中,写入如下代码:this.value=date()b)在文本框Text1的DblClick事件中,写入如下代码:this.value=time()C)在命令按钮Command1的Click事件中,写入如下代码:thisform.text1.value=""d)在命令按钮Command2的Click事件中,写入如下代码:thisform.release(3)运行表单,结果如图7-2所示:注:“删除”为command1按钮,“退出”为command2按钮。
2.(1)新建如图7-3所示的表单:(2)在相应的事件过程中,编写如下代码:a ) a ) 在表单Form1的ACTIV ATE 事件中,写入如下代码: thisform.text3.setfocus public n n=0b ) b ) 在文本框Text1的Click 事件中,写入如下代码:this.value=date()c ) c ) 在文本框Text2的Click 事件中,写入如下代码:this.value=time()d )在命令按钮Command1的Click 事件中,写入如下代码: ma=thisform.text3.valuek1=str(month(date()),2)+str(day(date()),2) k2=subs(time(),1,2) k=k1+k2 k=allt(k)if allt(ma)=kbel3.caption="欢迎使用本系统!" elsen=n+1 if n=3bel3.caption="您无权使用本系统!" thisform.text3.enabled=.f.mand1.enabled=.f.图7-2 显示当前系统的日期和时间的运行结果图7-3 密码输入表单elsebel3.caption="口令错,请重新输入口令!" thisform.text3.value="" thisform.text3.setfocus endif endife )在命令按钮Command2的Click 事件中,写入如下代码: thisform.release(3)运行结果如图7-4所示:注:“确定”为command1按钮,“关闭”为command2按钮。
(完整版)面向对象编程基础习题及答案
B.a runtime error
C.a logic error
31.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) & (1 > x++).
A.0
B.-1
C.1
32.Suppose x=0 and y=0 what is x after evaluating the expression (y > 0) && (1 > x++).
B. The program displays month is 9
C. The program displays month is 9.0
D.The program has a syntax error, because 09 is an incorrect literal value.
28.To assign a double variable d to a float variable x, you write
D.byte
19.Which of the following operators has the highest precedence?
A.casting
B.+
C.*
D./
20.An int variable can hold __________.
A.'x'
B.93
C.98.3
D.true
E.a and b
27.Analyze the following code.
public class Test {
2-面向对象基础测试题和答案
2-面向对象基础测试题和答案2-面向对象基础测试题和答案共40道选择题,每题2.5分。
多选题有错则全错,全对才满分. 面向对象部分测试题1.下面描述函数重写错误的是CA. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的2.关于封装下面介绍错误的是(D )。
A. 封装将变化隔离B. 封装提高重用性。
C. 封装安全性D. 只有被private修饰才叫做封装3.试图编译运行下面的代码会发生什么情况Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i);}}A. 错误,变量i没有被初始化B. 输出nullC. 输出1D. 输出04.在Java中,下面对于构造函数的描述正确的是(D)。
A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5.下面Java代码的运行结果是(C )。
class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() { //是一般方法,不是构造方法health = 10;sex = "雄";System.out.println("执行构造方法。
");}public void print() {System.out.println("企鹅的名字是" + name +",健康值是" + health + ",性别是" + sex+ "。
面向对象基础-参考答案
面向对象基础-参考答案一、【必做题】Ⅰ.选择题1、列选项中哪个是类publicclaTet{}的默认构造方法__C__A.Tet();B.Tet(void);C.publicTet();D.publicTet(void);E.publi cvoidTet();2、给定下列代码的执行结果是_E___publicclaA{voidA(){Sytem.out.println(“ClaA”);}publictaticvoidmain(String[]arg){newA();}}A.ClaAB.在第2行处抛出异常C.编译错误D.在第6行处抛出异常E.代码执行后没有输出某某某3、给定以下代码:1.publicclaContOver{2.publicContOver(int某,inty,intz){3.}4.}下列选项中,哪些可以在ConOver类中定义成重载的构造方法___AC_:A.ContOver(){}B.intContOver(){}C.ContOver(intz,inty,byte某){}D.ObjectContOver(int某,inty,intz){}E.voidContOver(byte某,bytey,bytez){}4、以下代码的执行结果是__A___?//Illegalmodifierforparameteri;onlyfinalipermittedA.编译失败B.编译成功,输出“0”C.编译成功,输出“1”D.编译成功,输出“2”5、以下代码的执行结果是__C___?A.代码编译成功,并且打印“=”B.代码编译成功,并且打印“=null”C.代码编译失败,因为为被初始化D.代码编译失败,因为不可以被引用E.代码编译成功,但是运行时抛出NullPointerE某ception6、给定以下代码:12.voidtart(){13.Aa=newA();14.Bb=newB();15.a.(b);16.b=null;1 7.a=null;对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___A.在第16行之后B.在第17行之后C.在第18行之后(当函数执行完成后)D.无法确定E.垃圾回收器不会回收该对象Ⅱ.程序分析题1、在指定位置上填写正确的代码:publicclaCircleStatic{taticdoublepi=3.14;intradiu=100;publictaticvoidmain(String[]arg){Sytem.out.println(_pi_);//打印pi_CircleStaticc=newCircleStatic();_________________;Sytem.out .println(__c._radiu_);//打印radiu}}2、下面的程序有错误,请修正,并说明原因:publicclaCircleStatic{taticdoublepi=3.14;intradiu=100;publictaticvoidmain(String[]arg){Sytem.out.println(pi);Sytem.out.println(radiu);//静态方法里不能直接用非静态属性Circlec=newCircle();Sytem.out.println(c.radiu);}}claCircle{taticdoublepi=3.14;intradiu;publicCircle(){}publicCircle(intr){radiu=r;}publictaticdoublegetPi(){returnpi;}publicvoidtatichowArea(){//publictaticvoidhowArea()修饰符顺序不对Sytem.out.println(pi某radiu某radiu);//静态方法里不能直接用非静态属性/某Circlec=newCircle();Sytem.out.println(pi某c.radiu某c.radiu);某/}}3、分析如下程序,写出执行结果://先静态块(只执行一次)方法块构造方法publicclaBlockDemo{publictaticvoidmain(String[]arg){Peronp=newPeron();Peronq=ne wPeron();p.ayHello();q.ayHello();}}claPeron{taticinteyeNum;Stringname;intage;doubleheight;{//非静态块Sytem.out.println(\);name=\;age=18;height=1.75;}tatic//静态块{Sytem.out.println(\);eyeNum=2;}publicPeron(){Sytem.out.println(\);}publicvoidayHello(){Sytem.out.println(\+name);}}taticblocknon-taticblockaaaaaaaaaaaanon-taticblockaaaaaaaaaaaaHello,mynameizhanganHello,mynameizhanganⅢ.编程题1.(1)定义一个人类Peron:1)定义一个方法ayHello(),可以向对方发出问候语“hello,mynamei某某某”2)有三个属性:名字、身高、体重(2)定义一个PeronCreate类:1)创建两个对象,分别是zhangan,33岁,1.73;lihi,44,1.74 2)分别调用对象的ayHello()方法。
C#面向对象编程基础考试
C#面向对象编程基础考试(答案见尾页)一、选择题1. 在C中,下列哪个关键字用于定义类的成员变量?A. privateB. publicC. protectedD. internal2. 在C中,下列哪个关键字用于定义类的方法?A. privateB. publicC. protectedD. internal3. 在C中,下列哪个关键字用于实现继承?A. virtualB. overrideC. sealedD. abstract4. 在C中,下列哪个关键字用于限制某个类的成员只能被同一类中的其他成员访问?A. privateB. publicC. protectedD. internal5. 在C中,下列哪个关键字用于创建抽象类?A. virtualB. overrideC. sealedD. abstract6. 在C中,下列哪个关键字用于标记某个成员是静态的?A. privateB. publicC. protectedD. internal7. 在C中,下列哪个关键字用于表示数组的长度?A. lengthB. sizeC. lengthD. capacity8. 在C中,下列哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault9. 在C中,下列哪个关键字用于同步对共享资源的访问?A. lockB. unlockC. sleepD. wait10. 在C中,下列哪个关键字用于定义委托?A. delegateB. eventC. interfaceD. class11. C是一种哪种编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程12. 在C中,什么是类?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式13. 在C中,什么是字段?A. 类的成员变量B. 方法内部的变量C. 属性的成员变量D. 构造函数的参数14. 在C中,什么是接口?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式15. 在C中,什么是继承?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式16. 在C中,什么是多态?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式17. 在C中,什么是封装?B. 一种方法C. 一种属性D. 一种代码组织方式18. 在C中,什么是委托?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式19. 在C中,什么是事件?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式20. 在C中,什么是LINQ?A. 一种数据类型B. 一种方法C. 一种属性D. 一种代码组织方式21. C是一种什么编程语言?A. 面向过程B. 面向对象C. 函数式编程D. 逻辑编程22. 在C中,什么是类?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合23. 在C中,什么是字段?A. 类的成员变量B. 方法内部的局部变量C. 类的静态成员变量D. 对象的内部成员变量24. 在C中,什么是方法?A. 类的成员函数B. 函数库中的函数C. 对象的行为D. 代码块25. 在C中,什么是属性?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块26. 在C中,什么是索引器?A. 类的成员变量B. 方法内部的局部变量C. 访问或修改类成员的方法D. 代码块27. 在C中,什么是委托?A. 一种数据类型B. 一种代码组织方式C. 一个对象的集合D. 一个函数库28. 在C中,什么是事件?B. 一种代码组织方式C. 一个对象的集合D. 一个函数库29. 在C中,什么是继承?A. 一种数据类型B. 一种代码组织方式C. 一个类可以继承另一个类的特性D. 一个类可以继承另一个类的功能30. 在C中,什么是多态?A. 一种数据类型B. 一种代码组织方式C. 同一个接口可以被不同的类实现D. 一个类可以有多个基类31. 关于C语言中面向对象编程的描述,以下哪个是正确的?A. C#支持继承和多态B. C#支持封装和多态C. C#支持继承和封装D. C#只支持封装32. 在C中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. delegate33. 在C中,以下哪个关键字用于定义属性(Accessors)?A. publicB. privateC. protectedD. virtualA. publicB. privateC. protectedD. virtual35. 在C中,以下哪个关键字用于实现接口?A. implementsB. extendsC. implementsD. extends36. 在C中,以下哪个关键字用于访问类的成员?A. thisB. baseC. staticD. void37. 在C中,以下哪个关键字用于创建对象实例?A. newB. createC. instanceD. newinstance38. 在C中,以下哪个关键字用于抛出异常?A. throwB. catchC. finallyD. fault39. 在C中,以下哪个关键字用于同步代码块?A. lockB. syncC. beginD. commitA. staticB. constC. virtualD. abstract二、问答题1. 什么是面向对象编程(OOP)?2. 在C中,类和对象有什么区别?3. 什么是封装?在C中如何实现封装?4. 什么是继承?在C中如何实现继承?5. 什么是多态?在C中如何实现多态?6. 在C中,如何使用LINQ技术查询数据?7. 什么是委托?在C中如何使用委托?8. 什么是异常处理?在C中如何处理异常?参考答案选择题:1. A2. B3. D4. A5. D6. C7. C8. A9. A 10. A11. B 12. A 13. A 14. A 15. D 16. D 17. D 18. B 19. D 20. D21. B 22. A 23. A 24. A 25. C 26. D 27. C 28. D 29. C 30. C31. A 32. A 33. D 34. D 35. A 36. A 37. A 38. A 39. A 40. A问答题:1. 什么是面向对象编程(OOP)?面向对象编程是一种编程范式,它使用“对象”来设计软件。
UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)UML是统一的标准
2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修
第3章-面向对象程序设计基础-答案
第3章面向对象程序设计基础【1】什么是Java程序使用的类?什么是类库?[解答]:Java程序的基本单位是类。
对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类。
累是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象是类的实例化,类定义一种对象能够拥有的数据和能完成的操作。
一旦建立类后,就可用它来建立许多你需要的对象。
Java的类库是系统提供的已实现的标准类的集合,是Java编程的API,它可以帮助开发者方便、快捷的开发Java程序。
【2】如何定义方法?在面向对象程序设计中方法有什么作用?[解答]:方法的定义由两部分组成:方法声明和方法体。
方法声明的基本格式如下:返回类型方法名(形式参数){…//方法体内容}方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。
在面向对象程序设计中,方法所起的作用是完成类和对象的属性操作。
【3】简述构造方法的功能和特点。
下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。
void Student(int no,String name){studentNo=no;studentName=name;return no;}[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。
构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,构造方法不返回任何数据类型,也不返回void数据类型,即不能在构造方法前加void。
上面的代码出错处:(1)构造方法student前不能加void.(2)不能用return语句。
【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。
编写Java程序创建student类的对象及测试其方法的功能。
[解答]:class student{private String id;private String name;private String sex;private int age;public String getId(){return id; }public String getName(){ return name; }public String getSex(){ return sex; }public int getAge(){ return age; }void setAge(int age){ this.age = age; }}public class TestStudent{ public static void main(String args[]){ student stu = new student("201101010220", "许国鹏", "男",22);System.out.println("student info: " + "\n学号:" +stu.getId()+ "\n姓名"+ stu.getName()+"\n性别:"+stu.getSex()+ "\n年龄:"+stu.getAge());stu.setAge(23);System.out.println("修改后的年龄为:"+stu.getAge());}}【5】扩充、修改程序。
面向对象编程基础考试
面向对象编程基础考试(答案见尾页)一、选择题1. 什么是面向对象编程(OOP)?A. 一种编程范式B. 一种编程语言C. 一种软件开发方法论D. 以上都不是2. 在面向对象编程中,哪个概念描述了类和实例之间的关系?A. 封装B. 继承C. 多态D. 抽象3. 在面向对象编程中,什么是封装?A. 将数据隐藏在对象内部B. 将方法隐藏在对象内部C. 将数据和方法都隐藏在对象内部D. 将对象隐藏在类内部4. 在面向对象编程中,什么是继承?A. 创建一个新的类,这个新类是现有类的扩展B. 创建一个新的类,这个新类与现有类完全相同C. 创建一个新的类,但这个新类只有一个子类D. 创建一个新的类,但这个新类没有子类5. 在面向对象编程中,什么是多态?A. 同一个接口可以被不同的对象以不同的方式实现B. 一个类的所有方法都是静态的C. 一个类的所有属性都是静态的D. 类的每个对象都有一个固定的属性值6. 在面向对象编程中,什么是抽象?A. 创建一个新的类,这个新类是现有类的子类B. 创建一个新的类,这个新类与现有类完全不同C. 创建一个新的类,但这个新类只有一个子类D. 创建一个新的类,但这个新类没有子类7. 在面向对象编程中,什么是局部变量?A. 在方法内部定义的变量B. 在类内部定义的变量,但在方法外部也可以访问C. 在类内部定义的变量,但在方法内部也可以访问D. 在方法内部定义的变量,且只在方法内部可见8. 在面向对象编程中,什么是全局变量?A. 在方法内部定义的变量B. 在类内部定义的变量,但在方法外部也可以访问C. 在类内部定义的变量,但在方法内部也可以访问D. 在程序的任何地方都可以访问的变量9. 在面向对象编程中,什么是构造函数?A. 用于初始化对象的函数B. 用于创建对象的函数C. 用于销毁对象的函数D. 以上都不是10. 在面向对象编程中,什么是析构函数?A. 用于初始化对象的函数B. 用于创建对象的函数C. 用于销毁对象的函数D. 以上都不是11. 什么是面向对象编程(OOP)?A. 一种编程范式B. 一种编程语言C. 一种软件开发方法论D. 一种算法12. 在面向对象编程中,哪个概念描述了对象之间的交互?A. 封装B. 继承C. 多态D. 抽象13. 在面向对象编程中,什么是类(Class)?A. 一个对象的蓝图或原型B. 一个抽象概念C. 一个具体的实现D. 一个操作系统的组件14. 在面向对象编程中,什么是对象(Object)?A. 一个程序中的所有数据B. 一个程序中的所有函数C. 一个具有属性和行为的实体D. 一个计算机的硬件部件15. 在面向对象编程中,什么是继承(Inheritance)?A. 一种代码重用机制B. 一种创建新类的方式C. 一种事件处理机制D. 一种数据处理技术16. 在面向对象编程中,什么是多态(Polymorphism)?A. 一种代码重用机制B. 一种创建新类的方式C. 一种事件处理机制D. 一种数据处理技术17. 在面向对象编程中,什么是封装(Encapsulation)?A. 一种代码重用机制B. 一种创建新类的方式C. 一种事件处理机制D. 一种数据隐藏技术18. 在面向对象编程中,什么是抽象(Abstraction)?A. 一种代码重用机制B. 一种创建新类的方式C. 一种事件处理机制D. 一种概念性的表示19. 在面向对象编程中,什么是继承链(Inheritance Chain)?A. 一种对象之间的关联关系B. 一种代码重用机制C. 一种创建新类的方式D. 一种属性和方法的传递路径20. 在面向对象编程中,什么是接口(Interface)?A. 一种代码重用机制B. 一种创建新类的方式C. 一种事件处理机制D. 一种对象间的通信约定21. 什么是面向对象编程(OOP)?A. 面向对象编程是一种编程范式,它使用“对象”来表示数据和方法。
java面向对象常见简答题
Java面向对象常见简答题以下是一些常见的Java面向对象简答题及答案:1.什么是面向对象编程(OOP)?答案:面向对象编程(OOP)是一种编程范型,它使用“对象”来设计软件和应用程序。
在OOP中,对象是现实世界实体的软件表示,它具有属性和行为。
OOP具有封装、继承和多态等特性,这些特性使得代码更加模块化、可重用和易于维护。
2.什么是类?什么是对象?它们之间的关系是什么?答案:类是一种定义对象结构的模板,它定义了对象的属性(成员变量)和方法(成员函数)。
对象是类的实例,它是类的一个具体实例。
类和对象之间的关系是模板和实例之间的关系。
类是对象的模板,而对象是根据类创建的实例。
3.什么是封装?答案:封装是将对象的属性和方法组合在一起,并隐藏对象的内部实现细节,只暴露必要的接口给外部使用。
封装的作用是提高代码的安全性和可维护性,防止外部随意修改对象的内部状态。
4.什么是继承?答案:继承是从已有的类派生出新的类,新的类继承了原有类的属性和方法。
继承的作用是复用已有类的代码,提高代码的复用性和可维护性。
通过继承,子类可以扩展或修改父类的行为。
5.什么是多态?答案:多态是指允许父类的引用变量引用子类的对象,通过父类引用来调用子类的方法。
多态的作用是提高代码的灵活性和可扩展性,允许不同的子类以相同的方式与父类交互。
6.什么是构造函数?它的作用是什么?答案:构造函数是一个特殊的方法,它在创建对象时自动调用,用于初始化对象的属性和状态。
构造函数的作用是创建对象并为其设置初始状态。
7.什么是方法重载?什么是方法重写?它们有什么区别?答案:方法重载是指在同一个类中定义多个同名方法,但它们的参数列表不同。
方法重载的作用是允许根据不同的参数列表使用相同的方法名。
方法重写是指在子类中重新定义父类中已有的方法。
方法重写的作用是允许子类改变或扩展父类的行为。
方法重载和方法重写的区别在于它们的参数列表和使用场景不同。
8.什么是抽象类?什么是接口?它们有什么区别?答案:抽象类是一个不能被实例化的类,它只能作为其他类的基类使用。
面向对象参考答案整理
客观世界是由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。
具有相同属性和操作的对象可归纳成类,对象是类的一个实例。
类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。
对象之间的联系通过消息传递来维系。
封装是面向对象方法的一个重要原则,封装有两个含义:结合性即将属性和方法结合;信息隐蔽性利用接口机制隐蔽内部细节。
继承性是指子类可以自动拥有父类的全部属性与操作的机制。
继承可分为单重继承和多重继承两类。
继承简化了对现实世界的描述定义子类时不必定义那些在父类中已经定义过的属性和操作使软件的复用性提高。
多态性是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
2 什么是分解、耦合度和内聚度?耦合度是从模块外部考察模块的独立性程度。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
模块间耦合高低取决于模块接口的复杂性、调用的方式及传递的消息。
内聚度(Cohesion)是模块内部各成份(语句或语句段)之间的联系。
模块内部各成份联系越紧,即其内聚度越大,模块独立性就越强。
分解:将系统分为更小成分3 什么是动态绑定?动态绑定,是指在程序运行时才将消息所请求的操作与实现该操作的方法进行连接。
4 什么是用例图,用例图有哪些部分组成。
用例是从用户的观点对系统行为的一个描述,特定的环璄下,特定的目标相关的系统与用户之间的一组可能的交互序列组成.用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。
用例图包含6个元素:参与者(Actor)、用例(Use Case)、关联关系(Association)包含关系(Include)、扩展关系(Extend)、泛化关系(Generalization)5 用例图中参与者之间的关系有哪些?用例之间的关系有哪些?参与者之间的关系:泛化关系用例之间的关系:关联关系、包含关系、扩展关系、泛化关系地位:用例图显示了用例和活动者之间、用例之间、以及活动者之间的关系,这种关系描述了模型元素之间的语义联系。
Java程序设计(面向对象基础)期末单元测试与答案
一、单选题1、下面关于类的描述错误的是()。
A.类的实现包括类声明和类体两部分B.一个包可以包含多个类C.类的方法都由方法头和方法体组成D.一个Java程序可以有多个公共类正确答案:D2、关于面向对象概念的描述不正确的是()。
A.程序中的对象等同于现实生活中的对象B.对象描述的是客观世界的实体C.在Java中通过类来描述对象D.类是具有相同特征的若干对象的模板正确答案:A3、下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.只能通过new自动调用C.被系统调用D.由用户直接调用正确答案:B4、对于下面()类定义,可以通过“new J_Class()”生成类J_Class 的实例对象。
A.public class J_Class {public J_Class(void) {}}B.public class J_Class { }C.public class J_Class {public void J_Class() {}public J_Class(String s) {}}D.public class J_Class {public J_Class(String s) {}}正确答案:B5、在Java中,下面对于构造函数的描述正确的是()。
A.构造函数和类有相同的名称,并且不能带任何参数B.构造函数的返回类型是voidC.一个类可以定义多个构造函数D.类必须显式定义构造函数正确答案:C6、下列关于包的描述中,错误的是()。
A.包是使用package语句创建的B.包是若干个类的集合C.包是一种特殊的类D.包有有名包和无名包两种正确答案:C7、下面关于包的描述中,错误的是()。
A.包分为有名包和无名包两种B.包是若干对象的集合C.使用package语句创建包D.使用import语句引入包正确答案:B二、填空题1、类是一组具有相同()和()的对象的抽象。
()是由某个特定的类所描述的一个个具体的对象。
Chp5 面向对象_参考答案
Chp5面向对象基础参考答案1.略2.略3.略4.C考点:1、方法重载;2、实例变量和局部变量有命名冲突,局部变量优先5.不能编译通过,因为int method(int)方法没有返回值。
需要添加相应的return语句。
6.C考点:对象创建的过程7.ABDA正确,因为即使不写构造方法,编译器也会自动生成一个默认构造方法。
B正确,一个类中可以有多个构造方法,这些方法间构成重载C错误,构造方法没有返回值D正确。
8.输出结果为:1011考点:引用的语义。
9.B考点:Java的方法参数传递规则10.C11.C changeValue改变的是形参所指向的对象;而changeRef改变的是形参ca中保存的地址,不会影响实参的地址以及实参所指向的对象。
、12.不能编译通过,需要增加两个构造函数:MyClass()以及MyClass(int)。
13.如下所示public class Student{public void Student(){}//构造函数不能有返回值类型,应把void去掉void init(){age=10;name="limy";}public Student(String name){this.init();=name;}public Student(String name,int age){this.init();this(name);//this()必须放在构造函数中的第一行this.age=age;}int age;String name;}14.见Ex14.java15.应当封装一个Point对象。
具体见Ex15.java16.为Point对象增加一个distance方法,用来计算两点间的距离。
具体见Ex16.java。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、【必做题】Ⅰ.选择题1、列选项中哪个是类public class Test { }的默认构造方法__C__?A. Test();B. Test(void);C. public Test();D. public Test(void);E. public void Test();2、给定下列代码的执行结果是_E___?public class A {void A() {System.out.println(“Class A”);}public static void main(String[] args) {new A();}}A. Class AB. 在第2行处抛出异常C. 编译错误D. 在第6行处抛出异常E. 代码执行后没有输出***3、给定以下代码:1. public class ConstOver {2. public ConstOver (int x, int y, int z) {3. }4. }下列选项中,哪些可以在ConsOver类中定义成重载的构造方法___AC_:A. ConstOver ( ) { }B. int ConstOver ( ) { }C. ConstOver (int z, int y, byte x) { }D. Object ConstOver (int x, int y, int z) { }E. void ConstOver (byte x, byte y, byte z) { }4、以下代码的执行结果是__A___?//Illegal modifier for parameter i; only final is permittedA. 编译失败B. 编译成功,输出“0”C. 编译成功,输出“1”D. 编译成功,输出“2”5、以下代码的执行结果是__C___?A. 代码编译成功,并且打印“s=”B. 代码编译成功,并且打印“s=null”C. 代码编译失败,因为s为被初始化D.代码编译失败,因为s不可以被引用E. 代码编译成功,但是运行时抛出NullPointerException6、给定以下代码:12. void start() {13. A a = new A();14. B b = new B();15. a.s(b);16. b = null;17. a = null;18. System.out.println(“start completed”);}对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___?A. 在第16行之后B. 在第17行之后C. 在第18行之后(当函数执行完成后)D. 无法确定E. 垃圾回收器不会回收该对象Ⅱ. 程序分析题1、在指定位置上填写正确的代码:public class CircleStaticstatic double pi = 3.14;int radius=100;public static void main(String[ ] args){System.out.println( _pi_ ); //打印pi_ CircleStatic c = new CircleStatic ();_________________ ;System.out.println(__c._ radius _); //打印radius}}2、下面的程序有错误,请修正,并说明原因:public class CircleStatic {static double pi=3.14;int radius=100;public static void main(String[] args) {System.out.println(pi);System.out.println(radius); //静态方法里不能直接用非静态属性Circle c=new Circle();System.out.println(c.radius);}}class Circle {static double pi=3.14;int radius;public Circle(){ }public Circle(int r) {radius=r;}public static double getPi() {return pi;}public void static showArea() {// public static void showArea() 修饰符顺序不对System.out.println(pi*radius*radius);// 静态方法里不能直接用非静态属性/* Circle c=new Circle();System.out.println(pi*c.radius*c.radius);*/}}3、分析如下程序,写出执行结果://先静态块(只执行一次)方法块构造方法public class BlockDemo{public static void main(String[] args){Person p=new Person();Person q=new Person();p.sayHello();q.sayHello();}}class Person{static int eyeNum;String name;int age;double height;{ //非静态块System.out.println("non-static block");name="zhangsan";age=18;height=1.75;}static//静态块{System.out.println("static block");eyeNum=2;}public Person(){System.out.println("aaaaaaaaaaaa");}public void sayHello(){System.out.println("Hello, my name is "+name);}}static blocknon-static blockaaaaaaaaaaaanon-static blockaaaaaaaaaaaaHello, my name is zhangsanHello, my name is zhangsanⅢ.编程题1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。
(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。
()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。
public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}6.(1)定义一个动物类Creature1)定义一个方法setSnarl(Cat cat)可以设置动物发出猫的声音2)setSnarl(Dog dog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法setSnarl(Cat cat)可以设置动物发出猫的声音(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法setSnarlDog dog)可以设置动物发出狗的声音(4)定义一个Sound类,在main方法里调用Creature类的setSnarl()和outPut()方法分别设置动物的声音和输出动物的声音效果显示:7.定义一个圆类Circle,描述圆对象。
圆有一个属性radius表示半径,还有一个findArea 方法用于计算圆的面积。
定义一个测试类。
给半径赋值为5,并且输出圆的面积。
}8、定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。
(1)无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;(2) 输出笔记本信息的方法然后编写一个测试类,测试笔记本类的各个方法。
public class ComputeTest {public static void main(String[] args) {Computer c1 = new Computer();c1.showComputer();Computer c2 = new Computer('红', 32);c2.showComputer();}}class Computer {private char color;private int cpuNum;public Computer() {}public Computer(char color, int cpuNum) {this.color = color;this.cpuNum = cpuNum;}public char getColor() {return color;}public void setColor(char color) {this.color = color;}public int getCpuNum() {return cpuNum;}public void setCpuNum(int cpuNum) {this.cpuNum = cpuNum;}public void showComputer() {System.out.println("笔记本的颜色:" + getColor());System.out.println("笔记本的CPU型号:" + getCpuNum());}}9.定义一个汽车类Vehicle,要求如下:(1)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double 类型),并且所有属性为私有。