文档库 最新最全的文档下载
当前位置:文档库 › 面向对象技术

面向对象技术

面向对象技术
面向对象技术

《面向对象技术(本)》课程第一阶段练习题

一.填充题

1.Java源程序文件的扩展名是java;Java源程序经编译后生成Java字节码文件,其扩展名是class。

2.Java程序可分为Application和Applet两大种类。

3.开发与运行Java程序需要经过的三个主要步骤为编写源程序、

编译源程序和解释运行字节码文件。

4.在Java程序中定义的类有两种成员:成员变量、成员方法。

5.一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令:

javac MyPro.java 、

java MyPro 。

6.定义初值为123456789的长整型变量 var 的语句是__long var=123456789L;__。

7.在Java语言中,逻辑常量值除了true之外另一个是false。

8.表达式15+4*5-12的运算结果是23。

二.选择题

1.编译Java源程序文件后所产生的字节码文件的扩展名为: C

A.java B. html C.class D. exe

2. main方法是Java Application程序执行的入口点,以下main方法头部合法的是:B

A. public static void main()

B. public static void main(String args[])

C. public static int main(String[] arg)

D. public void main(String arg[])

3.下面的Java源文件代码片断是不正确的定义次序的是: D

A.package mypack;

public class Demo{//do something…

}

B.import java.io.*;

importjava.awt.*;

public class Demo{//do something…

}

C.import java.io.*;

class Demo{//do something…

}

public class Demo1{//do something…

}

D.import java.io.*;

package mypack;

public class Demo{//do something…

}

4. 下面选项能正确表示Java语言中的一个整型常量的是: C

A.9.0 B.1 000 000 C. -40 D.1 2 3

5. 下列变量定义错误的是: A

A.float x; y; B. float x, y=1.3f;

C. public inti=10,j=3, k;

D. char ch1=’m’,ch2=’/’;

6.找出下列错误的变量定义:C

A) long a=987654321L;B) int _b=123;

C) static e=32761; D) intc,d;

7. Java语言具有许多优点和特点,下列选项中哪个反映了Java程序并行机制的特点?B

A) 安全性 B)多线性 C)跨平台 D)可移植

8. 下列叙述中,正确的是A

A)Java语言的标识符是区分大小写的

B)源文件名与public类名可以不相同

C)源文件扩展名为.jar

D)源文件中public类的数目不限

9. 下列属于合法的Java标识符是A

A)_cat B)5books C)+static D)-3.14159

10. 在Java中,表示换行符的转义字符是A

A)\n B)\f C)'n' D)\dd

三.简答题

1.Java有哪些特点?

答案:

1.Java程序设计语言是新一代语言的代表,它强调了面向对象的特性,可以被用来开发范围广泛的软件,它具有支持图形化的用户界面、网络以及数据库连接等复杂的功能,Java 语言的主要的特点有:

(1)易于学习

Java语言很简单,它的语法非常类似于C++,但是它摒弃了C++许多低级、困难、容易混淆、容易出错或不经常被使用的功能。

(2)高效率的执行方式

用Java语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。它综合了解释性语言与编译语言的众多优点,使其执行效率较以往的程序设计语言有了大幅度的提高。

(3)与平台无关性

Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”

的目标程序,可以跨平台运行。

(4)分布式

分布式主要是指数据分布和操作分布两层意思,数据分布是指数据可以分散在网络中不同的主机上,操作分布是指把一个任务分散在不同的主机上进行处理。Java从诞生起就与网络联系在一起,它强调网络特性,内置TCP/IP,HTTP,FTP协议类库,便于开发网上应用系统。

(5)安全性

Java2平台采用了域管理方式的安全模型,无论是本地代码还是远程代码都可以通过配置的策略,设定可访问的资源域,使得Java成为安全的编程语言。

(6)多线程

Java的多线程机制使应用程序中的线程能够并发执行,保证了对共享数据的正确操作,可以分别用不同的线程完成特定的行为,很容易在网络上实现实时交互行为。

(7)丰富的API(Application Program Interface)类库

Java开发工具包中的类库包罗万象,应有尽有,程序员的开发工作可以在一个更高的层次上展开,这也正是Java受欢迎的重要原因之一。Java同时为用户提供了详尽的API 文档说明。

2.Java的虚拟机是什么?

我们可以直观地理解:任何一种可以运行Java程序(即可以担任Java解释器)的软件都可以被称为Java虚拟机(Java virtual machine, JVM),因此诸如浏览器与Java的一部份开发工具等皆可看作一部JVM。当然我们可以把Java的字节码(byte_codes)看成是JVM所运行的机器码。

3.画出Java程序从源程序到编译、解释、运行的过程图?

Java语言编辑的源程序的执行方法是先经过编译器编译、再利用解释器解释的方式来运行的。其从源程序到编译解释运行的过程图如下:

4.简述Java家族的J2SE、J2ME与J2EE。

Java的大家族中有三个主要成员:

(1)J2ME——Java 2 Micro Edition用语嵌入式Java消费电子平台。不论是无线通讯、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台。

