0.0889

五煦查题

快速找到你需要的那道考题与答案

超星面向对象程序设计_14期末答案(学习通2023完整答案)

21 min read

超星面向对象程序设计_14期末答案(学习通2023完整答案)

第一讲 Java基础知识

第一讲单元测试

1、超星程序下面哪个变量命名是对象答案正确的?
A、a_1
B、设计1_a
C、期末return
D、学习break

2、通完一个 java源文件可以定义几个public class?
A、整答0
B、超星程序1
C、对象答案2
D、设计3

3、期末设 int x = 2 ,学习 y =3 , z = 4; 则表达式 y+=z++/--x 的值是多少?
A、5
B、通完5.5
C、整答7
D、超星程序8

4、double型public成员变量MAX_LENGTH,该值保持为常数0.01,则定义这个变量的语句是什么?
A、public final double MAX_LENGTH=0.01
B、public double MAX_LENGTH=0.01
C、final double MAX_LENGTH=0.01
D、public const double MAX_LENGTH=0.01

5、下面哪个变量命名是正确的?
A、a_b
B、for
C、class
D、a+b

6、整数类型变量的定义与赋值,如 int a=1.5;是否正确。

7、整数类型变量的赋值,int a=25000000000 是否正确

8、$another是合法的变量名

9、Java语言的int整数类型的数据长度是____字节数,布尔类型的数据长度是____字节数。

10、Java语言的Byte类型的数据长度是____字节数。

11、int a=3;int b=4;int c=a/b;则c的值为

12、已知:byte a=(byte)128; a的十进制值为( )。

第一讲作业

1、正整数number如果恰好等于它的因子(因子包括1,但不包括number本身)之和,这个数就称之为“完数”。编写一个应用程序,求1000以内的所有完数。

2、分别用while和for循环计算1+1/2!+1/3!+1/4!+...的前20项和。

第六讲 输入、输出流

第六讲测试

1、下列数据流中,属于输入流的一项是( )。
A、从内存流向硬盘的数据流
B、从键盘流向内存的数据流
C、从键盘流向显示器的数据流
D、从网络流向显示器的数据流

2、Java语言提供处理不同类型流的类所在的包是( )。
A、java.io
B、java.net
C、java.util
D、java.sql

3、下列哪一个是Java系统的标准输入流对象( )?
A、System.err
B、System.exit
C、System.in
D、System.out

4、下列程序实现了在当前包dir815下新建一个目录subDir815,选择正确的一项填入【 】,使程序符合要求( )。 package dir815; import java.io.*; public class X8_1_5 { public static void main(String[] args){ char ch; try{ File path = 【 】 ; if(path.mkdir()) System.out.println("successful!"); } catch(Exception e){ e.printStackTrace(); } } }
A、new File("dir815/subDir815");
B、new File("dir815\subDir815");
C、new File("dir815.subDir815");
D、new File("subDir815");

5、若文件是RandomAccessFile的实例f,并且其基本文件长度大于0,则下面的语句实现的功能是( )。 f.seek(f.length()-1);
A、会导致seek()方法抛出一个IOException异常
B、将文件指针指向文件的最后一个字符后面
C、将文件指针指向文件的最后一个字符前面
D、将文件指针指向文件的第一个字符后面

6、文件缓冲流的作用是提高文件的读/写效率。

7、IOException必须被捕获或抛出。

8、Serializable接口是个空接口,它只是一个表示对象可以串行化的特殊标记。

9、对象串行化机制是指将程序中对象的状态转化为一个字节流,存储在文件中。

10、Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。

11、凡是从外部设备流向中央处理器的数据流,称之为( )流;反之,称之为( )流。

12、所有的字节输入流都从 ( ) 类继承

13、Java系统提供的FileInputStream类是用于读取文件中的( )数据.

14、在java.io包中有4个基本类:InputStream、OutputStream、Reader 及 ( ) 类。

15、对于文件输入流,要实现读取数据的操作,需使用 ( ) 方法。

16、数据的读写操作完毕后,应用 ( )方法来关闭流并释放资源。

第六讲作业

1、将文件“student.txt”中的内容按行读出,并写入到文件“Hello.txt”,且给每行加上行号。要求将文件“Hello.txt”的内容输出。

第二讲 类与对象

第二讲单元测试

