类与对象的认识练习
习题七--类和对象
习题七--类和对象类和对象一、选择题1.下列有关类的说法不正确的是()。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似2.下列表达方式正确的是()。
A.class P{ B. class P{public: public:int x=15; int x;void show(){cout<<<="" };="">C. class P{ D. class P{int f; public:}; int a;f=25; void Seta (int x) {a=x;}}3.下列有关类的说法不正确的是()。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有数据C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据4.以下有关类与结构体的叙述不正确的是( )A. 结构体中只包含数据;类中封装了数据和操作B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏C. 用struct不能声明一个类型名;而class可以声明一个类名D. 结构体成员默认为public;类成员默认为private5.以下有关类和对象的叙述不正确的是( )A. 任何一个对象都归属于一个具体的类B. 类与对象的关系和数据类型与变量的关系相似C. 类的数据成员不允许是另一个类的对象D. 一个类可以被实例化成多个对象6.设有定义:class person{int num;char name[10];public:void init(int n, char *m);...};person std[30];则以下叙述不正确的是( )A. std是一个含有30个元素的对象数组B. std数组中的每一个元素都是person类的对象C. std数组中的每一个元素都有自己的私有变量num和nameD. std数组中的每一个元素都有各自的成员函数init7.设有以下类的定义:class Ex{int x;public:void setx(int t=0);};若在类外定义成员函数setx(),以下定义形式中正确的是( )A. void setx(int t) { ... }B. void Ex::setx(int t) { ... }C. Ex::void setx(int t) { ... }D. void Ex::setx(){ ... }8.对于类中定义的成员,其默认的访问权限为()。
习题-类和对象
一、选择题类和对象类的定义:1 定义类头时,不可能用到的关键字是( B )。
A) class B)private/protected/static C)extends/implementsD)public2.下列类定义中,不正确的是( C)。
A) class x { .... }B) class x extends y { .... }C) static class x implements y1,y2 { .... }D) public class x extends Applet { .... }3.下列类头定义中,错误的是(A)。
A)public x extends y {...} (少class)B) public class x extends y {...}C)class x extends y implements y1 {...}D)class x {...}创建声明对象:4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( D )。
A) float A a; B) public A a=A( );C) A a=new int( ); D) static A a=new A( );5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )。
A) public A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;6.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )。
A) public X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A )。
A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:__MyClass obj=new MyClass();构造方法:9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A )。
类和对象练习题
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:(a)A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?(b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b )。
《类与对象》课后习题(含答案)
问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)
类和对象练习题
、选择题1、下面对方法的作用描述不正确的是:( d d )A 、 使程序结构清晰B 、 功能复用 C 、 代码简洁 D 、 重复代码2、方法内定义的变量: ( b b ) A 、一定在方法内所有位置可见 局部位置可见 C 、 在方法外可以使用 3、方法的形参: ( a )A 、可以没有B 、至少有一个形参 D 、只能是简单变量4、方法的调用: ( c )A 、必须是一条完整的语句个表达式C 、可能是语句,也可能是表达式 实际参数5、 return 语句: ( d d )A 、不能用来返回对象C 、方法都必须含有多个 return 语句6、 void 的含义:( d d ) A 、方法体为空 C 、定义方法时必须使用7、 main ()方法的返回类型是:A 、 booleanB 、 intB 、只可以返回数值 D 、一个方法中可以有 B 、方法体没有意义 D 、方法没有返回值 c c )C 、 voidD 、 static 8、方法重载所涉及的方法: ( a )A 、有相同的名字B 、参数个数必须不同C 、参数 类型必须不同D 、返回类型必须不同9、下面关于类和对象之间关系的描述, 正确的是( c c )A 、联接关系B 、包含关系C 、具体与抽象的关系D 、类是对象的具体化10、下面关于 java 中类的说法哪个是不正确的( c )A 、 类体中只能有变量定义和成员方法的定义,不能有 其他语句。
类和对象B 、 可能在方法内的 D 、 在方法外可见C 、必须定义多个 B 、只能是一一D 、必须提供B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D 、一个 java 文件中可以有多个 11、下列哪个类声明是正确的 ( d)A 、public void H1{…}A 、 void X(int k ){ i=k; }B 、 X(int k ){ i=k; }C 、 X(int m, int n ){ i=m; j=n; }D 、 X( ){i=0;j=0; }19、有一个类 A ,以下为其构造方法的声明,其中正确的是 12 、下面的方法声明中,哪个是正确的( A 、 public class methodName(){}cB 、 c ) public void int methodName(){}C 、 public void methodName(){}D 、 public void methodName{} 13 、下述哪些说法是不正确的?( b )A 、 实例变量是类的成员变量B 、 实例变量是 用 static 关键字声明的C 、 方法变量在方法执行时创建D 、 方法变量在 C 、 public class void number{} D 、 public class Car{…} 使用之前必须初始化 14 、下面对构造方法的描述不正确是 A 、 系统提供默认的构造方法 数,所以也可以有返回值 ( b b ) 。
类和对象练习题
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:( a )A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?( b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b)。
类和对象习题
类和对象习题一、选择题1、在类中说明的成员可以使用关键字的是()A. publicB. externC. cpuD. register2、下列不能作为类的成员的是()A. 自身类对象的指针B. 自身类对象C. 自身类对象的引用D. 另一个类的对象3、关于对象概念的描述中,说法错误的是()A. 对象就是C语言中的结构变量B. 对象代表着正在创建的系统中的一个实体C. 对象是类的一个变量D. 对象之间的信息传递是通过消息进行的4、下列不是描述类的成员函数的是()A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数5、下面有关类说法不正确的是()A. 一个类可以有多个构造函数B. 一个类只有一个析构函数C. 析构函数需要指定参数D. 在一个类中可以说明具有类类型的数据成员6、在面向对象的程序设计中,首先在问题域中识别出若干个()A. 函数B. 类C. 文件D. 过程7、已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()A. f1和f2都是静态函数B. f1不是静态函数,f2是静态函数C. f1是静态函数,f2不是静态函数D. f1和f2都不是静态函数8、类的析构函数是对一个对象进行以下哪种操作时自动调用的是()A. 建立B. 撤销C. 赋值D. 引用9、在C++语言中,数据封装要解决的问题是()A. 数据的规范化B. 便于数据转换C. 避免数据丢失D. 防止不同模块之间数据的非法访问10、下面对静态数据成员的描述中,正确的是()A. 静态数据成员可以在类体内进行初始化B. 静态数据成员可以直接用类名或者对象名来调用C. 静态数据成员不能用private控制符修饰D. 静态数据成员不可以被类的对象调用二、填空题1、函数在对象被创建是自动执行,对象消失时自动执行的成员函数是。
2、在C++语言中,访问一个对象的成员所用的成员运算符是___。
3、定义___函数时,应在参数个数或参数类型上有所不同。
第7章 类与对象思考与练习题答案
第7章类与对象1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。
因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。
类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。
对象是指具有某些属性和功能的单个个体。
消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。
2、结构化程序设计方法存在什么问题?答:结构化程序设计方法主要存在以下问题:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。
软件重用性是软件工程追求的目标之一。
2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。
在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。
实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。
3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3、什么叫抽象?什么叫分类?答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。
4、请简述结构体、联合体和类三种类类型的异同点。
答:三种类类型的异同点见下列表格:struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。
而联合体不具有派生性,但具有隐藏性和多态性。
5、什么叫根类?答:根类是没有从其它类派生而创建的类类型。
实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。
类与对象练习
返回值类型 类名::函数名(参数表) { 语句; …… }
代表这个函数是属于time这个类
返回
奇妙的点
成员运算符“.”来代表“的”。 例如:t.set_time();代表调用t这个对象里面 的成员函数set_time().
返回
根据你自身的理解,修改类的相关
知识,并验证自身的想法是否可行。
利用到类求10个数中最大数的程序
类与对象
类
ss 类名; 2、类的定义 class 类名 { 数据类型 成员变量1; 数据类型 成员变量2; …… };
改错题 找出程序中的错误。请先在纸上检查,再上机验证。
公有和私有
公有(Public )和私有(Private )保证类内部的数据和 操作不被外部访问或执行 公有:就是外部可以访问的数据或执行的操作
返回
成员函数
成员函数与普通函数的不同之处,在于成员 函数是属于某一个类的,而不能被随意地调用。 所以我们就要用到::操作符来表示该函数是属 于某一个类的,称为域解析操作符。
定义一个成员函数的格式如下: 返回值类型 类名::函数名(参数表) { 语句; …… }
返回
定义一个成员函数的格式如下: 成员函数
私有:就是外部不能直接访问的数据或执行的操作
找出程序中的错误。请先在纸上检查,再上机验证。 改错题
正确的程序
类的定义
成员函数
成员操作符
类与对象的分析
解释:time是一个类。 类与int、double一样 是一种数据类型。
在类中的函数叫:成员函数
在类中的变量叫:成员变量
与int a;类似。 代表定义了一个t,它的数据类型是类。
类和对象练习题
类和对象练习题类和对象一.单项选择题1.在声明类时,关键字private、public和protected出现______。
A).至少一次B).至多一次C).public至少一次D).任意次数2.面向对象程序设计将数据和封装在一起,作为一个相互依存,不可分割的整体来处理。
A) 对数据的操作 B) 信息 C) 数组 D)数据抽象3.下列说法中错误的是_____。
A).构造函数没有类型B).创建对象时构造函数自动被调用C).在一个类中,只能定义一个构造函数D).构造函数的函数名与类同名4..以下叙述中不正确的是____。
A).类中的数据成员可以是私有或公有的,而类中的成员函数必须是公有的B).拷贝构造函数的作用是使用一个已经存在的对象去初始化一个新的同类的对象C).类中的构造函数可以重载,而析构函数不能重载D).构造函数和析构函数都应是类的公有成员函数5.下列______不是类的成员函数。
A).构造函数B).析构函数C).友元函数D).拷贝构造函数6.通常拷贝初始化构造函数的参数是__ ___。
A)某个对象名 B)某个对象的成员名C)某个对象的引用名 D)某个对象的指针名7.类Mclass的拷贝初始化构造函数是_______。
A)Mclass( )B)Mclass(Mclass)C)Mclass(Mclass *)D) Mclass(Mclass&)8.下列对析构函数的描述中,正确的是___。
A)一个类中只能定义一个析构函数B)析构函数名与类名不同;C)析构函数的定义只能在类体内D)析构函数可以有一个或多个参数9.以下对析构函数描述正确的是______。
A).析构函数返回类型应是void B).函数体内不能有循环语句C)无形参,也不能重载D).函数体内必须有delete语句10.关于成员函数,以下叙述中不正确的是_______。
A).成员函数一定是内联函数B).成员函数可以重载C).成员函数的参数可以设置默认值D).成员函数可以是另一个类的友元函数11.在面向对象的程序设计中,作用域符(::)的功能是_____。
09、类与对象
《Java程序设计基础》(类与对象)练习一、选择题1.()是拥有属性和方法的实体A.对象B.类C.方法D.类的实例2 对象的静态特征在类中表示为变量,称为类的( )A.对象B.属性C.方法D.数据类型3.有一个汽车类Car,包含的属性有颜色(color),型号(type)品牌(brand).现在要在main( )方法中创建Car类的对象,下面的代码中正确的是( )A.Car myCar = new Car;myCar color = "黑色";B.Car myCar = new Car();myCar.brand = "宝马";C.Car myCar;myCar.brand = "宝马";D.Car myCar = new Car();color = "蓝色";4.下面关于类和对象的说法中错误的是( )A.类是对象的类型,它封装了数据和操作B.类是对象的集合,对象是类的实例C.一个类的对象只有一个D.一个对象必属于某个类5.以下代码中,存在错误的代码行是( )public class Person{public String name;//名字public int age;//年龄//输出基本信息public showInfo(){ //1System.out.println("姓名:"+name+",年龄:"+age);}}public class Test{public static void main(String[] args){Person person = new Person(); //2 = "李小龙"; //3person.age = "20"; //4person.showInfo(); //5}}A.1和2B.2和3C.1和4D.4和5二、编程题1.教员要求张浩使用面向对象的思想编写一个计算器类(Calculator).可以实现两个整数的加.减.乘.除运算。
Java学习(二).习题
类和对象.习题1、基本概念题:1.什么叫类?什么叫对象?类是相似对象中共同属性和方法的集合体。
对象是类的实例。
2.对象怎样得到内存空间的?垃圾对象怎样回收的?对象的内存空间是在用户需要时,用new运算符创建的。
对象也有作用范围,我们把超出作用范围的对象(或称不再被使用的对象)称作垃圾对象。
在Java中,收集和释放内存是一个叫做自动垃圾回收线程的责任。
自动垃圾回收线程在系统空闲时自动运行,这个线程监视用户程序中所有对象的有效作用范围,当某个对象超出其作用范围时,该线程就对这样的对象做上垃圾对象标识,并在适当的时候一次性回收这些垃圾对象。
3.什么叫引用类型?对象是引用类型吗?所谓引用类型,是指该类型的标识符表示的是一片内存连续地址的首地址。
对象和数组一样,也是引用类型。
即对象定义后,系统将给对象标识符分配一个内存单元,用于存放实际对象在内存中的存放位置。
4.类的修饰符共有几种?分别是什么?类声明的<修饰符>分为访问控制符和类型说明符两部分,分别用来说明该类的访问权限以及该类是否为抽象类或最终类。
访问控制符:private、public和protected类型说明符:abstract和final5.共有几种形式的变量?这些变量各自的用途是什么?变量可分为:static:指明该成员变量是一个类成员变量final:指明该成员变量是常量transient:指明该成员变量是临时变量。
transient很少使用。
6.成员变量和成员方法的修饰符共有几种?各自的访问权限是什么?有private、public和protected三种private:修饰符表示该成员变量只能被该类本身访问,任何其他类都不能访问该成员变量。
protected:修饰符表示该成员变量除可以被该类本身和同一个包的类访问外,还可以被它的子类(包括同一个包中的子类和不同包中的子类)访问。
public:修饰符表示该成员变量可以被所有类访问。
类与对象部分习题
类与对象部分习题一.基本概念与基础知识自测题1 填空题1 引入类定义的关键字是(1)。
类的成员函数通常指定为(2),类的数据成员通常指定为(3)。
指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。
通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。
答案:(1)class(2)公有的public(3)私有的private(4)公有的public(5)数据(6)函数2 类的访问限定符包括(1)、(2)和(3)。
私有数据通常由(4)函数来访问(读和写)。
这些函数统称为(5)。
答案:(1)public(公有的)(2)private(私有的)(3)protected(保护的)(4)公有的成员函数(5)类的接口3 通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。
而在物理上通常只有(2)代码区。
只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。
答案:(1)独立的(2)共用的(3)在类说明中(4)不包括循环等复杂结构(5)inline4 C++中支持三种域:(1)、(2)、(3)。
函数域被包括在(4)中,全局域被包括在(5)中。
using指示符以关键字using开头,后面是关键字(6),最后是(7)。
这样表示以后在该名字空间中所有成员都(8)。
如不使用using指示符则在使用时要加::,称为(9)运算符。
答案:(1)局部域(local scope)(2)名字空间域(namespace scope)(3)类域(class scope)(4)局部域(5)名字空间域(6)namespace(7)名字空间名(8)可以直接被使用(9)域4.1.5 引用通常用作函数的(1)和(2)。
对数组只能引用(3)不能引用(4)。
答案:(1)参数(2)返回值(3)数组元素(4)数组名本身6 构造函数的任务是(1)。
构造函数无(2)。
类中可以有(3)个构造函数,它们由(4)区分。
如果类说明中没有给出构造函数,则C++编译器会(5)。
练习1--类和对象
一、选择题1、下列叙述不下确的是()。
A、对象之间可以相互赋值B、对象可以用作函数参数C、对象可以用作数组的元素D、C++中可以有指向对象的指针2、以下关于类与对象的叙述不正确的是()。
A、对象是类的一个实例B、一个类只能有一个实例C、类与对象的关系和数据类型与变量的关系相似D、任何一个对象都属于一个具体的类3、下列类的定义正确的是()。
A、class a { int x=0; iny y=1; }B、class b { int x=0; int y=1; };C、class c { int x; int y; }D、class d { int x; int y; };4、下列程序有错误的是()。
class Local{ int X,Y;int printY( ) { cout<<Y; }public:void init( ) { X=0;Y=1; }int printX() { cout<<X; }};int main( ){ Local a,b,c: a.init( );a.printX( ); //Aa.printY(): //Breturn 0;}A、A行有错B、B行有错C、两行都有错误D、两行都没有错误5、对于结构体中定义的成员,其隐含的访问权限为()。
A、publicB、protectedC、privateD、static6、下列叙述错误的是()。
A、对象就是C++中的结构变量B、类是具有共同行为的若干对象的统一描述体C、对象是类的实例,系统为对象分配内存空间而不为类分配内存D、对象之间的信息反馈传递是通过消息进行的7、下列关于成员函数叙述不正确的是()。
A、成员函数一定是内联函数B、成员函数可以重载C、成员函数可以设置参数的默认值D、成员函数可以是静态的8、下列叙述不正确的是()。
A、在结构体定义时,其成员可用static修饰B、在结构体定义时,其成员可用protected修饰C、在结构体定义时,可包含函数成员D、在结构体定义时,可包含函数成员,但函数不可重载9、下面有关类的叙述中,不正确的是()。
02.类和对象_练习题
高质量C++编程练习题
1
第2章 类和对象练习
类和对象练习: 第一部分 第二部分 第三部分
时间:9 学时
教学方法:学员练习
2
第2章 类和对象_练习 part1
1、【基本题】定义一个时间类,提供设定时间、显示时间和秒数 增加1的功能,其中设定时间的方法需要校验数据的正确性,并 在main函数中验证。 2、【基本题】设计一个矩形类,完成计算矩形面积和显示矩形 属性的功能。
3、【基本题】定义一个描述圆柱体的类Cylinder,定义圆柱体的 底面半径与高,计算圆柱体体积并显示圆柱体的半径、高和体 积。然后动态创建一个圆柱体对象。 4、【基本题】设计一个学生类(CStudent),它具有私有数据成员 是:学号、姓名、数学、外语和计算机课程的成绩。要求能实 现求三门课总成绩和平均成绩,并能设置和显示学生信息 (类 声明和成员函数定义分离)。
3
第2章 类和对象练习
类和对象练习: 第一部分 第二部分 第三部分
时间:9 学时
教学方法:学员练习
4
第2章 类和对象_练习part2 -1/2
5、【基本题】扩展练习4(学生类设计).设计一个友元函数,按
照成绩从高到低的顺序输出姓名、学号和成绩信息。
6、【基本题】设计一个圆类型,设计之后,输入圆半径,计算
7
第2章 类和对象_练习part3 -2/2
9、【基本题】写一个MyString类,基本构成如下,可以使用 cstring(string.h)中库函数,然后编写代码使用函数。
class MyString { public: MyString(char *pstr=""); MyString(const MyString& str); ~MyString(); public: void ShowString(); //显示字符串 void Add(const MyString& str); void Copy(const MyString& str); int GetLength(); private: char *m_buf; };
第三章习题 (类与对象)
1.在下列关键字中,用于说明类中公有成员的是__.A. publicB. privateC. protectedD. friend2.下列的各函数中, ___不是类的成员函数.A.构造函数B.析构函数C.友元函数D.复制构造函数3.___不是构造函数的特征。
A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置缺省参数D. 构造函数必须指定类型说明4.___是析构函数的特征。
A. 一个类中只能定义一个析构函数B. 析构函数在对象创建时调用C. 析构函数的定义只能在类体内D. 析构函数可以有一个或多个参数5.关于成员函数特征的下述描述中,___是错误的。
A. 成员函数一定是内联函数B. 成员函数可以重载C. 成员函数可以设置参数的缺省值D. 成员函数可以是静态的6.复制构造函数的形参是___。
A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名7.如果编程者没有显式定义构造函数(包括复制构造函数),C++编译器就___。
A. 出现编译错误B. 没有构造函数C. 必须显示定义D. 隐式定义缺省的构造函数8.静态成员函数仅能访问___。
A. 静态的数据成员B. 非静态的成员函数C. 非静态的数据成员D. 以上都不对9.静态数据成员的初始化必须在___。
A. 类内B. 类外C. 在构造函数内D. 静态成员函数内10.友元作用___。
A. 提高程序的运用效率B. 加强类的封装性C. 实现数据的隐藏性D. 增加成员函数的种类二:判断题1.使用关键字class定义的类中缺省的访问权限是私有(private)的。
2.构造函数和析构函数都不能重载。
3.说明或定义对象时,类名前不需加class关键字。
4.可以在类的构造函数中对静态数据成员进行初始化。
5.rotected和private区别在于:protected成员可以被派生类访问,而private成员则不能被派生类访问。
第12课 类和对象丨八年级信息技术(Python)精选练习
第12课类和对象(专题练习)1. Python面向对象的特征不包括()A. 封装B. 继承C. 多态D. 定义【答案】D【解析】面向对象的特征是:封装、继承和多态。
2. Python中使用下面哪个关键字来表示类()A. selfB. classC. defD. string【答案】B【解析】在Python中类的定义与函数的定义类似,在定义类时也要使用缩进的形式,以表示缩进的语句属于该类;不同的是类的定义是使用关键字"class"。
3. 下面关于类的说法,错误的是()。
A. 类就好比一个模型,可以预先定义一些统一的属性或者方法,然后通过这个模型创建出具体的对象。
B. 类是抽象的,而对象是具体的、实实在在的一个事物。
C. 拥有相同(或者类似)属性和行为的对象都可以抽像出一个类。
D. 一个类只能创建出一个对象。
【答案】D【解析】通过类可以创建无数个不同的对象。
4. 类中的所有变量称为是()A. 模板B. 对象C. 属性D. 方法【答案】C【解析】A错误类可以理解是一个模板,通过它可以创建出无数个具体实例。
B错误类并不能直接使用,通过类创建出的实例(又称对象)才能使用。
C正确类中的所有变量称为属性。
D错误类中的所有函数通常称为方法。
5. Python类中可以使用哪种方法为某个属性设置初始值()A. selfB. _constructC. __init__D. init【答案】C【解析】Python类中的每个属性都必须有初始值。
可以在__init__()方法内为某个属性设置默认初始值,此时无需包含为它提供初始值的形参。
此方法的方法名中,开头和结尾各有2个下划线,且中间不能有空格。
6. 下列可以作为Python类名的标识符的是()。
A. studentnameB. sudent_nameC. Sudent NameD. SudentName【答案】D【解析】类名只要是一个合法的标识符即可,但这仅仅满足的是Python的语法要求。
类和对象习题
类和对象习题(一)选择题1.设A为已定义的类名,下列声明A类的对象a的语句中正确的是()(A)public A a=new A( ); (B)public Aa=A( );(C)A a=new class( ); (D)a A;2.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是()(A)public X x1= new Y( ); (B)X x1= X ( );(C)X x1=new X( ); (D)int X x1;3.下列方法定义中,正确的是()A) int x( int a,b ) { return (a-b); }B) double x( int a,int b) { int w; w=a-b; }C) double x( a,b ) { return b; }D) int x( int a,int b) { return a-b; }4.下列方法定义中,正确的是()A) void x( int a,int b ); { return (a-b); }B) x( int a,int b) { return a-b; }C) double x { return b; }D) int x( int a,int b) { return a+b; }5.下列方法定义中,不正确的是()A) float x( int a,int b ) { return (a-b); }B) int x( int a,int b) { return a-b; }C) int x( int a,int b ) { return a*b; }D) int x(int a,int b) { return 1.2*(a+b); }6.下列方法定义中,正确的是()A) int x( ){ char ch='a'; return (int)ch; }B) void x( ){ ...return true; }C) int x( ){ ...return true; }D) int x( int a, b){ return a+b; }7.下列方法定义中,方法头不正确的是()A)public int x( ){ ... }B)public static int x( double y ){ ... }C)void x( double d ) { ... }D)public static x( double a ){ ... }8.定义类头时,不可能用到的关键字是()A) class B)private C)extends D)public9.设A为已定义的类名,下列声明A类的对象a的语句中正确的是()A) A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;10.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是()A) X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;11.设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是()A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );12.设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是()A) void X(int k ){ i=k; } B) X(int k ){ i=k; }C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; }13.有一个类A,以下为其构造方法的声明,其中正确的是()A)public A(int x){...} ‘B)static A(int x){...}C)public a(int x){...}D)void A(int x){...}14.有一个类A,以下为其构造方法的声明,其中正确的是()A)void A(int x){...} B)A(int x){...}C)a(int x){...} D)void a(int x){...}15.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是()A) X( int m){ ... } B) void X( int m){ ... }C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }16.设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是()A) double X(double k ){ i=k; return i; }C) X( ){i=6;j=8; }B) X(double m, double n ){ i=m; j=n; }D) X(double k ){ i=k; }17.设A为已定义的类名,下列创建A类的对象a的语句中正确的是()A)float A a; B public A a=A( );A a=new int( ); D A a=new A( );18.有一个类A,以下为其构造方法的声明,其中正确的是:()A)public A(int x){...}B)static A(int x){...}C)public a(int x){...}D)void A(int x){...}(二)简答题1.构造方法和一般的方法有何区别?2.面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?3.在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为?4.什么方法是一个特殊的方法,用于对对象进行初始化?5.一个源程序文件中,能有多于一个的public 类吗?6.构造方法的方法名可由编程人员任意命名吗?7.类的构造方法名必须和类名相同吗?8.类的访问控制修饰符有哪些,访问权限各是什么?9.类的成员的访问控制修饰符有哪些,访问权限各是什么?10.包的作用是什么?如何声明一个包?11.如何导入一个包?12.定义类的访问器和设置器的形式是什么?(三)程序阅读和程序填空1.下面是一个类的定义,根据题目要求回答以下问题class B{ int x;char y;public B(int i,char j){ x=i; y=j; }public void show(){ S ystem.out.println("x="+x+"; y="+y); }public void methodC(int x1){ x=x+x1; y++; show();}}1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//Student.java
class Student
{
String name;//定义一个字符串属性name(姓名)
int age;//定义一个整型属性age(年龄)
【代码1】//定义一个整型属性chinese(语文成绩)
【代码2】//定义一个整型属性math(数学成绩)
【代码3】//定义一个整型属性english(英语成绩)
System.out.println("我的总分是"+s1.total());
System.out.println("我的平均分是"+s1.average());
【代码1】//创建Student类的一个实例s2
【代码2】//s2的name属性值为“李四”
【代码3】//s2的age属性值为12
【代码4】//s2的chinese属性值为90
int total() //定义方法,求三门课程的总和
{
【代码4】//返回chinese、math、english三个整型属性的总和
}
int average() //定义方法,求三门课程的平均分
{
【代码5】//返回chinese、math、english三个整型属性的平均值
}
}
class Mystudent
else
if (【代码11】)//如果s1的总分比s2的总分低
System.out.println(+"的成绩好");
else
【代码12】//显示s1和s2的成绩一样
}
}
【代码5】//s2的math属性值为80
【代码6】//s2的english属性值为90
【代码7】//显示s2的名字以及年龄
【代码8】//显示s2的总分
【代码9】//显示s2的平均分
if (【代码10】)//如果s1的总分比s2的总分高
System.out.println(+"的成绩好");
{
public static void main(String[] args)
{
Student s1=new Student();
="张三";
s1.age=13;
s1.chinese=80;
s1.math=90;
s1.english=85;
System.out.println("你好,我叫"++","+"我今年"+s1.age+"岁");
练习:类与ห้องสมุดไป่ตู้象
一、要求
1、类的定义
编写一个Java程序,在程序中定义一个Student类。
2、对象的创建与使用
创建Student类的两个实例,并访问它们的属性和方法。按模板要求填入Java程序代码,使之能输出如图所示的结果。
二、程序指导
要创建属于某类的对象,首先声明指向“由类所创建的对象”的变量,然后利用new运算符创建新的对象,并指派给前面所创建的变量。在对象名和对象成员之间用“.”相连,通过这种引用可以访问对象的成员。如果对象成员是成员变量,通过这种引用方式可以获取或修改类中成员变量的值。