(2)J2SE——Java 2 (Software Development Kit)Standard Edition是Java最通行的版本,是用于工作站、PC机的Java标准平台。

(3)J2EE——Java 2 Enterprise Edition可扩展的企业应用Java 2平台,它提供了企业e-Business架构及Web Services服务,除深受广大企业用户的欢迎之处是其开放

的标准和优越的跨平台能力。

5.Java的字节码是什么?

Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。“字节码”的最大特点便是可以跨平台运行,即程序设计人员们常说的“编写一次,到处运行”,正是这一特性成为Java得到迅速普及的重要原因。

《面向对象技术(本)》课程第二阶段练习题

一、填空题

1.表达式(18-4)/6+6的运算结果是8。

2.表达式2>=5的运算结果是False。

3.表达式5>2 && 8<8 &&23<36的运算结果是False。

4.表达式56/9+3.6的运算结果是9.6。

5.表达式48%9+5*5-4的运算结果是24。

6.表达式:9-7<0 || 11>8的运算结果是True。

7.表达式:(3>2) ? 8 : 9的运算结果是8。

8.表达式: 9==8 && 3<7的运算结果是False。

9.假设int m=2,float n=0.1f,经过下列表达式的连续运算后,m、n的值分别为0, -15.4。

m*=5/m-1;

n-=5*3.1;

10.设x,y,max,min均为int型变量,x、y已赋值。用三目条件运算符将x、y的较大值赋给变量max、较小值赋给变量min的语句分别是___max=(x>y)?x:y___和___min=(x

11.当整型变量n的值不能被7除尽时,其值为false的Java语言表达式是__n%7==0__。

12.执行以下程序段后,x = __6___,y =___30___。

int x = 5, y=5;

y = ++x * y--;

二、选择题

1. 找出下列中正确的变量定义 A

A) double d; B) float f=6.6;

C) byte b=130; D) booleant="true";

2.找出以下字符常量中不正确的表示 D

A) '数' B) '#' C) '*' D) "a"

3.找出下面double型常量的正确表示 A

A) -8.0 B) 1.5e-4F C)abcf D) Float.MIN_VALUE

4.定义a为int类型的变量。找出下列中正确的赋值语句选项 A

A) int a=6 ; B) a ==3; C) a=3.2f; D) a=”83”;

5.假设以下选项中的变量都已正确定义,找出不合法的表达式 C

A) a >= 4 == b<1 B) 'n'-3 C) 'a'=8 D) 'A'%6

6. 在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是 D

A)java.applet

B)java.awt

C)java.util

D)https://www.wendangku.net/doc/5f11726710.html,ng

7. 在Java中,所有类的根类是 A

A)https://www.wendangku.net/doc/5f11726710.html,ng.Object

B)https://www.wendangku.net/doc/5f11726710.html,ng.Class

C)java.applet.Applet

D)java.awt.Frame

8. 在Java中,用Package语句说明一个包时,该包的层次结构必须是 B

A)与文件的结构相同

B)与文件目录的层次相同

C)与文件类型相同

D)与文件大小相同

三、问答题

1.Java是什么?Java平台由那几部分组成?

Java是一种面向对象的程序设计语言,Java是健壮和安全的语言,Java是平台无

关的语言。Java平台由Java应用编程接口(API)和Java虚拟机(JVM)组成,这

个平台构成了Java在不同计算机系统中编译和运行的环境。

2.Java数据类型可分为几大类?Java基本数据类型包括哪些?

Java中的数据类型可以分为基本类型和对象类型两大类。其中基本数据类型包括:整数类型、实数类型、字符类型、布尔类型。

3.在程序设计的流控制中,有哪些基本结构?在Java语言中是如何实现的?

在程序设计的流控制中,有如下3种基本结构:顺序结构、选择结构、循环结构。

在Java语言种顺序结构由顺序执行的各条语句实现;选择结构由if语句、switch

语句实现;循环结构由while语句、do-while语句和for语句实现。

四、编写程序,利用System.out.println( ) 方法分别输出下列语句

的执行结果:

a)将变量m的初值赋值为10,变量n的初值赋值为5。

b)变量m的值加3,n的值加5。

c)求m和n的平均值,并将该值赋予变量p。

d)将m的平方乘以n的平方并赋值给变量q。

请注意各变量定义时所应该使用的数据类型。

a)int m=10; int n=5; System.out.println(m); System.out.println(n);

b)m+=3; n+=5; System.out.println(m); System.out.println(n);

c)double p; p=(m+n)/2.0; System.out.println(p);

d)double q; q=m*m*n*n; System.out.println(q);

《面向对象技术(本)》课程第三阶段练习题

一.填充题

1.下面的程序经运行后,其输出结果是y=1 x=0。

public class Yuedu1{

public static void main(String args[]){

intx,y;

x=y=0;

do{

y++;

x*=x;

} while((x>0)&&(y>5));

System.out.println("y="+y+" x="+x);

}

}

2.下面的程序经运行后,其输出结果是* # * # *。public class Yuedu2{

