文档视界 最新最全的文档下载
当前位置:文档视界 › 面相对象程序设计

面相对象程序设计

面相对象程序设计
面相对象程序设计

1.【第1章】面向对象(O-O)程序设计是一种新的程序设计范型。这种范型的主要特征是()。

A 程序=对象+消息

B 程序=函数+调用

C 程序=算法+数据

D 程序=过程+调用

正确答案:A

单选题

2.【第1章】不是面向对象系统的特性是()。

A 封装性

B 继承性

C 保密性

D 多态性

正确答案:C

单选题

3.【第2章】若有定义char *words[]={"FORTRAN", "BASIC","PASCAL","JAVA","C"};则输出结果为AVA的语句是()。

A printf("%s",*words[3]+1)

B printf("%s",*words[4]+1)

C printf("%s",*(words+3)+1)

D printf("%s",(*words+4)+1)

正确答案:C

单选题

4.【第2章】假设已经有定义“constChar * name="chen";”下面的语句中错误的是()。

A name[3]='q';

B name=

C name=newChar[5];

D name=newChar('q');

正确答案:A

5.【第2章】以下叙述中不正确的是()。

A 在不同的函数中可以使用相同名字的变量

B 函数中的形式参数是局部变量

C 在一个函数内定义的变量只在本函数范围内有效

D 在一个函数内的复合语句中定义的变量在本函数范围内有效正确答案:D

单选题

6.【第2章】执行下列程序段后, int *p,A = 10,B=1;p = &b;A =a + (*p)++ ;变量a,b 的值为:()。

A a=10,b=1

B a=10,b=2

C a=11,b=1

D a=11,b=2

正确答案:D

单选题

7.【第2章】charA[10] = "abcde",B[8]= "fghi"; strcpy(a+3,b+1); printf("%d ",strle n(a) );执行下面程序后的输出结果为()。 ?

A 5

B 6

C 9

D 10

正确答案:B

单选题

8.【第2章】表达式:36.5-(12+7%4)/2.0的运算结果是()类型。 ?

A double

B int

C float

正确答案:A

单选题

9.【第2章】下列选项中,当 x 为大于1 的奇数时,值为 0 的表达式是()。

A x%2==1

B x%2==0

C x%2!=0

D x/2

正确答案:B

单选题

10.【第2章】若定义intA[2][3]={1,2,3,4,5,6};则值为4的数组元素是()。

A a[1][0]

B a[1][1]

C a[2][0]

D a[2][1]

正确答案:A

单选题

11.【第2章】与数学式子对应的C语言表达式是()。

A 3*x^n/(2*x-1)

B 3*x*n/(2*x-1)

C 3*pow(x,n)/(2*x-1)

D 3*pow(n,x)/(2*x-1) 正确答案:C

单选题

12.【第2章】下列表达式中,不正确的表达式是()。

A a=1,b=1

B y=int(x)

C a=b=5

D i++

正确答案:B

单选题

13.【第2章】下列属于合法的C语言赋值语句的是()。

A a=b=58

B i++

C a=58,b=58

D k=int(a+b)

正确答案:A

单选题

14.【第2章】表示year为闰年的c语言表达式为()。

A (year%4==0&&year%100?!=0)&&(year%400==0)

B (year%4==0&&year%100?!=0)||(year%400==

0) C (year%4==0)&&(year%400==0) D (year%4==0)||(year%400==0)

正确答案:B

单选题

15.【第2章】如果定义并初始化一个数组 int

s[10]={1,2,3,4,5,6,7,8,9,10};则执行

printf("%d\n",a[a[1]*a[2]])语句后的输出结果是()。 ?

A 3

B 4

C 7

D 2

正确答案:C

单选题

16.【第2章】关于delete运算符的下列描述中,()是错误的。 ?

A 它必须用于new返回的指针

B 使用它删除对象时要调用析构函数

C 对一个指针可以使用多次该运算符

D 指针名前只有一对方括号符号,不管所删除数组的维数

正确答案:C

单选题

17.【第2章】已知有预编译指令#define s(a,b) (a*b),则执行语句i=1;Area=s(3, 5-i)+3;后,变量area的值为()。

A 14

B 15

C 16

D 17

正确答案:D

单选题

18.【第2章】执行x=-1; do { x=x*x; } while (!x);循环时,下列说法正确的是()。

A 循环体将执行一次

B 循环体将执行两次

C 循环体将执行无限次

D 系统将提示有语法错误

正确答案:A

单选题

19.【第2章】重载函数在调用时选择的依据中,()是错误的。

A 函数名字

B 函数的返回类型

C 参数个数

D 参数的类型

正确答案:B

单选题

20.【第2章】关于new运算符的下列描述中,()是错误的。

A 它可以用来动态创建对象和对象数组

B 使用它创建的对象或对象数组可以使用运算符delet e删除

C 使用它创建对象时要调用构造函数

D 使用它创建对象数组时必须指定初始值正确答案:D

单选题

21.【第2章】在面向对象的程序设计C++中,当用cin、cout输入、输出时程序头部要()。

A #include

B #include

C #include

正确答案:B

单选题

22.【第2章】下面有关重载函数的说法中正确的是()。 ?

A 重载函数必须具有不同的返回值类型

B 重载函数形参个数必须不同

C 重载函数必须有不同的形参列表

D 重载函数名可以不同

正确答案:C

单选题

23.【第2章】假设已经有定义“char *Const name="chen";”下面的语句中正确的是()。

A name[3]='q';

B name=

C name=newChar[5];

D name=newChar('q');

正确答案:A

单选题

24.【第2章】在()情况下适宜采用内联函数。

A 函数代码小,频繁调用

B 函数代码多,频繁调用

C 函数体含有递归语句

D 函数体含有循环语句

正确答案:A

单选题