1、class aa{ static void Show(){ System.out.println("我喜欢Java!"); } } class BB{ void Show(){ System.out.println("我喜欢C++!"); } } 若已经使用aa类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的_()
A、aa.Show(); b.Show();
B、a.Show(); b.Show();
C、aa.Show(); BB.Show();
D、a.Show(); BB.Show();

2、在类的说明符中,被指定为私有的数据可以被______ 访问?
A、类中的成员函数
B、程序中的任何函数
C、其他类的成员函数
D、派生类中的成员函数

3、有一个类B,下面为其构造方法的声明,正确的是( )。
A、B(int x) { }
B、void B(int x) { }
C、b(int x) { }
D、void b(int x) { }

4、为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( )
A、static void f()
B、abstract void f()
C、public void f()
D、final void f()

5、类Test1定义如下: 1. public class Test1{ 2. public float aMethod(float a, float b){ } 3. 4. } 将以下哪种方法插入行3是不合法的。( )
A、public float aMethod(float c,float d){ }
B、public float aMethod(float a, float b,float c){ }
C、public int aMethod(int a, int b){ }
D、private float aMethod(int a,int b,int c){ }

6、下列哪个叙述是正确的?
A、成员变量的名字不可以和局部变量的相同。
B、方法的参数的名字可以和方法中声明的局部变量的名字相同。
C、成员变量没有默认值。
D、局部变量没有默认值。

7、对于下列Dog类,哪个叙述是错误的? class Dog { Dog(int m){ } Dog(double m){ } int Dog(int m){ return 23; } void Dog(double m){ } }
A、Dog(int m)与Dog(double m)互为重载的构造方法。
B、int Dog(int m)与void Dog(double m)互为重载的非构造方法。
C、Dog类只有两个构造方法,而且没有无参数的构造方法。
D、Dog类有3个构造方法。

8、类是一种类型,也是对象的模板。

9、创建对象时系统将调用适当的构造方法给对象初始化。

10、对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。

11、Java中的构造方法是否有返回值?

12、public class Wordfile{ static int count;…},如何调用变量count?

13、把对象实例化可以生成多个对象,使用_________运算符为对象分配内存空间。

第二讲作业

1、编写一个Circle类,该类创建的对象能够计算面积;再编写一个测试类,使用Circle类计算半径为5的园的面积。 要求上传源代码及运行结果的截图。

第三讲 继承与接口、内部类与异常类

第三讲单元测试

1、Java语言类间的继承关系是
A、单继承
B、多重继承
C、不能继承
D、不一定

2、下面说法不正确的是
A、抽象类既可以做父类,也可以做子类
B、abstract和final能同时修饰一个类
C、抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口
D、声明为final类型的方法不能在其子类中重新定义

3、下面哪条语句把方法声明为抽象的公共方法?
A、public abstract method();
B、public abstract void method();
C、public abstract void method(){ }
D、public void method() extends abstract;

4、关键字supper的作用是
A、用来访问父类被隐藏的成员变量
B、用来调用父类中被重载的方法
C、用来调用父类的构造函数
D、以上都是

5、下列类的定义,错误的是
A、public class test extends Object{ …… }
B、final class operators{ …… }
C、class Point{ …… }
D、void class Point{ …… }

6、一个类实现接口的情况是
A、一次可以实现多个接口
B、一次只能实现一个接口
C、不能实现接口
D、不一定

7、下面关于接口的说法中不正确的是
A、接口中所有的方法都是抽象的
B、接口中所有的方法都是public访问权限
C、子接口继承父接口所用的关键字是implements
D、接口是Java中的特殊类,包含常量和抽象方法

8、以下哪个接口的定义是正确的?
A、interface A { void print() { } ;}
B、interface A { void print();}
C、abstract interface A { void print() ;}
D、abstract interface A extends I1, I2 // I1、I2为已定义的接口 { abstract void print(){ };}

9、哪个关键字可以抛出异常?
A、throws
B、finally
C、transient
D、throw

10、运行下面程序时,会产生什么异常? public class X7_1_4 { public static void main(String[] args) { int x = 0; int y = 5/x; int[] z = { 1,2,3,4}; int p = z[4]; } }
A、ArithmeticException
B、IOException
C、ArrayIndexOutOfBoundsException
D、NumberFormatException

11、对应try和catch子句的排列方式,下列哪一项是正确的?
A、子类异常在前,父类异常在后
B、父类异常在前,子类异常在后
C、只能有子类异常
D、父类和子类不能同时出现在try语句块中