public static void main(String args[]){

inti;

for (i=1;i<6;i++){

if (i%2) {

System.out.print("#");

continue;

}

System.out.print("*");

}

System.out.println();

}

}

3.下面的程序经运行后,其输出结果是x1=10 x2=6。public class Yuedu3{

public static void main(String args[]){

intx,i;

System.out.println("x1="+add(4,6));

System.out.println("x2="+add(3,add(1,2)));

}

static int add(int x , int y) {

return x+y;

}

}

4.下面的程序经运行后,其输出结果是72。

public class Yuedu3{

public static void main(String args[]){

System.out.println(fun(4));

}

static int fun(int n) {

int t;

if((n==0)||n==1)

t=3;

else

t=n*fun(n-1);

return t;

}

}

5.下面的程序经运行后,其输出结果是*

* *

* *

* *

* *

* *

* *

* *

* *

* *

*。

public class Shape{

public static void main(String args[]){

int n=6,i,j;

for(i=0;i<=n-2;i++)

System.out.print(" ");

System.out.println("*");

for(i=1;i<=n-1;i++){

for(j=0;j<=n-i-2;j++)

System.out.print(" ");

System.out.print("*");

for(j=0;j<=2*i-2;j++)

System.out.print(" ");

System.out.println("*");

}

for(i=n-2;i>=1;i--){

for(j=0;j<=n-i-2;j++)

System.out.print(" ");

System.out.print("*");

for(j=0;j<=2*i-2;j++)

System.out.print(" ");

System.out.println("*");

}

for(i=0;i<=n-2;i++)

System.out.print(" ");

System.out.println("*");

}

}

二.程序改错

1.下面程序实现对自然数1到10的求和计算,编译时程序出错,请改正。

#1 public class Add_Sum{

#2 public static void main(String args[]){

#3int sum=0;

#4 for ( inti=1;i<=10;i++)

#5 sum=sum+i;

#6 System.out.println("i="+i+", sum="+sum);

#7 }

#8 }

#6改为:System.out.println(“sum=”+sum);

2.下例程序实现对一个16位的长整数,统计0~9这十个数字每一个出现的次数。程序有错,请改正之。

#1 public class StatNum{

#2 public static void main(String args[]){

#3int m;

#4int a[]=new int[10];

#5 long aa=1586488654895649;

#6 for (inti=0;i<=15;i++){

#7 m=aa %10;

#8 a[m]=a[m]+1;

#9aa=aa/10;

#10 }

#11 for (m=0;m<10;m++)

#12System.out.println(m+": "+a[m]);

#13 }

#14 }

#5改为:long aa=1586488654895649L;

#7改为:m=(int)aa%10;

3.下例程序实现将两个各有6个整数的数组,合并成一个由小至大排列的数组(该数组的长度为12)。程序有错,请改正之。

#1 import java.io.*;

#2 public class SortArray{

#3 public static void main(String args[]) throws IOException{

#4intm,n,k;

#5intaa[]=new int[6];

#6int bb[]=new int[6];

#7int cc[]=new int[12];

#8 for (inti=0;i<=6;i++){ //利用产生随机数的方式为数组赋值。

#9 m=100*Math.random();

#10aa[i]=m;

#11 n=100*Math.random();

#12 bb[i]=n;

#13 System.out.println(aa[i]+" "+bb[i]);

#14 }

#15 for (inti=0;i<6;i++) //先将两个数组进行排序

#16 for (int j=i;j<6;j++){

#17 if (aa[i]>aa[j])

#18 {int t=aa[i];aa[i]=aa[j];aa[j]=t;}

#19 if (bb[i]>bb[j])

#20 {int t=bb[i];bb[i]=bb[j];bb[j]=t;}

#21 }

#22 m=0; //用合并法将两个有序数组排序并合并

#23 n=0;

#24 k=0;

#25while (m==6 &&n==6) {

#26 if (aa[m]<=bb[n])

#27 cc[k]=aa[m];m++;

#28 else

#29 cc[k]=bb[n];n++;

#30 k++;

#31}

#32while (m==6)

#33{ cc[k]=aa[m];m++;k++;}

#34while (n==6)

#35{ cc[k]=bb[n];n++;k++;}

#36for (inti=0;i<12;i++)

#37System.out.print(cc[i]+" ");

#38 }

#39 }

#8改为:for(inti=0; i<6; i++)

#9改为:m=(int)100*Math.random();

#11改为:n=(int)100*Math.random();

#25改为:while (m<6 &&n<6)

#32改为:while(m<6)

#34改为:while(n<6)

4.下例程序以递归的方式实现1+2+3+……+n(n = 200)的计算。程序有错,请改正之。#1 class RecuSum{

#2 long Sum1(int n){

#3if (n==1)

#4Sum1= 1;

#5 else

#6Sum1= n+Sum1(n-1);

#7 }

#8 public static void main(String args[]) {

#9int n=200;

#10System.out.println("Sum="+Sum1(n));

#11 }

#12 }

#2改为:static long Sum1(int n){;

