阅读下列说明、图和Java代码,回答问题1至问题3。【说明】已知四个类之间的关系如图2-4所示,分别对每个类的方法进行编号,例如Shape的perimeter()为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为 2:perimeter(),依此类推,其中,每个类的perimeter方法签名相同。【Java代码】Triangle tr=new Triangle();Square sq=new Square();Shape sh=tr;关于上述Java代码中sh和tr的以下叙述中,哪两个是正确的(写出编号)。①sh和tr分别引用同一个对象;②sh和tr分别引用同一类型的不同的对象:③sh和tr分别引用不同类型的不同对象:④sh和tr分别引用同一个对象的不同拷贝;⑤sh和tr所引用的内存空间是相同的。
阅读下列说明、图和Java代码,回答问题1至问题3。
【说明】
已知四个类之间的关系如图2-4所示,分别对每个类的方法进行编号,例如Shape的perimeter()为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为 2:perimeter(),依此类推,其中,每个类的perimeter方法签名相同。
【Java代码】
Triangle tr=new Triangle();
Square sq=new Square();
Shape sh=tr;
关于上述Java代码中sh和tr的以下叙述中,哪两个是正确的(写出编号)。
①sh和tr分别引用同一个对象;
②sh和tr分别引用同一类型的不同的对象:
③sh和tr分别引用不同类型的不同对象:
④sh和tr分别引用同一个对象的不同拷贝;
⑤sh和tr所引用的内存空间是相同的。
相关考题:
请阅读以下技术说明、类图及C++代码,根据要求将(1)~(5)空缺处的内容填写完整。[说明]已知对某载客车辆(Car)进行类建模,如图4-19所示。其中,类Engine表示发动机引擎,类Wheel表示车轮,类Body表示车身,类Driver表示司机,类Passenger表示乘客。[C++代码]car.run();}
请阅读以下技术说明、类图及Java代码,根据要求将(1)~(5)空缺处的内容填写完整。[说明]已知对某载客车辆(Car)进行类建模,如图4-20所示,其中类Engine表示发动机引擎,类Wheel表示车轮,类Body表示车身,类Driver表示司机,类Passenger表示乘客。
阅读下列说明、图和C++代码,回答问题1至问题3。【说明】已知四个类之间的关系如图2-2所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为2:perimeter(),依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。【C++代码】Triangle *tr=new Triangle();Square *sq=new Square();Shape *sh =tr;关于上述C++代码中sh和tr的以下叙述中,哪两个是正确的(写出编号)。①sh和tr分别引用同一个对象;②sh和tr分别引用同一类型的不同的对象:③sh和tr分别引用不同类型的不同对象;④sh和tr分别引用同一个对象的不同备份:⑤sh和tr所引用的内存空间是相同的。
请阅读以下技术说明、类图及Java代码,根据要求将(1)~(7)空缺处的内容填写完整。1. [说明]已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图1-18所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图1-19所示。在图1-19中,类RomoteController的方法onPressButton(int button)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接口中on和off方法分别用于控制电器的开与关;Light中turnLight (int degree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中setChannel(int channel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。[Java代码]本试题应用命令模式能够有效让类(5)和类(6)、类(7)之间的耦合性降至最小。
试题七(共 15 分)阅读下列说明、图和Java 代码,回答问题1 至问题3,将解答写在答题纸的对应栏内。[说明]已知四个类之间的关系如图 7-1 所示,分别对每个类的方法进行编号,例如 Shape的 perimeter()为 1 号,表示为“1:perimeter()” ,Rectangle 类的 perimeter()为 2 号,表示为“2:perimeter()” ,依此类推,其中,每个类的 perimeter方法签名相同。[Java 代码]Triangle tr = new Triangle();Square sq = new Square();Shape sh = tr;[问题 1] 关于上述 Java代码中 sh 和 tr 的以下叙述中,哪两个是正确的(写出编号) 。① sh 和 tr 分别引用同一个对象;② sh 和 tr 分别引用同一类型的不同的对象;③ sh 和 tr 分别引用不同类型的不同对象;④ sh 和 tr 分别引用同一个对象的不同拷贝;⑤ sh 和 tr 所引用的内存空间是相同的。[问题 2] 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无” ) 。tr.height() (1)sh.perimeter() (2)sq.height() (3)sq.perimeter() (4)sh.height() (5)tr.perimeter() (6)[问题 3] 下列赋值语句中哪两个是合法的(写出合法赋值语句的编号) 。① sq = sh; ② sh = tr; ③ tr = sq; ④ sq = tr; ⑤ sh = sq;
试题六(共15分)阅读以下说明、图和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对应栏内。【说明】已知对某几何图形绘制工具进行类建模的结果如图6.1所示,其中Shape为抽象(abstract)类,表示通用图形,Box(矩形)、Ellipse(椭圆)和Line(线条)继承(extends)了Shape类,其中,Circle表示圆(即特殊的椭圆)。下面的Java代码用于实现图 6-1所给出的设计思路,将其空缺处填充完整并编译运行,输出结果为:EllipseCircleEllipseCE【Java代码】(1) class Shape{public Shape(String name){this.name= name;}(2) void paint();String getName(){retum this.name;}final String name;};//Box 和Line类似下面 Ellipse,其代码略class Ellipse (3) {public Ellipse(String name){super(name);System.out.println("Ellipse");}Void paintO{∥绘制现状示意代码System.out.println(getName0);}};class Circle (4) {public Circle(String name){super(name);System.out.println("Circle");}};class Diagram{private Shape shapes[]= new Shape[2];public void drawAShape(Shape shape){shape.paint();}void erase A Shape(Shape shape){∥删除形状,代码略}void drawShapes(){shapes*0+= new Circle("C”);shapes[l]= new Ellipse("E");for (int i=O; i2;++i) {drawAShap(shapes[i]);//绘制形状}}void close(){for (int i=0;i2; ++1) { []关闭图,删除所绘制图形(5) ;}}public static void main(String[] args){Diagram diagram= (6) ;diagram.drawShapes();diagram.close();}}
试题五(共 15 分)阅读下列说明、图和C++代码,回答问题1 至问题3,将解答写在答题纸的对应栏内。[说明]已知四个类之间的关系如图 5-1 所示,分别对每个类的方法进行编号,例如 Shape的 perimeter()方法为 1 号,表示为“1:perimeter()” ,Rectangle 类的 perimeter()为2号,表示为“2:perimeter()” ,依此类推,其中,每个类的 perimeter方法都为虚函数且方法签名相同。[C++代码]Triangle *tr = new Triangle();Square *sq = new Square();Shape *sh = tr;[问题 1] 关于上述 C++代码中 sh 和 tr 的以下叙述中,哪两个是正确的(写出编号) 。① sh 和 tr 分别引用同一个对象;② sh 和 tr 分别引用同一类型的不同的对象;③ sh 和 tr 分别引用不同类型的不同对象;④ sh 和 tr 分别引用同一个对象的不同拷贝;⑤ sh 和 tr 所引用的内存空间是相同的。[问题 2] 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无” ) 。tr-height() (1)sh-perimeter() (2)sq-height() (3)sq-perimeter() (4)sh-height() (5)tr-perimeter() (6)[问题 3] 不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号) 。① sq = sh; ② sh = tr; ③ tr = sq; ④ sq = tr; ⑤ sh = sq;
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】下图是某商场购物系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:(1) 类Manager重新实现了类Customer的方法 calMoney( );(2) 方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。(3)类Admin中的方法statMoney()中首先调用了该类的方法load( ),获取顾客列表,然后调用了类Customer中的方法calMoney( )。现拟采用面向对象的方法进行测试。 【问题1】(4分)图4-1 所示的类图中,类Manager和类Customer之间是什么关系?该关系对测试的影响是什么?【问题2】(6分)(1) 类Manager重新实现了类Customer的方法calMoney( ),这是面向对象的什么机制?是否需要重新测试该方法?(2) 类Manager中的方法getMoney ( )继承了其父类 Customer 的方法getMoney ( ),是否需要重新测试该方法?【问题3】(6分)(1)请结合题干中说明的描述,给出测试类Customer方法calMoney()时的测试序列;(2)请给出类图中各个类的测试顺序。【问题4】(4分)从面向对象多态特性考虑,测试方法statMoney( )时应注意什么?
阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。【说明】某企业网络拓扑如图1-1所示,A~E是网络设备的编号。