12、抽象方法是一种只有说明而无具体实现的方法。

13、子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。

14、Java 语言不允许同时继承一个类并实现一个接口。

15、捕获异常try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。

16、在面向对象程序设计中,采用( )机制可以有效地组织程序结构。充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量。

17、子类可以重新定义与父类同名的成员方法,实现对父类方法的( )。

18、如果父类中已有同名的abstract方法,则子类中就( ) (能/不能)再有同名的抽象方法。

19、对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用 ( ) 关键字来调用它,但这个调用语句必须是子类构造方法的 第一条 可执行语句。

20、抽象类不能( )对象,该工作由抽象类派生的非抽象子类来实现。

21、接口中的成员方法默认的修饰符是( )

22、所有的Java异常类都是系统类库中的( )类的子类。

第三讲作业

1、设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下: (1)编写接口Animal Animal接口有2个抽象方法cry()和getAnimaName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。 (2)编写模拟器类Simulator 该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音、调用重写的getAnimalName()方法显示动物种类的名称。 (3)编写实现Animal接口的Dog类和Cat类 (4)编写主类Application(用户程序) 在主类Application的main方法中至少包含如下代码: Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); 要求:上传相关源代码;上传运行效果图。

第四讲 常用实用类

第四讲测试

1、已知有定义:String s="I love",下面哪个表达式正确?( )
A、s += "you";
B、char c = s[1];
C、int len = s.length;
D、String s = s.toLowerCase();

2、关于以下程序段,正确的说法是( )。 1. String s1=“x”+“y”; 2. String s2=new String(s1); 3. if(s1==s2) 4. System.out.println(“= = is succeeded”); 5. if (s1.equals(s2)) 6. System.out.println(“.equals() is succeeded”);
A、行4与行6都将执行
B、行4执行,行6不执行
C、行6执行,行4不执行
D、行4、行6都不执行

3、下面哪个不是String类的方法?( )
A、subString()
B、toString()
C、toUpperCase()
D、startsWith()

4、下面哪个是对字符串String的正确定义 ( )
A、String s1=null;
B、String s2=’null’ ;
C、String s3=(String) ‘abc’ ;
D、String s4=(String) ‘\uface’;

5、下列哪个叙述是正确的?( )
A、String 类是final 类,不可以有子类。
B、String 类在java.util包中。
C、"abc"=="abc"的值是false .
D、"abc".equals("Abc")的值是true

6、"I love this game".contains("love")的值是true。

7、"Bird".compareTo("Bird fly")是正数。

8、求 x 和 y 的最小值的表达式是:Math.min(x,y)

9、表达式 (int)(Math.random()*100)+1产生的整数范围是[1,100]。

10、Java语言提供了两种具有不同操作方式的字符串类:String类和 ( )类。

11、比较两个字符串是否相同采用 ( )方法。

12、"RedBird".indexOf("Bird")的值是( )

13、"RedBird".indexOf("Cat")的值是( )

第四讲作业

1、请计算并输出你在黄冈师范学院一共学习了多少天?假设你进校时间为2019年9月1日,毕业时间为2023年6月15日。

第五讲 组件及事件处理

第五讲测试

1、进行Java基本GUI设计需要用到的包是( )。
A、java.io
B、java.sql
C、java.awt
D、java.rmi

2、下列哪个方法可以将MenuBar加入Frame中( )?
A、setMenuBar()
B、add()
C、addMenuBar()
D、setMenu()

3、当单击鼠标或拖动鼠标时,触发的事件是( )。
A、KeyEvent
B、ActionEvent
C、ItemEvent
D、MouseEvent

4、在类中若要处理ActionEvent事件,则该类需要实现的接口是( )。
A、Event
B、Serializable
C、ActionListener
D、Runnable

5、下列说法中错误的是( )。
A、一个类只能实现一个监听器接口
B、一个类中可以同时出现事件源和事件处理者
C、一个类可以实现多个监听器接口
D、同一个对象可以监听一个事件源上多个不同的事件

6、Window是宣示屏上独立的本机窗口,它独立于其它容器,Window的两种形式是()
A、Frame和Dialog
B、Panel和Frame
C、Container和Component
D、LayoutManager和Container

7、( )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。
A、FlowLayout
B、BorderLayout
C、GridLayout
D、CardLayout