#4改为:return 1;

#6改为:return n+Sum1(n-1);

三.编程题

1.试编写一个程序,将1~500间能同时被2,5,7整除的数打印出来。

1.public class Program{

public static void main( String[] args) {

for (inti=1; i<=500; i++) {

if ((i%2==0) && (i%5==0) && (i%7==0)) {

System.out.println(i);

}

}

}

}

2.如果我国的经济增长以每年8%的速度保持稳定不变,试编写一个程序,计算经过多少年可以实现总量翻两番?

public class DoubleTimes {

public static void main(String[] args) {

int n=0;

double inc=0.08, sum=1;

while (sum<=4) {

sum=(1+inc)*sum;

n++;

System.out.println(“第”+ n + “年达到” + sum);

}

System.out.println(“一共”+ n + “年实现翻两番。”);

}

}

《面向对象技术(本)》课程第四阶段练习题

一、填充题

1.超类的private成员不能被子类继承。

2.在声明一个类变量时,前面必须要加上static修饰符。3.import java.util.*;语句可导入Java的实用包中所有的类。

4.方法的覆盖是后期绑定,方法的重载是前期绑定。

5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/180)。

二、选择题

B1. 找出有关类的正确说法。

a.类具有封装性,所以类的数据是不能被访问的。

b.类具有封装性,但可以通过类的公共接口访问类中的数据。

c.声明一个类时,必须用public修饰符。

d.每个类中,必须有main方法,否则程序无法运行。

e.

A2. 将类的成员的访问权限设置为默认的,则该成员能被

a.同一包中的类访问

b.其它包中的类访问

c.所有的类访问

d.所有的类的子类访问

C 3.下面哪一种是正确的方法重栽

a. int fun(inta,float b){}

float fun(inta,float b){}

b. float fun(inta,float b){}

float fun(intx,float y){}

c. float fun(float a){}

float fun(float a,float b){}

d. flaot fun1(inta,float b){}

float fun2(inta,float b){}

D 4.下面关于继承的说法那个是正确的

a. 超类的对象就是子类的对象。

b. 一个类可以有几个超类。

c. 一个类只能有一个子类。

d. 一个类只能有一个超类。

C 5.下面关于多态性的说法那个是正确的

a. 一个类中,不能有同名的方法。

b. 子类中不能有和父类中同名的方法。

c. 子类中可以有和父类中同名且参数相同的方法。

d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。

三、简答题

1.什么是类,什么是对象?

在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的事物的抽象。在类中包含了变量和与变量有关的操作(方法)。对象是类的实例。类和对象的关系就如同属性类型和变量的关系。例如,“电话”类代表电话这一类事物,而电话的对象代表一个具体的电话。

2.类的封装的目的是什么?

当外部的类可以没有限制地直接访问、修改类中变量时,是非常危险的。因此必须限制类的外部程序对类内部成员的访问,这就是类的封装目的。类把属性和方法封装起来,同时创建一些允许外部访问的方法,通过这样的方法来访问类的成员变量。封装的另一目的是细节屏蔽,便于程序功能的扩展和程序的维护。

3.Java中有几种访问权限,各种访问权限的级别是什么?

Java中有四种访问权限:公有的(public)、保护的(protected)、默认的、私有的(private)。各种权限的访问级别如下表:

4.null、this、super对象运算符分别表示什么?

null表示空对象,即没有创建类的任何实例。当我们声明对象时,如果没有用new实例化时,此时它就被初始化为一个特殊的值“null”。而当我们在类的方法定义中需要引用正在使用该方法的对象时,可以用“this”表示。uper表示对某个类的超类的引用,用super来引用被子类屏蔽的超类的成员。

5.什么是最终类和抽象类?

不能被继承的类称为最终类。在声明类时,用final将类声明为最终类,这样此方法不会在子类中被覆盖(即子类中不能有和此方法同名的方法)。抽象类则是必须被子类覆盖的类。在声明类或方法时,用关键字abstract可以将类或方法声明为抽象类或方法。抽象方法没有方法体,含有抽象方法的类即为抽象类,它是不能实例化的类。

6.什么是多态性,什么重载和覆盖?

多态性是面向对象程序设计的重要特征,是指同一个名字的若干个方法,有不同的实现(即方法体中的代码不一样)。多态性是通过方法的重载(overloading)和覆盖(override)来实现。方法的重载是指在一个类中,有若干个方法名字相同,但方法的参数不同,在调用时,根据参数的不同来决定执行那个方法。重载的关键是参数必须不同,即参数的类型或个数必须不同。如果在子类和超类中有同名的方法(参数也相同),子类中的方法将覆盖超类的方法,这就是覆盖。通过覆盖可以使同名的方法在不同层次的类中有不同的实现。

四、编程题

1.声明一个类Person,成员变量有姓名、年龄、性别。有成员方法以显示姓名、年龄和性别。

class Person {

String name;

int age;

String sex;

public String showName() {

return name;

}

public intshowAge() {

return age;

}

public String showSex;() {

return sex;

}

}