25.【第2章】设有以下说明语句,则下面的叙述中不正确的是()。struct XYZ {int x ;float y;Char z ;} xyz;

A x,y,z都是结构成员名

B structXYZ是结构类型名

C struct是定义结构类型的关键字

D XYZ 是结构类型名

正确答案:D

单选题

26.【第2章】在C程序中,如果有FILE *fp;则对于文件指针fp,下面说法正确的是()。

A fp是文件读写位置

B 可以用一个fp同时对多个文件缓冲区操作

C fp是用以描述文件缓冲区信息的结构的指针

D 当对文件进行读写操作时,fp也跟着移动

正确答案:C

单选题

27.【第2章】下列语句中错误的是()。

A int*p=newint(10);

B int*p=newint[10];

C int*p=newint;

D int*p=newint[40](0);

正确答案:D

单选题

28.【第2章】下列描述中,()是错误的。

A 内联函数主要解决程序的运行效率问题

B 内联函数的定义必须出现在内联函数第一次被调用之前

C 内联函数中可以包括各种语句

D 对内联函数不可以进行异常接口声明

正确答案:C

单选题

29.【第2章】下面的类型声明中正确是()。

A int&a[4];

B int&*p;

C int&&q;

D inti,*p=&i;

正确答案:D

单选题

30.【第2章】C++程序中函数原型(函数声明)错误的写法是()。

A intAdd(intA,intB);

B intAdd(int,int);

C intAdd(intA,B);

D intAdd(intA,int);

正确答案:C

单选题

31.【第2章】以下各语句或语句组中,正确的操作是()。

A chars[6]="123456";

B char*s;s="123456";

C char*s;gets(s);

D chars[6];scanf("% s",&s);

正确答案:B

单选题

32.【第2章】下列条件语句中,功能与其他语句不同的是()。

A if(a)printf("%d\n",x);elseprintf("%d\n",y)

B if(a==0)printf("%d\n",y);elseprint f("%d\n",x)

C if(a!=0)printf("%d\n",x);elseprintf("%d\n",y)

D if(a==0)printf("%d\n",x);elseprintf("%d\n",y)

正确答案:D

单选题

33.【第2章】在C++中,关于下列设置默认参数值的描述中,()是正确的。

A 不允许设置默认参数值

B 在指定了默认值的参数右边,不能出现没有指定默认值的参数

C 只能在函数的定义性声明中指定参数的默认值

D 设置默认参数值时,必须全部都设置

正确答案:B

单选题

34.【第3章】是构造函数的特征是()。

A 构造函数不可以有形式参数。

B 在创建对象时被执行。

C 构造函数与类不同名。

D 构造函数必须说明返回类型。

正确答案:B

单选题

35.【第3章】于成员函数的说法,不正确的是()。

A 成员函数可以是内置函数。

B 成员函数可以在类内先声明,再在类外定义完整。

C 成员函数可以设置参数的默认值。

D 成员函数一定要在类内定义完整。

正确答案:D

单选题

36.【第3章】下列的各种函数中,是本类的成员函数()。 ?

A 构造函数

B 拷贝构造函数

C 友元函数

D 缺省参数的构造函数

正确答案:C

单选题

37.【第3章】关于成员函数特征的下述描述,正确的是()。 ?

A 成员函数一定是内置函数。

B 成员函数一定要在类外定义完整。

C 成员函数可以设置参数的默认值。

D 成员函数一定要在类内定义完整。

正确答案:C

单选题

38.【第3章】对象是现实世界中的一个实体,其特性的是()。 ?

A 必须有一个关键字,以示区别。

B 每个对象都有对象标识名。

C 只有数据属性。

D 只有操作函数。

正确答案:B

单选题

39.【第3章】下列的各函数中,不是成员函数的是()。

A 构造函数

B 拷贝构造函数

C 默认参数的构造函数

D 友元函数

正确答案:D

单选题

40.【第3章】C++中,类和对象之间的关系是()。

A 结构类型和结构体的关系。

B 定义和被定义的关系。

C 调用和被调用的关系。

D 型和值的关系。

正确答案:A

单选题

41.【第3章】类的友元可以访问该类的()。

A 只能是数据成员

B 所有成员

C 只能是成员函数

D 只能是公有成员

正确答案:B

单选题

42.【第3章】下列的各函数中,是成员函数的是()。

A 主函数

B 返回对象的函数

C 默认参数的构造函数

D 友元函数

正确答案:C

单选题

43.【第3章】定义类,再用类定义对象是()。

A 结构化程序设计的主要特点。

B C语言的主要特点。

C 面向过程的程序设计的主要特点

D 面向对象程序设计的主要特点。

正确答案:D

单选题

44.【第3章】下面有关静态成员函数的描述中,正确的是()。

A 在静态成员函数中可以使用this指针

B 在建立对象前,就可以为静态数据成员赋值

C 静态成员函数在类外定义时,要用static前缀

D 静态成员函数只能在类外定义

单选题

45.【第3章】造函数是在()时被执行的。

A 程序编译

B 创建对象

C 创建类

D 程序装人内存

正确答案:B

单选题

46.【第3章】不是构造函数的特征是()。

A 构造函数与类同名。

B 构造函数必须说明返回类型。

C 构造函数可以有形式参数。

D 编译系统会自动调用构造函数。

正确答案:B

单选题

47.【第3章】元的作用之一是()。

A 提高程序的运行效率

B 加强类的封装性

C 实现数据的隐藏性

D 增加成员函数的种类

正确答案:A

单选题

48.【第3章】的概念是()。

A 所有对象的集合。

B 同一类记录的集合。

C 同一类数据的集合。

D 对一组具有共同的属性特征和行为特征的对象的抽象。

单选题

49.【第3章】不是析构函数的特征是()。

A 析构函数可以有多个参数。

