类与对象的认识练习

合集下载

习题七--类和对象

习题七--类和对象

习题七--类和对象类和对象一、选择题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章 类与对象思考与练习题答案

第7章类与对象1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。

因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。

类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。

对象是指具有某些属性和功能的单个个体。

消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。

2、结构化程序设计方法存在什么问题?答:结构化程序设计方法主要存在以下问题:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。

软件重用性是软件工程追求的目标之一。

2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。

在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。

实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。

3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

3、什么叫抽象?什么叫分类?答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。

抽象是形成概念的必须手段。

分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。

4、请简述结构体、联合体和类三种类类型的异同点。

答:三种类类型的异同点见下列表格:struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。

而联合体不具有派生性,但具有隐藏性和多态性。

5、什么叫根类?答:根类是没有从其它类派生而创建的类类型。

实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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运算符创建新的对象,并指派给前面所创建的变量。在对象名和对象成员之间用“.”相连,通过这种引用可以访问对象的成员。如果对象成员是成员变量,通过这种引用方式可以获取或修改类中成员变量的值。
相关文档
最新文档