2.声明一个矩形类Rectangle,提供2个方法计算矩形的周长和面积。并用main方法来测试。

public class Retangle {

private double length;

private double width;

public Retangle(double l, double w) {

length=l;

width=w;

}

public double calcPerimeter() {

return 2*(length + width);

}

public double calcAera() {

return length * widthv;

}

public static woid main( String[] args) {

Retanglearetangle = Retangle(640m480);

System.out.println(“面积是:” + aretangle.calcArea() + “周长是:”

+ aretangle. calcPerimeter () );

}

}

面向对象的设计方法与C++编程

北京邮电大学200X-200X学年第一学期 《面向对象的设计方法与C++编程》期末考试试卷+扩展+复习题 试题一:填空题(没空一分,共20分) 请在括号内填入你认为正确的内容。 1.软件工程是指导(计算机软件)开发和维护的(工程学科)。 2.应用软件工程方法开发软件系统的根本目的是为了改善下述四项软件品质因素: 提高所开发的软件系统的(效率); 降低所开发的软件系统的(成本); 改善所开发的软件系统的(质量); 缩短所开发的软件系统的(开发周期)。 3.抽象的对象模型由(属性)和(方法)两个部分构成。 4.一个消息必须具备的两个要素是(接受消息的对象标识)和(接受消息的对象的方 法标识)。 5.一个对象拥有另一个对象的(部分)或(全部)的属性和方法的关系则称为(继 承)关系。 6.失去(创建具体对象实例的(制造对象))能力的类成为抽象类。 7.一个类的属性不能出现对象拷贝则被称为(类属性)。 8.面向对象技术的三大特征是(封装)、(继承)和(多态)。 9.共生包容关系中的被包容类对象与包容类对象是(同时连带)生成的。 10.同时出现在两个具有关联关系的对象内的相同属性被称为(连接属性)。 课程复习--补充题: 1.软件的生存周期是一个软件产品从(定义)、(开发)、(使用)到(废弃)的时 间的总合。 2.C++语言中的静态成员函数是(类方法)的具体实现。 3.连接属性是(关联/链接)关系的两个对象内的属性。 4.边界类与(actor(角色))对呈一一对应关系。 5.复合聚合关系中的(聚合)类对象极其依赖(被聚合)类对象,在实现上往往具有 被同时(构造)的特征,因而具有极高的(耦合度)。 试题二:是非判断题(每题1分,共20分) 请在题后的括号内填入√(你认为正确时)或×(你认为错误时)。 1.消息必须含有返回信息。(错) 2.一个类必然具有生成对象的能力。(错)(抽象类不具备) 3.在包容关系中的被包容类也具有封装性。(对) 4.关联关系只是一个动作的抽象。(错) (表示两个类之间的联系,通过这种联系,一个类可以访问到另外一个类的属性和方法。) 5.一个类也可以接收消息。(对) 6.关联关系中的作用名标识了该关联关系的终点对象的恰当地位。(对)

面向对象程序设计教程答案