B 析构函数是成员函数。

C 一个类中只能定义一个析构函数。

D 析构函数不能有参数。

正确答案:A

单选题

50.【第3章】下面有关析构函数特征的描述中,正确的是()。 ?

A 一个类中可以定义多个析构函数

B 析构函数名与类名完全相同

C 析构函数不能指定返回类型

D 析构函数可以有一个或多个参数

正确答案:C

单选题

51.【第3章】下面有关友元函数的描述中,正确的说法是()。 ?

A 友元函数是独立于当前类的外部函数

B 一个友元函数不能同时定义为两个类的友元函数

C 友元函数必须在类的外部定义

D 在外部定义友元函数时,必须加关键字friend 正确答案:A

单选题

52.【第3章】面向对象的程序设计中,定义类时保留字是用()。 ?

A type

B class

C private

D public

正确答案:D

单选题

53.【第3章】析构函数的特征是()。

A 析构函数可以有多个参数。

B 析构函数只能在类体内定义。

C 一个类中只能定义一个析构函数。

D 一个类中能定义多个析构函数。

正确答案:C

单选题

54.【第3章】关于成员函数特征的下述描述,不正确的是()。 ?

A 成员函数一定要在类内定义。

B 成员函数可以重载。

C 成员函数可以设置参数的默认值。

D 可在类内定义。

正确答案:A

单选题

55.【第3章】现实世界中的对象,以下不是它的特性的是()。 ?

A 每一个必须有一个名字以区别于其他对象;

B 用属性来描述对象的某些特征;

C 有一组操作,每组操作决定对象的一种行为;

D 有一关键字class

正确答案:D

单选题

56.【第3章】下面有关对构造函数的描述中,正确的是()。 ?

A 构造函数可以带有返回值

B 构造函数的名字与类名完全相同

C 构造函数必须带有参数

D 构造函数必须定义,不能默认

正确答案:B

单选题

57.【第3章】先定义类,再用类定义对象、对象数组、对象指针是()。

A 结构化程序设计的主要特点。

B C语言的主要特点。

C 面向过程的程序设计的主要特点。

D 面向对象程序设计的主要特点。

正确答案:D

单选题

58.【第3章】对象是现实世界中的一个实体,不是其特性的是()。 ?

A 必须有一个关键字,以示区别。

B 每个对象必须有一个名字。

C 有属性。

D 有操作。

正确答案:A

单选题

59.【第3章】是构造函数的特征是()。

A 构造函数不能与类同名。

B 构造函数必须说明返回类型。

C 构造函数可以有形式参数。

D 程序中必须有调用构造函数的语句。

正确答案:C

单选题

60.【第3章】声明类时,下面的说法正确的是()。

A 可以在类的声明中给数据成员赋初值

B 数据成员的数据类型可以是registe

C private、pub lic、protected可以按任意顺序出现

D 没有用private、public、protected定义的数据成员是公有成

正确答案:C

单选题

61.【第3章】类的友元允许访问该类的()。

A 只能是数据成员

B 私有成员

C 只能是成员函数

D 只能是公有成员

正确答案:B

单选题

62.【第4章】置虚基类的目的是()。

A 简化程序

B 消除二义性

C 提高运行效率

D 减少目标代码

正确答案:B

单选题

63.【第4章】类成员在派生类中的访问属性描述中,错误的是()。

A 无论哪种派生,基类的公有成员允许派生类的成员函数访问。

B 无论哪种派生,基类的保护成员允许派生类的成员函数访问。

C 无论哪种派生,基类的私有成员不允许派生类的成员函数访问。

D 无论哪种派生,基类的保护成员不允许派生类的成员函数访问。

正确答案:D

单选题

64.【第4章】设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是()。 ?

A clasederived::studentprivate{?};

B clasederived::studentpublic{?};

C clasederiv ed::privatestudent{?};

D clasederived::publicstudent{?};

正确答案:C

单选题

65.【第4章】类和派生类的相互关系不正确的是()。

A 从基类到派生类称为派生。

B 派生类还可以再作为另一派生类的基类。

C 从派生类到基类称为派生。

D 从派生类到基类称为继承。

正确答案:C

单选题

66.【第4章】类和派生类的相互关系正确的是()。

A 从基类到派生类称为派生。

B 从基类到派生类称为继承。

C 从派生类到基类称为派生。

D 派生类包含了基类。

正确答案:A

单选题

67.【第4章】多继承构造函数定义中,几个基类构造函数用()分隔。 ?

A :

B ;

C ,

D ::

正确答案:C

单选题

68.【第4章】用派中类的主要原因是()。

A 提高代码的可重用性

B 提高程序的运行效率

C 加强类的封装性

D 实现数据的隐藏

正确答案:A

单选题

69.【第4章】类和派生类正确的关系是()。

A 从基类到派生类称为继承。

B 从派生类到基类称为派生。

C 派生类包含了基类。

D 从基类到派生类称为派生。

正确答案:D

单选题

70.【第4章】个基类可以派生出二个派生类,这种继承关系称为()。

A 多继承

B 多重继承

C 单继承

D 双重继承

正确答案:C

单选题

71.【第4章】生类析构函数的执行顺序正确的是()。

A 先执行基类的析构函数,再执行派生类的析构函数。

B 先执行派生类的析构函数,再执行基类的析构函数。

C 基类析构函数执行总是在先。

D 以上都不是。

正确答案:B

单选题

72.【第4章】类成员在派生类中的访问属性描述中,正确的是()。

A 无论哪种派生,基类的公有成员不允许派生类的成员函数访问。

B 无论哪种派生,基类的保护成员不允许派生类的成员函数访问。

C 无论哪种派生,基类的私有成员允许派生类的成员函数访问。

D 无论哪种派生,基类的保护成员允许派生类的成员函数访问。

正确答案:D

单选题