8、容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。

9、每个事件类对应一个事件监听器接口,每一个监听器接口都有相对应的适配器。

10、在Swing用户界面的程序设计中,容器可以被添加到其他容器中去。

11、Java的图形用户界面技术经历了两个发展阶段,分别通过提供( )开发包和( )开发包来体现。

12、在事件处理的过程中,主要涉及3类对象: 事件 、 ( ) 和 事件处理者 。

13、按钮可以引发( )事件

14、( )类是对单行文本进行编辑的组件。 TextArea是对多行文本进行编辑的组件。

15、假若一个按钮产生了一个ActionEvent事件,则事件监听器会将该事件传递给 ( )方法来进行事件处理。

16、假若一个按钮btn要产生一个ActionEvent事件,则使用 ( ) 方法 来注册监听器。(只写方法名称)

第五讲作业

1、编写一个应用程序,要求:有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计4个按钮,分别命名为加、减、乘、除;另外,窗口还有3个文本框。单击相应的按钮,将两个文本框的数字做运算,在第3个文本框中显示结果。要求处理NumberFormatException。

第七讲 JAVA多线程机制

第七讲测试

1、下列说法中,错误的一项是( )。
A、线程就是程序
B、线程是一个程序的单个执行流
C、多线程是指一个程序的多个执行流
D、多线程用于实现并发

2、下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的( )?
A、serialize
B、transient
C、synchronized
D、static

3、下列说法中,错误的一项是( )。
A、线程一旦创建,则立即自动执行
B、线程创建后需要调用start()方法,将线程置于可运行状态
C、调用线程的start()方法后,线程也不一定立即执行
D、线程处于可运行状态,意味着它可以被调度

4、Thread类定义在下列哪个包中( )?
A、java.io
B、java.lang
C、java.util
D、java.awt

5、Thread类的常量NORM_PRIORITY代表的优先级是( )。
A、最低优先级
B、最高优先级
C、普通优先级
D、不是优先级

6、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ( )
A、ArrayList myList=new Object();
B、List myList=new ArrayList();
C、ArrayList myList=new List();
D、List myList=new List();

7、下面哪个不是Collection接口的方法?( )
A、iterator
B、isEmpty
C、toArray
D、setText

8、一个Java多线程的程序不论在什么计算机上运行,其结果始终是一样的。( )

9、Java线程有五种不同的状态,这五种状态中的任何两种状态之间都可以相互转换。( )

10、使用Thread子类创建线程的优点是可以在子类中增加新的成员变量,使线程具有某种属性,也可以在子类中新增加方法,使线程具有某种功能。但是,Java不支持多继承,Thread类的子类不能再扩展其他的类。( )

11、当线程类所定义的run( )方法执行完毕,线程的运行就会终止。

12、线程的启动是通过引用其start()方法而实现的。

13、每个Java程序都有一个缺省的主线程,对于Application类型的程序来说,主线程是方法( )执行的线程。

14、在Java中,创建线程的方法有两种:一种方法是通过创建 ( ) 类的子类来实现,另一种方法是通过实现 ( ) 接口的类来实现。

15、在Java中,实现同步操作的方法是在共享内存变量的方法前加 ( ) 修饰符。

第七讲作业

1、编写Example2_1线程类,在该类中实现九九乘法表的动态输出,每隔1秒(1000毫秒)输出乘法表的一个运算结果。程序运行到4*1的时候,运行效果如图所示。

第八讲 面向对象设计基本原则与设计模式

第八讲测试

1、设计模式一般用来解决什么样的问题( )。
A、同一问题的不同表相
B、不同问题的同一表相
C、不同问题的不同表相
D、以上都不是

2、以下对"开-闭"原则的一些描述错误的是?
A、"开-闭"原则与"对可变性的封装原则"没有相似性.
B、找到一个系统的可变元素,将它封装起来,叫"开-闭"原则
C、对修改关闭: 是其原则之一
D、从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一

3、以下意图那个是用来描述SINGLETON(单件)?
A、将一个类的接口转换成客户希望的另外一个接口。该模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作
B、保证一个类仅有一个实例,并提供一个访问它的全局访问点。
C、定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独 立于使用它的客户而变化。
D、用一个中介对象来封装一系列的对象交互。