面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选) (1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变 . B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果 C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量 . 正确答案: B 2、选出下面不能作为void Med(i nt x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案: B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法 . B. 定义了抽象方法的类必定是抽象类 . C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案: A 4 、 Circle 是 GeometricObject 的子类。如果有语句: Circle circle = new Circle(1);GeometricObject object = new GeometricObject(); 那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject) C. (circle in sta nceof Circle)

D. (object in sta nceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字 static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如下,其中speedUp()方法实现加速功能,速度上限为240 km/h ; speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速 5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

面向对象程序设计教程答案

面向对象程序设计教程(C++吾言描述)题解与课程设计指导 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对 象要求另一个对象实施某种操作的一个请求。 二、 填空题 ( 1) 目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种 重要的程序设计方法。 (2) 结构化程序设计方法中的模块由顺序、选择和循环 3 种基本结构组成。 ( 3) 在结构化程序设计方法中,程序可表示为程序 =数据结构 +算法; 而面向 对象的程序设计方法,程序可表示为程序 =对象 +消息。 ( 4) 结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法 中的基本模块是类。 ( 5) 面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、 选择题(至少选一个,可以多选) ( 1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 ( 2) 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制 叫做( C )。 A. 抽象 B. 继承 C. 封装 D. 多态 ( 3) 在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 ( 4) 面向对象程序设计中,对象与对象之间的通信机制是( C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与 C 语言的关系的描述中,(D )是错误的。 A. C 语言是C++勺一个子集 B. C 语言与C++是兼容的 C. C++对C 语言进行了一些改进 D. C++和C 语言都是面向对象的 【结果分析】 C 语言是面向过程的。C++吾言是一种经过改进的更为优化的 C 语言,是一种混 合型语言,既面向过程也面向对象。 ( 6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依 存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 第1

面向对象试题(答案)

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() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.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()

软件工程 第八章 面向对象的设计方法

第八章面向对象的设计方法 本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为完成这一转换过程,设计人员必须处理以下任务: (1)针对分析模型中的用例,设计实现方案。实现方案用 UML交互图表示。 (2)设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。例如,数据的持久存储服务、安全控制服务和远程访问服务等。在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。 (3)设计用户界面。 (4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序

设计的基础和依据的详尽类图。 面向对象的软件设计过程如图8-1-1所示。 图 8-1-1 面向对象的软件设计过程 第一节设计用例实现方案 UML 的交互图(顺序图、协作图)适于用例实现方案的表示。因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。该设计方法包含如下3个步骤: (1)提取边界类、实体类和控制类; (2)构造交互图; (3)根据交互图精华类图。 一、顺序图 顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。顺序图中的对象一般以“对象

什么是面向对象技术

第1章习题 1. 什么是面向对象技术? 2. 面向对象与面向过程程序设计有什么不同? 3. 面向对象技术有哪些优点? 4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 5. 为什么要应用继承机制? 6. C++对多态性的支持体现在哪些方面? 7. 目前常用的面向对象程序设计语言有何异同? 8. 什么是.NET? 第2章习题 1. 写出下面程序的运行结果。 #include void main() { int* a; int* &p=a; int b=10; p=&b; cout<<*a< void main() { int iarray[10]={0,2,4,6,8,10,12,14,16,18}; int sum=0; int* iptr=iarray; for(int i=0;i<10;i++) { sum+=*iptr; iptr++; } cout<<"sum is"<

int m=8; int add3(int x,int y=7,int z=m) { return x+y+z; } void main() { int a=1,b=2,c=3; cout<;

面向对象技术java期末复习试卷

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的 源文件名是() A. B. teststudent .class C. D. 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的 public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: 正确写法如下: n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean 字符类型:char

面向对象技术与C++(3)答案

《面向对象技术与C++》试卷答案(3) 第一题填充题(10分,每1个空格1分) 1.当使用带参数的流操纵算子时,程序中必须包含(iomanip)头文件。 2.复合对象中的成员对象是在建立复合对象之(前)建立的。 3.运算符new分配的动态内存要用运算符(delete) 回收。如果在一个类的构造函数中使 用new分配动态内存,则回收操作应在类的(析构)函数中完成。 4.struct成员的默认访问模式是(public),而class成员的默认访问模式是 (private)。 5.关键字(const) 指定了不可修改的对象或变量。关键字(const) 指定一个类的成员不会 修改类中的数据成员。 6.重载赋值运算符operator= 时,应将其声明为类的(成员)函数。 7.C++中的输入/输出是以字节(流) 的形式实现的。 第二题指出下列程序段中的错误,说明错误原因(10分,每1小题5分)1.class Rational { //表示有理数的类声明 public: void Rational (int,int); //第1个参数为分子,第2个参数为分母 // 其他成员函数的原型说明 private: void Rational ( ); //默认的数为0,其分子表示为0,分母表示为1 int a = 0 , b = 1; } 1) void Rational(); 构造函数的访问属性应为public 2) 两个构造函数都不能指定返回类型 3)int a = 0 , b = 1; 不能直接赋初值 4)最后少了一个分号(;) 2.class myClass { public: myClass(char a, int b) { v = a ; si = b ; } void f1(int i = 10) const { v = v + i ; } static int f2() { return v + si; } private: char v; static int si; } ; 1) static函数f2()不能访问非static成员v 2) 构造函数中不能对static数据赋值 3) const成员函数f1不能修改数据成员v 4) static数据si需要在类声明的外面进行初始化

(完整版)面向对象软件测试技术研究

面向对象软件测试技术研究 一、引言 软件测试是伴随着软件的产生而产生的。软件危机的频繁出现促使了软件测试的地位得到了大幅提升。软件测试已经不仅仅是局限于软件开发过程中的一个阶段,它已经开始贯穿于整个软件开发过程,成为软件产品质量控制与质量管理的重要手段之一。 软件测试技术作为软件工程学科的一个分支,是保证软件质量和可靠性的关键,因此它也是软件开发过程中的一个重要环节。它的核心思想是:对于输入域的特定输入,观察软件的执行结果,验证该结果与期望结果是否一致,然后根据结果作相应的和调整。在测试过程中,测试用例的选择决定测试的有效性,这也就直接影响到成本,是软件测试的关键和难点。目前,软件测试技术的发展还不是很成熟,测试人员在选择测试用例时通常根据直觉和经验进行,给测试带来很大的盲目性,最终导致的后果是使软件后期维护的费用在成本中居高不下。科学生成测试用例对提高软件质量不仅重要而且必要。 随着面向对象软件开发技术的广泛应用和软件测试自动化的要求,特别是基于的软件开发技术的逐渐普及,基于模型的软件测试逐渐得到了软件开发人员和软件测试人员的认可和接受。它是一种新兴的测试用例生成技术。有优于以前的测试技术的方面。其中模型以其定义良好、功能强大、普遍适用的优点,为基于模型的测试提供了非常好的契机。 二、面向对象特征对软件测试的影响 面向对象技术是一个全新的开发模式,具有以下特点: (1)它要综合考虑软件开发过程所有阶段。 (2)在软件开发的整个生存周期中,每个阶段之间是连续的。 (3)开发过程分为面向对象分析(00A)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)四个连续的部分。 Coad和Yourdon给面}向对象的概念下了一个定义: 面向对象=对象+类+继承+通信 如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。一个而向对象的程序的每一个组成部分都是对象,计算是通过对象和对象之间的通信来执行的。 面向对象技术的本质是定义了类的抽象,将变量和与作用于它的操作封装到一块。然后用不同的类和方法组合成一个对象系统。面向对象软件将传统软件中的一个过程或一个方法内的复杂性转移到对象之间的交互中。面向对象语言一些本质特征形成了如下的一些新的故障、错误风险。

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

面向对象分析设计小结

?1、面向对象方法的基本观点: ?Coad-Y ourdon认为:面向对象=对象+类+继承+通信。 ?2、面向对象方法的特点包括: ?(1)、符合人们对客观世界的认识规律; ?(2)、对需求变化具有很强的适应性; ?(3)、支持软件复用; ?(4)、可维护性好。 ?3、对象、类、封装、继承、消息、多态性的基本概念。 对象是客观世界中具有可区分性的、能够唯一标识的逻辑单元,是现实世界中的一个事物(站在计算机技术角度,即对事物的模拟)。 类是一组具有相同属性和相同操作的对象的集合。 封装是把对象的属性和操作结合在一起,组成一个独立的单元。 继承是指子类(派生类、特化类)自动拥有其父类(基类、泛化类、超类)的全部属性和操作,即一个类可以定义为另一个更一般的类的特殊情况。 消息是对象之间采用消息传递来发生相互作用—互相联系、互发消息、响应消息、协同工作,进而实现系统的各项服务功能。 多态性是一种方法,使在多个类中可以定义同一个操作或属性名,并在每一个类中有不同的实现。 ?4、面向对象系统开发过程。 ?5、运用名词词组法来定义类(对象): ?例:音像商店出租/出售业务信息系统中的类的确定。 ?总目标:?A.提供及时培训。?B.实施的系统必须友好,易学易用。?C.实施的系统必须考虑安全问题。

?具体目标: ?1.1.1 提供一个自动系统协助顾客出售/出租结帐。 ?2.1.1 提供和维护一个自动的会员数据库。?a. 按要求提供最新会员信息。? b. 有添加、改变、删除会员信息的能力。 2.1.2 提供会员信息报表(但不限于)?a. 最少光顾的会员。?b. 最经常光顾的会员。?c. 有问题会员(欠钱,出租过期)? 4.1.1 提供、维护出售和出租项的库存数据库。?a. 按要求提供最新库存信息?b. 有添加、改变、删除库存信息(出售和出租)的能力 4.1.2 提供库存信息报表(但不限于)?a. 最不受欢迎的出租项?b. 最受欢迎的出租项?c. 过期的出租项?d. 出售和出租项的“订购”产品(采购报表) 5.1.1 提供出售报表(但不限于)?a. 用产品码表示的一段时间(天、星期、月)内销售情况?b. 用产品码表示的一段时间(天、星期、月)内出租情况相应的侯选对象清单为:安全问题、自动系统、顾客出售/出租结帐、会员数据库、会员信息、会员信息报表、库存数据库、出售和出租项、库存信息、库存信息报表、采购报表、出售报表。 ?6、对多值属性的处理方法:用部分-整体方法。 例:发票/发票行 第2章统一建模语言UML 1、UML描述的软件基本模型:用例视图、逻辑视图、构件视图、进程视图、 部署视图 2、UML的基本符号。 3、RUP项目开发过程的特征:用例驱动的系统、以体系结构为中心、螺旋 上升式的开发过程、以质量控制和风险管理为保障措施。

《面向对象技术与方法》试卷

一、单选题(本大题共22个小题,每小题2分,共44分) 第1题.javac的作用是: A)将源程序编译成字节码B)将字节码编译成源程序 C)解释执行Java字节码D)调试Java代码 答案:A 第2题.下列程序片断的执行,说法正确的是 1 public class test 2 { 3 public static void main(String args[]) 4 { 5 byte b=100; 6 int i=b; 7 int a=2000; 8 b=a; 9 System.out.println(b); 10 } 11 } A)b的值为100 B)b的值为2000 C)第六行出错D)第八行出错 答案: D 第3题.下列数组定义及赋值,错误的是 A)int intArray[]; B)intArray=new int[3]; intArray[1]=1; intArray[2]=2; intArray[3]=3; C)int a[]={1,2,3,4,5}; D)int[][]=new int[2][]; a[0]=new int[3]; a[1]=new int[3]; 答案: B 第4题.类ABC定义如下: 1.public class ABC{ 2.public int max( int a, int b) { } 3. 4.} 将以下哪个方法插入行3是不合法的。 A)public float max(float a, float b, float c){ } B)public int max (int c, int d){ } C)public float max(float a, float b){ } D)private int max(int a, int b, int c){ } 答案: B 第5题.下列说法正确的是_____ A)java中包的主要作用是实现跨平台功能 B)package语句只能放在import语句后面 C)包(package)由一组类(class)和接口(interface)组成 D)可以用#include关键词来标明来自其它包中的类; 答案: C 第6题.以下哪个接口的定义是正确的? A)interface B{ void print() { } ;} B)abstract interface B{ void print() ;}

