面向对象程序设计综合练习题a
- 格式:doc
- 大小:411.50 KB
- 文档页数:60
▆■■■■■■■■■■■■福建师范大学网络与继续教育学院《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单项单选题 (共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251、以下对部署图说法不正确的是()。
A.部署图有主要建模元素是构件B.使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件的配置的部署方式C.从部署图中,可以了解到软件与硬件之间物理关系及处理节点的组件分布情况D.部署图是用来显示系统中软件和硬件的物理结构2、组件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理,通常可以分为三种方式来完成,下面哪种不是其中之一()。
A.对源代码建模B.对事物建模C.对数据库建模D.对可执行文件建模3、关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致B.可重用性好C.以数据操作为中心D.可维护性好4、类和接口的关系类似于下面哪种类型的关系()。
A.关联(association)和聚集(aggregation)B.关联(association)和组合(composition)C.脚本(scenario)和用例(use case)D.包(Package)和子系统(subsystem)5、UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中()包括构件图,它描述软件系统中各组成构件,构件的内部结构以及构件之间的依赖关系。
A.行为视图B.结构视图C.构件视图D.用例视图6、行为类模式使用()在类间分派行为。
A.接口B.继承机制C.对象组合D.委托7、通常对象有很多属性,下面仅能在对象内部访问的属性可见性限制是()。
A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)8、下面不属于创建型模式的有()。
课程代码:座位号:大学20 -20 学年度第二学期期末考试《面向对象程序设计》试卷: 学号: 专业:学院: 班级:20 年月日一、单选题(10小题,共10分)1.下列选项中,用于在定义子类时声明父类名的关键字是【】A.interface B. package C. extends D. class2.在以下哪种情况下可以获得缺省构造器? 【】A.当作任何类的定义时 B.当类没有其它构造器时C.当定义至少一个构造器的时 D.从不需要3.如果局部变量和成员变量同名,如何在局部变量作用域引用成员变量?【】 A.不能引用,必须改名,使它们的名称不相同B.在成员变量前加this,使用this访问该成员变量C.在成员变量前加super,使用super访问该成员变量D.不影响,系统可以自己区分4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【】A.try子句B.catch子句 C.finally子句 D.throw子句5.下面哪个流类属于面向字符的输入流【】A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader6.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是【】。
A.java.applet B.java.awt C.java.util D.ng7.下面程序定义了一个类,关于该类说确的是【】Abstract class abstractClass{……}A. 该类能调用new abstractClass(),方法实例化为一个对象B. 该类不能被继承C. 该类的方法都不能被重载D. 以上说法都不对8.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main(String[] args) {X5_1_1 x=new X5_1_1();}}在main()方法中,下面哪条语句的用法是正确的?【】A.x.f B.this.si C .X5_1_1.i D.X5_1_1.f9.下列说法中,错误的一项是【】A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线程10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】A. executeQueryB.executeC. executeUpdatemit二、填空题(10小题,共10分)1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________方法的那个类的名字。
面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。
A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为( )。
A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( )。
A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。
A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。
A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。
《面向对象程序设计C++》期末考试试卷(A)试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
《C++面向对象程序设计》试题(A卷) (满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa; B. 该语句会创建A类的5个对象,且它们的地址是连续的; C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:A.类A 中类型为A的静态数据成员 B. f中用语句A a = one; 定义的量a C. oneD. *this3.在一个类中,下列哪些成员可以是多个?A. 无参构造函数 B. 析构函数C. 原型相同的非静态成员函数 D. 静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A. 缺省的无参构造函数 B. 缺省的拷贝构造函数 C. T f( ) { T t; return t; }D. 不能判定A、B、C哪个最慢5.对函数原型为int& min(int& a, int& b);的全局函数,下列语句块哪个是错误的:A. int x=10,y=5; min(x,y)=100; B. int x=10,y=5, z; z=min(x,y+=x); C. int x=10,y=5;min(x,10)=y; D. int x=10,y=5; x=min(x,y);6.关于拷贝构造函数错误的说法有:A. 拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。
B. 若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。
C. 拷贝构造函数只能有一个参数,且为常量引用或非常量引用。
面向对象程序设计期末综合练习一(单选题)单选题1.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5.以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中6.以下叙述中不正确的是( C )。
A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量7.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录8.当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( A )。
A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录9.预处理命令在程序中都是以( B )符号开头的。
A. *B. #C. &D. @10.用new运算符创建一个含10个元素的一维整型数组的正确语句是( C )。
A. int *p=new a[10];B. int *p=new float[10];C. int *p=new int[10];D. int *p=new int[10]={1,2,3,4,5}11.假定变量m定义为“int m=7;”,则定义变量p的正确语句为(B )。
《JAVA语言与面向对象程序设计》复习纲要A一、单项选择题1. Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String argsB、String args[]C、Char argD、StringBuffer args[]2.下列的哪个选项可以正确用以表示八进制值8?()。
A、0x8B、0x10C、08D、0103. 设 int x=1,float y=2,则表达式 x / y的值是()。
A、0B、1C、2D、以上都不是4. 若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()。
A、x[5-3]B、x[k]C、x[k+5]D、x[0]5. Java Applet在被浏览器加载的时候首先被执行且在applet整个生命周期中只被运行一次的方法是()。
A、init()B、start()C、opreationcrawl()D、reader()6. 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行?()A、init()B、start()C、destroy()D、stop()7. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
A、隐藏B、重写C、重载D、Java不支持此特性8. 以下有关构造方法的说法,正确的是()。
A、一个类的构造方法可以有多个B、构造方法在类定义时被调用C、构造方法只能由对象中的其它方法调用D、构造方法可以和类同名,也可以和类名不同9. 以下for循环的执行次数是()。
for(int x=0;(x==0)&(x>4);x++);A、无限次B、一次也不执行C、执行4次D、执行3次10. 下面类定义中哪一个给出了合法的抽象类的定义?()A、abstract Animal {abstract void growl();};B、class abstract Animal {abstract void growl();};C、abstract class Animal {abstract void growl();};D、abstract class Animal {abstract void growl() {System.out.println("growl");}}二、多项选择题1.Java中main()函数的值是什么?()A、StringB、intC、charD、void2.下面哪句话是正确的?()A、>> 是算术右移操作符B、>> 是逻辑右移操作符C、>>> 是算术右移操作符D、>>> 是逻辑右移操作符3. 下面哪个赋值语句是合法的?()A、float a = 2.0B、double b = 2.0C、int c = 2D、long d = 24. 已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组下标量总数相等?()A、m.length()B、m.lengthC、m.length()+1D、m.length+15. 下列关于静态初始化器的叙述中,哪一个是正确的?()。
Java 语言与面向对象程序设计基础试题 第1页(共10页) Java 语言与面向对象程序设计基础试题 第2页(共10页)一、判断题(判断下列说法是否正确,正确打“√”,错误打“×”,每小题2分,共20分) 1. Java 有两类程序:Java Application 和Java Applet ,其中Java Applet 程序由嵌入到浏览器中的解释器解释运行。
( ) 2.Java 程序里,创建新的对象用new 调用构造方法,回收无用的对象使用关键字free 。
( ) 3.Java 的类不允许多重继承,但接口支持多重继承。
( ) 4.Applet 是一种特殊的Panel ,它是Java Applet 程序的最外层容器。
( ) 5.Java 语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
( ) 6.构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void 型。
( ) 7.无论Java 源程序包含几个类的定义,若该源程序文件以A.java 命名,编译后生成的都只有一个名为A 的字节码文件。
( ) 8.在不同的软硬件平台上,Java 的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。
( ) 9.Java 系统的标准输入对象是System.in ,标准输出对象有两个,分别是标准输出System.out 和标准错误输出System.err 。
( ) ( ) 二、单项选择题(每小题2分,共40分) 1.在编写Java Applet 程序时,需要在程序的开头写上( )语句。
A .import java.awt.* ; B .import java.applet.* ; C .import java.io.* ; D .import java.awt.event.* ; 2.以下声明正确的是( )。
A .public static int x; B .default int x; C .abstract double d; D .abstract final int x; 3.Java application 中的主类需包含main 方法,main 方法的返回类型是( )。
一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( B )。
A.面向过程B.面向对象C.安全性D.复用性1-2.C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik1-5.编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接1-6.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车1-7.C++中声明常量的关键字是( A )。
A.const B.externC.public D.enum1-8.以下叙述中正确的是( B )A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值1-9.下列的符号常变量定义中,错误的定义是( C )。
A.const M=10; B.const int M=20;C.const char ch; D.const bool mark=true;1-10.函数原型语句正确的是( B )。
A.int Function(void a)B.void Function (int);C.int Function(a);D.void int(double a);1-11.以下正确的函数原型语句是( C )。
A.double fun(int x,int y)B.double fun(int x;int y)C.double fun(int,int);D.double fun(int x,y);1-12.下面有关重载函数的说法中正确的是( C )。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同1-13.函数重载是指(A)。
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同1-14.采用重载函数的目的是( D )。
A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性1-15.以下关于函数模板叙述正确的是( C )。
A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义D.用函数模板定义的函数没有类型1-16.以下正确的描述是( C )。
A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置1-17.( B )是给变量取一个别名,它引入了变量的同义词。
A.指针B.引用C.枚举D.结构1-18.假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。
A. int rx=x;B. int rx=&x;C. int *rx=&x;D. int &rx=x;1-19.下列对引用的陈述中不正确的是( C )。
A. 每一个引用都是其所引用对象的别名,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D. 不需要单独为引用分配存储空间1-20.下列( C )的调用方式是引用调用。
A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值1-21.在( C )情况下适宜采用inline定义内置函数。
A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、且频繁调用D.函数代码多、不常调用1-22.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。
A.内置函数B.重载函数C.递归函数D.函数模板1-23.一个函数功能不太复杂,但要求被频繁调用,选用( A )A.内置函数B.重载函数C.递归函数D.嵌套函数1-24.说明内置函数的关键字是( A )。
A.inline B.virtualC.define D.static1-37.对于动态分配内存空间描述正确的是( D )。
A.使用new运算符分配的内存空间的长度必须是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.用new分配的内存空间是不连续的D.delete运算符只能以释放由new分配的动态存储空间1-38.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( A )。
A. int *p=new int[30];B. int *p=new int(30);C. int *p=new [30];D. *p=new int[30];2-1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( D )。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念2-2.面向对象软件开发中使用的OOA表示( A )。
A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法2-3.面向对象软件开发中使用的OOD表示( B )。
A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法2-4.关于面向对象系统分析,下列说法中不正确的是( B )。
A. 术语“面向对象分析”可以用缩写OOA表示B. 面向对象分析阶段对问题域的描述比设计阶段更详细C. 面向对象分析包括问题域分析和应用分析两个步骤D. 面向对象分析需要识别对象的内部和外部特征2-5.下列关于成员函数特征的描述中,( A )是错误的。
A.成员函数一定是内置函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的2-6.在关键字private后面定义的成员为类的( A )成员。
A. 私有B. 公用C. 保护D. 任何2-7.在一个类的定义中,包含有( C )成员的定义。
A. 数据B. 函数C. 数据和函数D. 数据或函数2-8.在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A. 私有B. 公用C. 保护D. 任何2-9.在关键字public后面定义的成员为类的( B )成员。
A. 私有B. 公用C. 保护D. 任何2-10.类中定义的成员默认为( B )访问属性。
A. publicB. privateC. protectedD. friend2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。
A. x(a)B. x[a]C. x->aD. x.a2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( B )。
A. x.aB. x.a()C. x->aD. x->a()2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为( C )。
A. px(a)B. px[a]C. px->aD. px.a2-14.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x 对象中数据成员a的格式为( D )。
A. x.aB. x.a()C. x->GetValue()D. x.GetValue()2-14.假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( A )。
A. int AA::a()B. int AA:a()C. AA::a()D. AA::int a()2-15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( B )放在函数原型或函数头的前面。
A. inB. inlineC. inLineD. InLiner2-16.下列特性不是面向对象程序设计语言所特有的是( D )。
A.数据封装B.继承C.多态性D.模板3-1.关于构造函数,下列说法不正确的是( D )。
A.构造函数名字和类名相同B.构造函数在创建对象时自动执行C.构造函数无任何函数返回类型D.构造函数有且只有一个3-2.类的构造函数是在定义该类的一个( C )时被自动调用执行的。
A. 成员函数B. 数据成员C. 对象D. 友元函数3-3.一个类的构造函数通常被定义为该类的( A )成员。
A. 公用B. 保护C. 私有D. 友元3-4.关于构造函数特点描述中,错误的是(A)。
A.定义构造函数必须指出类型B.构造函数的名字与该类的类名相同C.一个类中可以定义0个至多个构造函数D.构造函数是一个成员函数3-5.对于一个类的构造函数,其函数名与类名( A )。
A.完全相同B.基本相同C.不相同D.无关系3-6.每个类( C )构造函数。
A.只能有一个B.可以有公用的C.可以有多个D.只可有缺省的3-7.对类对象成员的初始化是通过构造函数中给出的( B )实现的。
A.函数体B.参数初始化表C.参数表D.参数初始化表或函数体3-8.假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( B ).。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值重载函数3-9.假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( A )。
A. 带参构造函数B. 无参构造函数C. 复制构造函数D. 赋值重载函数3-10.假定CT est为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CT est objT est;”语句时将自动调用该类的( B )。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3-11.构造函数不具备的特征是( D )。