73.【第4章】个基类可以派生出一个派生类,该派生类再派生出一个派生类,这种继承关系称为()。

A 多继承

B 多重继承

C 双重继承

D 单继承

正确答案:D

面向对象试题(答案)

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()

长相与性格

长相与性格 每天接触到很多人,见到许多张面孔,但是这些面孔却带给人不同的心理感受。有的人脸上写满了无知,一脸茫然;有的人冷淡世故,庸俗诡秘;有的人面露狡诈,警觉多疑;有的人英气勃发,隐约透着忧虑……慢慢地,我意识到观察面孔很有意思,于是利用各种机会留心观察。乘地铁,逛商场,坐电梯,开会,上课以及吃饭,都可以用来观察。不过,我的观察没有具体目的,仅仅是感觉,观察也只停留在表面。 是什么原因导致人的相貌迥异,相貌透露出的性格特点又为何如此鲜明?相貌和表情所表现出的性格,是否就是其真实性格?这些问题让我觉得迷惑,也促使我试着分析。 1、对相貌的一般认识 从相貌推测性格的知识有很多,最常见的是观相术。由于相貌可以直接反映其内心状态,从古至今,产生了许多相面的方法,用来根据相貌推测人的本性。但是,这些广为人知的方法似乎并未触及本质。人的不同面貌反映了怎样的性格特征?一般书籍或资料只是把面部特征与人的性格联系起来,人们正是受了这种初步印象的影响,拿些现成结论和自己总结的经验,综合起来做出判断。可惜多数情况下不容易直接得出结论,即使草率得出,结论也可能是片面的。 古代识相鉴人的书中,《冰鉴》比较出名,是曾国藩根据观察总结出的识人鉴人

方法。书中详细阐述了这些方法,但是我觉得书中联想性的描写和主观因素较多,许多论述仅是分类汇总观察到的结果,并未深入分析面貌、行为与性情之间的本质关系,也没有解释清楚性情如何影响面貌从而塑造面貌。例如在“第三容貌”中说:“目者面之渊,不深则不清。鼻者面之山,不高则不灵。口阔而方禄千种,齿多而圆不家食。眼角入鬓,必掌刑名。顶见于面,终司钱谷:出贵征也。舌脱无官,橘皮不显。文人有伤左目,鹰鼻动便食人:此贱征也。”没有从因果关系出发深入剖析,理论依据不足,缺乏可操作性。传统文化中,像这样只可意会不可言传的内容太多了。这种方式对于文学创造也许有好处,但是用于理性分析似乎并不适合。因为许多感受只可自知,别人无法进入其内心世界替他感受,即使在脑海里虚拟相同的场景,也无法真切感受他当时到底是怎么想的,仅能凭借语言描述展开想象的翅膀。但是,语言表述不能完全描绘出**的精神世界和准确的科学事实,因此其准确性和有效性要大打折扣。不过以曾师当时的条件,能有这样广博深邃的认识,已经很不容易了。 2、相貌与心境 常听人说相由心生,意思是说,相貌和形象是由内心情感产生的。人们相信相由心生有一定道理,但是并不真正清楚其根本成因。 “相由心生”出自佛教经典《无常经》,佛曰:“世事无相,相由心生,可见之物,实为非物,可感之事,实为非事。物事皆空,实为心瘴,俗人之心,处处皆狱,惟有化世,堪为无我。我即为世,世即为我。”所谓相由心生,即是阐述了

面向对象例题

(1)阅读下列说明和图,完成问题1至问题4,并在答题纸上自行列表写出答案。 【说明】 在线会议审稿系统(Online Reviewing System, ORS)主要处理会议前期的投稿和审稿事务,其功能描述如下: (1)用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。 (2)作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。 (3)审稿人登录后可设置兴趣领域,审阅稿件给出意见,以及罗列录用和(或)拒绝的稿件。 (4)会议委员会主席是一个特殊的审稿人,可以浏览提交的稿件、给审稿人分配稿件、罗列录用和(或)拒绝的稿件,以及关闭审稿过程。其中关闭审稿过程须包括罗列录用和(或)拒绝的稿件。 系统采用面向对象的方法开发,使用UML进行建模。在建模用例图时,常用的方式是先识别参与者,然后确定参与者如何使用系统来确定用例,每个用例可以构造一个活动图。参与者名称、用例和活动名称分别参见表1、表2和表3。系统的部分用例图和提交稿件的活动图分别如图1和图2所示。 名称说明名称说明 User 用户Author 作者 Reviewer 审稿人PCChair 委员会主席 名称说明名称说明 login 登录系统Register 注册 submit paper 提交稿件Browse review results 浏览稿件审阅结果 close reviewing process 关闭审稿过程assign paper to reviewer 分配稿件给审稿人 set preferences 设定兴趣领域enter review 审阅稿件给出意见 list accepted/rejected papers 罗列录用和/或拒绝 的稿件 browse submitted papers 浏览提交的稿件 名称说明名称说明select paper location 选择稿件位置upload paper 上传稿件select subject group 选择主题类型send notification 发送通知enter title and abstract 输入标题和摘要

面向对象