c第1~3章答案解析

C++习题参考答案 第1xx面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。 (3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。 (4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选)

(1)面向对象程序设计着重于(B)的设计。 A.对象 B.类 C.算法 D.数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C)。 A.抽象 B.继承 C.封装 D.多态 (3)在面向对象程序设计中,类通过(D)与外界发生关系。 A.对象 B.类 C.消息 D.接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C)。 A.对象 B.类 C.消息 D.接口 (5)关于C++与C语言的关系的描述中,(D)是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与(A)放在一起,作为一个相互依存、不可分割的整体来处理。 A.算法 B.信息 C.数据隐藏 D.数据抽象(7)下面(A)不是面向对象系统所包含的要素。A.重载B.对象C.类D.继承 【结果分析】 面向对象=对象+类+继承+消息+多态 (8)下面说法正确的是(BC)。

OOP技术:面向对象技术1-10章习题

OOP技术:习题 第1章习题 1. 什么是面向对象技术? 2. 面向对象与面向过程程序设计有什么不同? 3. 面向对象技术有哪些优点? 4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 5. 为什么要应用继承机制? 6. C++对多态性的支持体现在哪些方面? 7. 目前常用的面向对象程序设计语言有何异同? 8. 什么是.NET? 第2章习题 1. 写出下面程序的运行结果。 #include void main() { int* a; int* &p=a; int b=10; p=&b; cout<<*a< void main() { int iarray[10]={0,2,4,6,8,10,12,14,16,18}; int sum=0; int* iptr=iarray; for(int i=0;i<10;i++) { sum+=*iptr; iptr++; } cout<<"sum is"<

} 3. 写出下面程序的运行结果。 #include int m=8; int add3(int x,int y=7,int z=m) { return x+y+z; } void main() { int a=1,b=2,c=3; cout<