4、内聚是一种指标,表示一个模块 ( )
A、代码优化的程度
B、代码功能的集中程度
C、完成任务的及时程度
D、为了与其他模块连接所要完成的工作量

5、软件设计中划分模块的一个准则是()
A、低内聚低耦合
B、低内聚高耦合
C、高内聚低耦合
D、高内聚高耦合

6、以下意图那个是用来描述 STRATEGY(策略)?
A、将抽象部分与它的实现部分分离,使它们都可以独立地变化。
B、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
C、将抽象部分与它的实现部分分离,使它们都可以独立地变化。
D、定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换

7、以下意图那个是用来描述 VISITOR(访问者)?
A、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
B、表示一个作用于某对象结构中的各元素的操作。
C、在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样以后就可将该对象恢复到原先保存的状态。
D、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

8、以下意图那个是用来描述DECORATOR(装饰)?
A、运用共享技术有效地支持大量细粒度的对象。
B、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
C、将抽象部分与它的实现部分分离,使它们都可以独立地变化。
D、动态地给一个对象添加一些额外的职责。

9、以下意图那个是用来描述ADAPTER(适配器)?
A、将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容 而不能一起工作的那些类可以一起工作。
B、定义一个用于创建对象的接口,让子类决定实例化哪一个类
C、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提 下定义作用于这些元素的新操作。
D、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队 或记录请求日志,以及支持可撤消的操作。

10、以下意图那个是用来描述CHAIN OF RESPONSIBILITY(职责链)?
A、为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接 口使得这一子系统更加容易使用。
B、提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
C、在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样以后就可将该对象恢复到原先保存的状态。
D、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。

11、设计模式使代码编制不能真正工程化。

12、设计模式的两大主题是系统复用与系统扩展。

13、设计模式一般可以分为行为型模式、结构型模式和创建型模式。

学习通面向对象程序设计_14

在本课程中,我们将深入探讨面向对象程序设计的一些高级特性。

泛型编程

泛型编程是一种将类型参数化的编程方式。通过泛型编程,我们可以编写可以用于不同类型的数据的代码。

下面是一个简单的泛型函数的例子:

template <typename T>T add(T a, T b) {     return a + b;}

这个函数可以用于任何类型 T,包括 int、double、string 等等。

多态

多态是一种面向对象程序设计的特性,它允许我们使用子类对象来替换父类对象,并且可以调用相同的方法。

下面是一个简单的多态的例子:

class Animal { public:    virtual void speak() {         cout << \I am an animal.\ << endl;    }};class Dog : public Animal { public:    void speak() {         cout << \I am a dog.\ << endl;    }};int main() {     Animal *a = new Animal;    Animal *d = new Dog;    a->speak(); // 输出:\I am an animal.\    d->speak(); // 输出:\I am a dog.\    return 0;}

在上面的代码中,Dog 是 Animal 的子类,Dog 的 speak() 方法覆盖了 Animal 的 speak() 方法。在 main() 函数中,我们创建了一个 Animal 对象和一个 Dog 对象,然后分别调用它们的 speak() 方法。由于 Dog 是 Animal 的子类,所以我们可以使用 Dog 对象替换 Animal 对象,并且调用相同的 speak() 方法。这就体现了多态的特性。

模板方法

模板方法是一种设计模式,它允许我们定义一个操作的骨架,而将一些步骤延迟到子类中。

下面是一个简单的模板方法的例子:

class AbstractClass { public:    void templateMethod() {         step1();        step2();        step3();    }    virtual void step1() = 0;    virtual void step2() = 0;    virtual void step3() = 0;};class ConcreteClass : public AbstractClass { public:    void step1() {         cout << \step1\ << endl;    }    void step2() {         cout << \step2\ << endl;    }    void step3() {         cout << \step3\ << endl;    }};int main() {     AbstractClass *ac = new ConcreteClass;    ac->templateMethod();    return 0;}

在上面的代码中,AbstractClass 是一个抽象类,它定义了一个模板方法 templateMethod(),其中包含了三个步骤:step1()、step2() 和 step3()。这三个步骤都是抽象虚函数,由子类 ConcreteClass 实现。在 main() 函数中,我们创建了一个 ConcreteClass 对象,并调用了它的 templateMethod() 方法,输出了三个步骤的内容。

总结

在本课程中,我们学习了泛型编程、多态和模板方法三种高级特性。这些特性可以让我们编写更加灵活、可扩展的代码。