第三章面向对象 1.实验题 创建一个抽象的车类,包括各种车类。至少包含一个抽象方法。成员变量:品牌。可载人数、轮子个数、能源等。抽象方法如:跑、加速、刹车等。 通过集成车类重新声明公共汽车类和普通自行车类,在子类中实现父类中抽象方法。 构造方法对应区分为公共汽车和普通自行车,子类的构造方法中提供不同的类设置不同的默认值,如汽车类可以默认轮子个数是4个,可载人数50个,能源为汽油。 2.选择题 (1)下面关于类变量和实例变量的叙述中描述错误的是(D ) A.实例变量是类的成员变量 B.类变量第一次用到时被初始化,以后创建其他对象时就不再进行初始化 C.实例变量在每次创建对象时都被初始化 D.实例变量是用static修饰的成员变量 (2)抽象类的修饰类是(B ) A .private B.abstract C.native D.protected (3)下面说法中,错误的是(A ) A.类是经过抽象的共有属性的集合 B.Java程序由一个个类组成 C.类是对象的模板,而对象则是类的实例化结果 D.在面向对象的编程语言中,程序单位由一个个的函数组成 (4)下面有关变量调用的语句正确的是(A ) public class StaticDemo{ private int a=2; private float b=12; Private static int c=13; Public static void main(String args[]){ StaticDemo one = new StaticDemo(); } A.one.a B. StaticDemo.a C.StaticDemo.b D.StaticDemo.one (5)下列说法中,错误的一项是() A.匿名内部类没有名字 B.匿名内部类没有构造方法 C.匿名内部类可以没有父类,也可以不实现某个接口 D.匿名内部类需要调用一个没有参数的父类的构造方法 (6)下列说法正确的是(A) A.一个可直接运行的Java源文件中可以有多个public类,其中必须有一个和文件同名 B.一个可直接运行的Java源文件中可以没有public类 C.一个可直接运行的Java源文件中只能有一个且和文件同名的public类 D.一个可直接运行的Java源文件中可以有多个public类,且可以没有和文件同名的类(7)下列不属于面向对象编程特征的是(B) A.封装 B.指针操作 C.多态性 D.继承

面相看配偶神相泄天机

面相看配偶神相泄天机 眉毛粗长、鼻瘦之人配偶胖。 眉毛粗散、鼻子肥大配偶瘦。 眼是自己,眉是配偶。主要是看哪个宽。 2、断配偶高矮: 眉长目短配偶高,目长眉短配偶矮。 鹰钩鼻的人与配偶的身高差距大。 眉眼同长而且鼻长又较高的人,自己高配偶矮小。 3、断配偶脸型: 山根低、鼻头肥大者,配偶是方脸。 鼻头小、山根中间鼓者,配偶是申子脸。 山根细小、鼻头肥大者,配偶是上宽下窄的脸。山根肥大、鼻头尖的人,配偶是甲子脸。 山根和鼻头都肥大的,配偶是蜂腰脸。 4、断配偶性格: 鼻尖的配偶性格急躁。 鼻圆的配偶性格柔和。 鼻子高、鼻头圆配偶性格刚强、重义气。 山根、鼻头肥大,配偶性格心直心好,身材好。山根高、鼻头方,配偶善良、憨厚。 5、断配偶美丑:

俗话说“相由心生”,所以说美与丑是看各个人的审美的 观点不同,而自己对美与丑的定义不同,“爱美之心人皆有之”,可是有人喜欢胖子,有人喜欢瘦的,有人喜欢大眼睛,有人喜欢小眼睛,所以判断美与丑的观点不同,定义也不一样。从生理学的角度上,只因为人大脑共振不同,a脑波的波长不同而产生出来的美与丑。 断配偶美丑主要是看三个地方,1、奸门;2、眉眼;3、印堂。 原因是,奸门看欲望大小;眉眼相配看配偶眉眼(主要是看协不协调);印堂是看愿望是否达成。如果三者有两者或是 一者好的,只能说配偶长相一般。 具体判断是, 1、眉毛有彩(整齐、轮廓明晰,在远处看给人一种相涂彩 的感觉)其配偶必美。 2、眉毛无彩(与有彩相反,粗浊,稀疏)其配偶必丑,但 如果鼻子与脸相衬、印堂和奸门丰满也为美。 6、配眼睛、眉毛:眉弯、眉长配眼长,短反之。 眉粗配眼大,窄反之。 7、配下巴:眉尾尖、鼻头尖配偶下巴尖。 眉毛下垂,弯抱眼睛,配偶为翘下巴。 如果眉毛散,鼻头大者配偶就是圆下巴或是宽下

面向对象的三大特性

面向对象的三大特性 收藏 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 在Java中类中成员的属性有:public,protected,,private,这四个属性的访问权限依次降低。 继承 面向对象编程(OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 ?实现继承是指使用基类的属性和方法而无需额外编码的能力; ?接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; ?可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承Person 类。但是Leg 类却不能继承Person 类,因为腿并不是一个人。

面向对象练习

面向对象练习题 1、编写一个类Calculator1,实现加、减两种运算,然后,编写另一个派生类Calculator2,实现加、减、乘、除两种运算。 2、编写一个静态类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。 3.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。 4.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。 5.创建一个employee类,该类中姓名、街道地址、市、省和邮政编码。把表示构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。 6. 编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。最后在Main函数中对student类的功能进行验证。 7.(1)定义一个游戏中Hero 英雄的类,在该类中定义英雄的名字,生命值和等级3 个属性,定义一个构造函数完成对生命值和等级的初始化,分别赋初值为100,1。同时实现名字的输入和英雄信息的输出。 (2)在上一题的基础上,为英雄再定义拥有一个参数的构造方法,传入一个英雄等级的值,如果为1,则为普通英雄,生命值为100,

如果该值为2,则为高级英雄,生命值初始化为200。 (3)在上两英雄类型的基础上,为英雄添加一个基本战斗的方法,该方法拥有一个英雄类型的对手参数,每次战斗,能降低对方10 点血。再增加一个绝招的重载方法,加入一个战斗类型参数,通过输入不同绝招参数,降低对方不同的血量。 8.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。 思路: 设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有成员函数disp(),用于输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。 9.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前%70的学生定为合格(PASS),而后30%的学生定为不合格(FAIL) 思路: 设计一个类student,包含学生的姓名和成绩等数据。设计一个类Compute: sort()、disp(),它们分别用于按成绩排序和输出数据。

面向对象

面向对象 面向对象概念 OOP .面向对象不是取代面向过程的。 .类、对象。“人”是类,“张三”是“人”这个类的对象。类是抽象的,对象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实例(Instance)。类就像int,对象就像10。字段Field(和某个对象相关的变量),字段就是类的状态。人这个类有姓名、年龄、身高等字段。类不占内存,对象才占内存。 .方法Method,方法就是类能够执行的动作,比如问好、吃饭等。 .类的继承,类之间可以有继承关系,比如“电脑”类可以从“电器”类继承,这样的好处是“电脑”类只需要定义自己特有的字段、方法就可以,也就是只要定义内存大小、CPU型号这些字段或者弹出光驱等方法就可以。父类(Parent)、基类(Base,基业,祖宗十八代传下来的)。电脑类是电器类的子类(ChildClass)。重用。 .面向对象的三个特性:封装、继承、多态。 .没有面向对象的世界中的难题。

static void Main(string[] args) { /* Person p = new Person();//创建一个Person对象,用p指向它。 https://www.docsj.com/doc/6215823585.html, = "tom"; p.Hight = 160; p.Age = 36; p.SayHello(); } class Person { public int Hight; public int Age; public string Name; public void SayHello() { Console.WriteLine("大家好,我是{0},我的身高是{1},我的年龄{2}",https://www.docsj.com/doc/6215823585.html,,this.Hight,this.Age);//this.我自己的**** } }

面相总结

面相总结 一、五官及性格特点: 1、鹰咀鼻: 特点:贪心。 对策:先给他点甜头。 2、三角眼: 特点:过于现实、势力,得势不饶人,招招狠毒。 对策:避免正面交锋,只要你的权势大过他,就可直接将其制下,提防他报复。 3、蟹目: 特点:上眼睑重重的下压,形成一字型。四肢发达,头脑不灵活。 对策:懂得利用一股蛮劲。 4、下三白眼: 特点:眼白多,眼珠小而上浮,属野心家,为求目的不择手段。擅长攻心理。 对策:这类人最大弱点,感情脆弱,心灵空虚。抓住他的脆弱,而攻击。5、眉散碎、眼斜视: 特点:阴险狡诈。 对策:先要拆穿他的虚假,再拒之千里之外。 6、四白眼:(眼珠小,在中间,四周露眼白) 特点:最可怕,凶。常生疑心暗鬼。 对策:避免接触。 7、颧骨、腮骨横突: 特点:喜欢争斗,贪恋权势。沉不住气、太冲动是他的最大缺点。 对策:激将法。

8、口反唇薄: 特点:把种种不合理说成合理化,不能被他捉到话柄,得势不饶人。 对策:少惹为佳。 9、缺叉眉、眼神闪缩: 特点:性格怪僻,对人虚情假意,奸。善变、疑心重。 对策:用似是而非的假消息吸引,虚则实之,实则虚之。 10、面皮青薄、眼下视: 特点:翻脸无情,有不可告人之秘密,脑子里尽想对付别人的计策。喜欢贪图虚荣。 对策:给他挂个虚名便可控制一阵。 以上不可交、不可合作。 11、眼平和、黑眼多眼白少: 特点:没有太多心机,是爱护朋友、心地善良的人。无须提防。 12、鼻正直、不太高、鼻头圆: 特点:光明正大、心正、忠诚。 13、贴脑耳、耳珠朝口: 特点:慈善,不愁钱财,衣食无忧。 14、咀角起棱、唇厚方红: 特点:对朋友重视,言词有度,诚信待人、谦虚。 15、地阁圆厚、两颐饱满: 特点:性格稳重而实事求是。 16、两眼正直、神藏而静: 特点:亲切信任、正直。 17、两眉浓密不乱、不压眼:

面相中的十大凶相都有这些,你知道吗,看完该注意了

面相中的十大凶相都有这些,你知道吗,看完该注意了 谓的面相‘五官’,指的就是‘耳、眉、眼、鼻、口’等五种人体器官。面相就是一个人所具有的独特气质,而成为形或色表现于面上,给人的一种感受。接下来为大家详细介绍面相算命图解大全。面相可分为三庭看,人的眉以上是上庭,人的眉至鼻头是中庭,人的鼻头以下就为下庭。面部三庭要均匀。即额头、眉眼鼻、嘴与下巴的比例要均匀,整个面部显得大方磊落。若是额形生得略高阔饱满,则代表少年运佳,但额不能太高,过高会克夫,太低则少年运差,当然没法早嫁。在面部五官之后,再细分便是十二宫。这十二个宫位囊括了面部所有的特性和吉凶。第一宫:命宫,又为愿望之宫。麻衣曰:其居两眉间,山根之上,为印堂。第二宫:财帛宫,位于土宿,包括天仓、地库、金甲、井灶。主察财运。第三宫:兄弟宫,又称交友宫。麻衣曰:位居两眉。主交友运。第四宫:田宅宫,田宅宫,位于两眼,及上眼睑。主家业运第五宫:男女宫,又称子女宫。麻衣曰:位于两眼之下,又称为泪堂。看子嗣运。第六宫:奴仆宫,麻衣说它位居地阁,重接水星。看管理运。第七宫:妻妾宫,也可以称为夫妻宫,就在眼尾。第八宫:疾厄宫,一说是山根位,一说是年寿位,建议以鼻梁统看。第九宫:迁移宫,迁移者,位居眉角。古相士,以迁移宫的位置看人阴阳宅状况。第十宫:官禄宫,

官禄者,为居中正,上合离宫。反应人的禄命官运。第十一宫:福德宫,福德者,位居天仓,牵连地阁。看福禄之运。第十二宫:父母宫,便是额头的日月角。主看父母的福祸疾厄。看面相,形体外貌、精神气质、举止情态皆可一视而察,情人、恋人、夫妻、同事、朋友之间、感情总会有变化的、是相互信任、倾慕也可以从面相看出来。额头眉毛之间只有一道纵纹。这种面相在相学中被称为天柱纹。有此面相的人个性都很顽强。是属于做事不达目的绝不会放弃,对利益也是分得很清楚。一般来讲他们是不做对自己无利的事情。这样的人不但严以律己。同时对别人的要求也非常严格。但还有就是是这种面相的人有一个特征,那就好是这道纵纹平时是不会出现。当他的身心俱疲的时候,这道皱纹才会出现。鼻子的上部这些部位若是出现了数条横纹的人。有此面相特征者对事物都会表现出十足的热情。甚至可以说是充满激情。不仅是做事情又积极又主动。待人处事也是持着一颗平常心。此外,如果是说笑时出现这种皱纹的人。一般性格都是较为温和。缺点就是比较好管别人的事情。也常常为此惹祸上身。 1、男人的眉毛中间稀疏杂乱、毛形逆生,是为乱性之相, 情绪十分不稳定,伴有较重的暴力倾向。-2、双眉过低而压眼,是为心性阴沉扭曲而走极端。-3、女子眉过粗浓,不仅一生婚姻难成,且有妨夫。-4、印堂过窄小,难容两指的人,一生运势不顺且多灾厄。-5、女子双颧露骨而突起,对夫运

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

面向对象

《面向对象程序设计》课程设计报告 报告题目: 所在院系: 所在班级: 姓名: 2011年12月29日

目录 一、课程设计目的 (3) 二、课程设计要求 (3) 三、课程设计内容 (3) 四、类层次图 (3) 五、程序代码 (5) 六、调试过程 (24) 七、总结 (26) 八、参考书目 (26)

一、课程设计目的: 1、熟练掌握C++的基本知识和技能。 2、掌握面向对象程序设计的基本思路和方法。 3、能够利用所学的知识和技能,解决面向对象程序设计实际应用问题。 二、课程设计要求: 1、利用面向对象的方法和C++的编程思想完成设计。 2、在设计过程中要求建立清晰的类层次。 3、在定义和实现类过程中,每个类都要有各自的成员变量和成员函数。 4、注意运用面向对象的机制(继承、派生及多态)来实现课程设计。 三、课程设计内容: 设计一个计算图形面积、体积的类库: 它的顶层是一个抽象类Shape, 第二层是二维图形(TwoDimShape)和三维图形(ThreeShape), 第三层是由第二层派生出来的具体图形类,圆、椭圆、矩形、三角形; 球体、圆柱体、长方体。 本程序完成的主要功能有: (1)计算二维图形的面积 (2)计算三维图形的体积 四、类层图: 派生关系: 基类:Shape 基类派生出:二维图形(TwoDimShape)和三维图形(ThreeShape) 二维图形派生:圆、椭圆、矩形、三角形 三维图形派生:球体、圆柱体、长方体 程序内容: 定义一个抽象类形状(Shape),包含输入基本图形的信息函数input()、显示基本图形信息函数show(),它们均是纯虚函数。通过 继承派生出二维图形和三维图形,二维图形类中包含输入基本图形的 信息函数input()、显示基本图形信息函数show()、计算面积的函数 area(),其中area()函数是虚函数;三维图形类中包含输入基本图形的信息函数input()、显示基本图形信息函数show()、计算体积的函 数volume(),其中volume()函数是虚函数;进而,通过继承二维图形 类和三维图形类分别派生出具体的图形类,圆、椭圆、矩形、三角形; 球体、圆柱体、长方体。二维图形类派生出的具体图形类中包含输入 基本图形的信息函数input()、显示基本图形信息函数show()计算面 积的函数area()以及各自的构造函数与默认构造函数;三维图形类 派生出的具体的图形类中包含输入基本图形的信息函数input()、显 示基本图形信息函数show()、计算体积的函数volume()以及各自的

面向对象专题练习

**专题5 面向对象 一、填空题 1.如果一个方法不返回任何值,则该方法的返回值类型为void 。(//有无返回值的意义何在???) 2.如果子类中的某个方法名、返回值类型和_参数列表_____与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。 3.接口中所有的属性均为_public_、_final_____和_static__的,方法(public abstract ) 4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在具体类之中定义。 5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。 6.一般Java程序的类主体由两部分组成:一部分是属性,另一部分是方法。7.分别用class关键字来定义类,用new关键字来分配实例存储空间。 8.当一个类的修饰符为final时,说明该类不能被继承,即不能有子类。9.在Java中,能实现多重继承效果的方式是接口。 二、选择题 1.方法内定义的变量(B)。 A.一定在方法内所有位置可见B.可能在方法的局部位置可见(for循环)C.在方法外可以使用D.在方法外可见 2.方法的形参()。 A.可以没有B.至少有一个 C.必须定义多个形参D.只能是简单变量 3.return语句()。 A.不能用来返回对象B.只可以返回数值 C.方法都必须含有D.一个方法中可以有多个(但是返回只有一个)

4.main()方法的返回值类型是() A.boolean B.int C.void D.static 5.编译并运行下面的程序,运行结果是()。 public class A{ public static void main(String args[]){ A a=new A(); a.method(8); } void method(int i){ System.out.println(“int: ”+i); } void method(long i){ System.out.println(“long: ”+i); } A.程序可以编译运行,输出结果为:“int: 8” B.程序可以编译运行,输出结果为:“long: 8” C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出 6.能作为类及其成员的修饰符是()。 A.interface B.class C.protected D.public 7.下列方法定义中,方法头不正确的是()。 A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…} 8.构造方法在()时被调用。 A.类定义时B.使用对象的变量时 C.调用对象方法时D.创建对象时 9.下列哪个类声明是正确的()。 A.public abstract class Car{…} B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 10.下列不属于面向对象程序设计的基本特征的是()。 A.抽象B.封装 C.继承D.静态 11.请看下面的程序段 class Person{ String name,department; int age;

(完整版)面相十二宫的解释

面相十二宫的解释 2009-02-07 14:03 面相十二宫的解释 命宫 (双局中间印堂部位) 一、命宫有直纹的人 此种有悬针纹,影响所及势必神经衰弱,个性偏激,易遭失败。疑神疑鬼,易遭失败。 二、命宫低陷的人 除自卑外,生活较艰苦孤独。命宫低陷的人,易遭生命危险兼保护力弱。 三、命宫狭窄的人 碌而操心,为人气量不大,缺乏安全感。猜忌多疑,运程起伏,一生过得不太安足。 四、命宫有皱纹冲破之人 运气不顺,颇劳碌。易与上司或别人引起争端、遭到失败。 五、命宫气色的看法如何? 1.赤红色,必须防止口舌是非,官非诉讼。 2.青色,必有惊恐之事发生。 3.黑色,必有破财、骨折车祸等事发生。 六、命宫宽大的人 1.是一个成功的人 2.智能和器量都相对的增加。

七、命宫丰的人 是一个圆满的命格。容易获得成功与财富。 附注: 命宫:位于两眉之间。太宽:二指以上、无主见、理想高不切实际。太窄:低于一指、考虑太少。眉头交锁气量狭窄。 隐性悬针纹(此人头脑聪明与人说话之际其脑筋不停的转动)属内劳型、劳心伤神。 印堂宽广双分入鬓、卿相位何疑、交头并印促、背禄奔驰。朝中无交眉之宰相。 迁移宫 (前额两侧靠发际的部份,包括边城驿马,上至山林下至辅角,眉毛上方外侧部) 一、迁移宫低陷的人 1.出外无力,白奔波。 2.不适合外务工作,不宜创业管理。 二、迁移宫狭窄不平的人 1.财源少,不适合国贸。 2.安份为妙,免将祖业败光。 三、气色黑暗的人 1.出外不力。

2.阴灵侵入。 四、有恶痣、刀疤之类的人 1.出外小心,会屡遭危险。 2.不适宜经营国贸,出外旅行最好投入保险业。 3.屡为工作不稳定而为迁移变动所苦。 五、迁移宫丰隆的人 1.出外有良好的契机,可以大发展。 2.最适宜经营国际贸易事业的人,财源富足。 六、迁移宫有骨耸起的人 1.出外掌握权势。 2.投入军旅界必能显赫一时。 备注:流年--迁移宫有痣、疤及气色不佳,不能出国或不顺利成行。官禄宫 (左前额的中央部,上至发往下至印堂) 一、官禄宫有疤痕或黑痣的人 1.小心傲上或犯上,自以为才华受长辈的压抑。 2.代表父母或家庭有事发生。 3.宜从事服务行业。 二、塌陷的人

面向对象的三个基本特征和概念

面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 实现继承是指使用基类的属性和方法而无需额外编码的能力; 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。 抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。 OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 多态 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。 实现多态,有二种方式,覆盖,重载。 覆盖,是指子类重新定义父类的虚函数的做法。 重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、 str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。” 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

面相对象程序设计

1.【第1章】面向对象(O-O)程序设计是一种新的程序设计范型。这种范型的主要特征是()。 A 程序=对象+消息 B 程序=函数+调用 C 程序=算法+数据 D 程序=过程+调用 正确答案:A 单选题 2.【第1章】不是面向对象系统的特性是()。 A 封装性 B 继承性 C 保密性 D 多态性 正确答案:C 单选题 3.【第2章】若有定义char *words[]={"FORTRAN", "BASIC","PASCAL","JAVA","C"};则输出结果为AVA的语句是()。 A printf("%s",*words[3]+1) B printf("%s",*words[4]+1) C printf("%s",*(words+3)+1) D printf("%s",(*words+4)+1) 正确答案:C 单选题 4.【第2章】假设已经有定义“constChar * name="chen";”下面的语句中错误的是()。 A name[3]='q'; B name= C name=newChar[5]; D name=newChar('q'); 正确答案:A

5.【第2章】以下叙述中不正确的是()。 A 在不同的函数中可以使用相同名字的变量 B 函数中的形式参数是局部变量 C 在一个函数内定义的变量只在本函数范围内有效 D 在一个函数内的复合语句中定义的变量在本函数范围内有效正确答案:D 单选题 6.【第2章】执行下列程序段后, int *p,A = 10,B=1;p = &b;A =a + (*p)++ ;变量a,b 的值为:()。 A a=10,b=1 B a=10,b=2 C a=11,b=1 D a=11,b=2 正确答案:D 单选题 7.【第2章】charA[10] = "abcde",B[8]= "fghi"; strcpy(a+3,b+1); printf("%d ",strle n(a) );执行下面程序后的输出结果为()。 ? A 5 B 6 C 9 D 10 正确答案:B 单选题 8.【第2章】表达式:36.5-(12+7%4)/2.0的运算结果是()类型。 ? A double B int C float

面向对象特征

面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 实现继承是指使用基类的属性和方法而无需额外编码的能力; 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。 抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。 OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 多态 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。 实现多态,有二种方式,覆盖,重载。 覆盖,是指子类重新定义父类的虚函数的做法。 重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。” 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码

面向对象三个基本特征

封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程(OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 ? 实现继承是指使用基类的属性和方法而无需额外编码的能力; ? 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

? 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承Person 类。但是Leg 类却不能继承Person 类,因为腿并不是一个人。 抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字Interface 而不是Class。 OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 多态 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。 实现多态,有二种方式,覆盖,重载。 覆盖,是指子类重新定义父类的虚函数的做法。 重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是“覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。” 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

相关文档