面向对象技术

《面向对象技术(本)》课程第一阶段练习题 一.填充题 1.Java源程序文件的扩展名是java;Java源程序经编译后生成Java字节码文件,其扩展名是class。 2.Java程序可分为Application和Applet两大种类。 3.开发与运行Java程序需要经过的三个主要步骤为编写源程序、 编译源程序和解释运行字节码文件。 4.在Java程序中定义的类有两种成员:成员变量、成员方法。 5.一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令: javac MyPro.java 、 java MyPro 。 6.定义初值为123456789的长整型变量 var 的语句是__long var=123456789L;__。 7.在Java语言中,逻辑常量值除了true之外另一个是false。 8.表达式15+4*5-12的运算结果是23。 二.选择题 1.编译Java源程序文件后所产生的字节码文件的扩展名为: C A.java B. html C.class D. exe 2. main方法是Java Application程序执行的入口点,以下main方法头部合法的是:B A. public static void main() B. public static void main(String args[]) C. public static int main(String[] arg) D. public void main(String arg[]) 3.下面的Java源文件代码片断是不正确的定义次序的是: D A.package mypack; public class Demo{//do something…

面向对象技术UML 样题一 参考答案

一、填空题:(共20分,每题2分) 1.○H、H* 2.关联 3.关联 4.构建 5.类 6.抽象 7.概念 8.可见性、公开的、私有的、保护的 9.活动,整个工作流程的某个部分的职责 10.脚本 二、判断题,请将正确答案填入对应题号的表格内:(共10分,每题1分) 四、名词解释:(每题5分,共20分) 1.关联(Association):描述了给定类的单独对象之间语义上的连接。关联提供了不同类间对 象可以相互作用的连接。 2.抽象类(Abstract Class):抽象类是包含一种或多种抽象方法的类,它本身不需要构造实例。 定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。 3.分支(Branch):在活动图中,对于同一个触发事件,可以根据不同的警戒条件转向不同的 活动,每个可能的转移是一个分支。 4.参与者(Actor):)在系统之外与系统交互的某种人或者或种事物 五、简答题(每题10分,共30分) 1.关联限定符有什么作用?试举例进行说明。 参考答案: 在类图中关联端靠源类图标处可以有限定符,带有限定符的关系称为限定关联。限定符的作用就是在给定关联的一端的一个对象和限定符值以后,可以确定另一端的一个对象或对象集。这样可以将多重性从n降为1或0..1,从而简化关联复杂性。 如:银行与存款人之间本来是1对多的关系,通过增加一个“帐号”作为关联限定符,可以在给定银行帐号的情况下确定存款人情况。 评分标准: 说明关联限定符的概念及其作用计6分 列举的例子能够说明关联限定符作用计4分 2.什么是聚集关系,什么是组合关系?两者之间有什么异同点?各举一例说明。

相关文档