当前位置:文档之家› Part2_Chap06 定义对象间的关系2014-03-14

Part2_Chap06 定义对象间的关系2014-03-14

C语言的类和对象

C语言的类和对象 【类实现了C++面向对象程序设计的基础,我们使用类来定义对象的属性,类是 C++封装的基本单元。】 一、----- 类 使用关键字class创建类,一个类声明定义了一个连接代码和一个数据的新类型,这个新的类型又可以用来声明该类的对象。因此,类又是逻辑逻辑抽象概念,儿对象是物理存在的,也就是说对象是类的实例。 类的声明语法上和结构相似。 [一下是完整的类的形式] class class_name { private data and functions access_specifier: data and functions access_specifiter: data and functions //…….. access_specifier:是 data and functions }object_list; 其中,object_list是任选项,如过存在,他声明类的对象。access_specifier为下面的三个关键字之一: Public private protected 默认时,在类声明的函数和数据属于该类私有,只能被该类的成员访问。如果使用,pubilc访问限定符号,函数和程序就可以被其他部分访问。Protected访问限定符,仅在涉及继承的时候才需要(十五章了解)。访问限定符已经使用,其作用就保持到遇到别的访问限定符或者达到类声明的结束处。 在类声明内可以任意改变访问说明符号,对于某些声明,可以转换位public,然后再转换成private。 [如下所述] /******************************* ··构造函数和析构函数学习··· *******************************/ //Using a constructor and destructor. /******************************* 声明C++ 程序头文件 *******************************/ #include #include #include #include /******************************* ·名字空间:组织大型的程序结构·

JAVA类和对象的关系

1、JAVA中的参数传递问题(理解内存图) 基本类型:形式参数的改变对实际参数没有影响 引用类型:形式参数的改变直接影响实际参数 2、面向对象(理解,升就业班问说说什么是面向对象和思想特点) 1、面向对象(从三点回答) A面向过程是以函数为基础,完成各种操作,强调的是过程 B面向对象以对象为基础,完成各种操作,强调的是对象,结果 C面向对象是基于面向过程的 2、面向对象的思想特点: a)是一种更符合人们思考习惯的思想 b)把复杂的事情简单化 c)把我们从执行者变成了指挥者 3、举例: a)买电脑 b)洗衣做饭 c)旅游 d)把大象装进冰箱(伪代码体现) 4、事物是如何体现的 a)属性有哪些特征名词提取法 b)行为有哪些功能 5、类与对象的关系(掌握) 把事物转换成类 A:成员变量 定义在类中,方法外 B:成员方法 和以前的区别是去掉static 把这个说完还没有说道类与对象的概念,对不对 类:是相关的属性和行为的集合,集合就是一堆东西,是一个抽象的概念 对象:是某种事物的具体的存在,具体的表现形式 举例: 学生:类 对象:小明 6、案例 A学生类 B手机类 C汽车类(在这里画了内存图,有空看一下) 7、如何使用呢 a)创建对象 i.格式 a)类名变量= new 类名() b)使用成员变量和成员方法

i.对象名.成员变量 ii.对象名.成员方法 8、成员变量和局部变量的区别(理解) A 定义位置 成员变量:在类中方法外 局部变量,在类中方法中,或者方法上的形式参数 B 初始化的区别 成员变量:有默认的初始化值 局部变量:无 C 存储位置 成员变量:堆随着对象的存在而存在 局部变量:栈随着方法的存在而存在 9、匿名对象 a)概念:没有名字的对象 b)使用场景 i.当对象中的方法只掉用一次的情况下使用(一般不用,测试时使用)new Student().sayHello(); ii.匿名对象作为实际参数传递

第二章 第三节概念间的关系

第二章 概 念 第三节 概念间的关系 逻辑学从外延方面来研究概念之间的关系。概念的外延之间的关系主要有下列五种: 一、全同关系 a 、 b 两个概念,如果它们的外延全部重合,即所有的a 都是b ,同时,所有的b 都是a ,那么,a 与b 之间的关系就是同一关系。全关系又叫同一关系。 (全同关系是指两个概念的外延完全重合的关系。即如果a 、b 两个概念,a 概念的全部外延都是b 概念的外延,b 概念的全部外延也都是a 概念的外延,则a 、b 两个概念之间的关系就是全同关系。)例如: 等边三角形(a )与等角三角形(b ) 《四世同堂》的作者(a )与老舍(b ) 北京(a )与中华人民共和国的首都(b ) 上述例子中,a 与b 的外延是完全重合的。拿“等边三角形”与“等角三角形”这两个概念来说,所有的“等边三角形”都是“等角三角形”,所有的“等角三角形”都是“等边三角形”。它们从不同的方面反映了同一对象,外延是完全重合的。 全同关系可用图形表示: 二、真包含关系 a 、 b 两个概念,如果所有的b 都是a ,但有的a 都不是b ,那么,a 与b 之

间的关系就是真包含关系。 (真包含关系是指一个概念的部分外延与另一个概念的全部外延重合的关系。)例如: 大城市(a)与上海(b)\动物(a)与脊椎动物(b) 规律(a)与经济规律(b)\工人(a)与纺织工人(b) 以上例子中,a与b之间的关系就是真包含关系。拿“工人”和“纺织工人”这两个概念来说,所有的纺织工人都是工人,但有的工人(如钢铁工人)不是纺织工人,这样,“工人”对于“纺织工人”的关系,就是真包含关系。 真包含关系可用图形表示: a、b两个概念,如果所有的a都是b,但有的b都不是a,那么,a与b之间的关系就是真包含于关系。 (真包含于关系是指一个概念的全部外延与另一个概念的部分外延重合的关系。)例如: 大学生(a)与学生(b)\长篇小说(a)与小说(b) 工业产品(a)与劳动产品(b)\老人(a)与人(b) 以上例子中,a与b之间的关系就是真包含于关系。拿“大学生”和“学生”这两个概念来说,所有的大学生都是学生,但有的学生(如中学生、小学生、中专生)不是大学生,这样,“大学生”对于“学生”的关系,就是真包含于关系。

类的定义和对象的创建

实验二类的定义和对象的创建 实验目的 1、学习定义类和使用类 2、学习创建的对象和使用对象 实验内容 1、定义一个Student类。其中定义有“学号”“姓名”“班级”“性别”“年龄”等属性,定 义一个无参数的构造器和至少一个有参数的构造器,定义“获得学号”“获得姓名”“获得班级”“获得性别”“获得年龄”“修改年龄”等方法。另外定义一个方法: public String toString( ) 把Student类的对象的所有属性信息组合成一个字符串,并检验这个功能的程序体现。 public class Student { private int 学号; private String 姓名; private String 班级; private char 性别; private int 年龄; public Student(int a, String b, String c, char d, int e) { 学号= a; 姓名= b; 班级= c; 性别= d; 年龄= e; } public Strudent() { this(0, "张三" ,"软件0901" ,'男', 19); } public int get学号() { return 学号; } public String get姓名() { return 姓名; } public String get班级() { return 班级; } public char get性别() { return 性别; } public int get年龄()

{ return 年龄; } public void set学号(int a) { 学号=a; } public void set姓名(String a ) { 姓名=a; } public void set班级(String a) { 班级= a; } public void set性别( char a) { 性别= a ; } public void set年龄(int a) { 年龄= a; } public String toString() { return "该学生的学号为"+ 学号+ " 姓名为"+姓名+" 班级为"+班级+ " 性别为" +性别+ " 年龄为" +年龄"; } } 2、编程实现圆类,其中包括计算圆周长和面积的方法,并测试方法的正确性。 public class Yuan { private double X, Y, R; public Yuan(double a, double b, double c) { X=a; Y=b; R=c; } public double MianJi() { return 3.1416*R*R; } public double ZhouChang() { return 2*3.1416*R; } public static void main(String[] args) { Yuan s=new Yuan(2,3,4); System.out.println("该圆的面积是"+ s.MianJi()); System.out.println("该圆的周长是"+ s.ZhouChang()); } }

类与对象

类与对象1:Point类1 Description 定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化),成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。 main函数如下(不得修改main函数): int main() { double x,y; cin>>x>>y; Point p1(x,y); p1.Display(); return 0; } Input Output Sample Input 12.5 22.7 Sample Output (12.5,22.7) ************************************************** #include using namespace std; class Point { public: Point(double xx,double yy) { x=xx;y=yy; } void Display() { cout<<"("<>x>>y; Point p1(x,y); p1.Display(); return 0; } 类与对象2:Point类2 Description

定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。 main函数如下(不得修改main函数): int main() { double x1,y1,x2,y2; cin>>x1>>y1; cin>>x2>>y2; Point p1(x1,y1); p1.Display(); p1.Set(x2,y2); p1.Display(); return 0; } Input Output Sample Input 10 25.5 5.5 20 Sample Output (10,25.5) (5.5,20) ************************************************** #include using namespace std; class Point { public: Point(double xx,double yy) { x=xx;y=yy; } void Display() { cout<<"("<>x1>>y1; cin>>x2>>y2;

第二节 概念的种类和概念间的关系

第二节概念的种类和概念间的关系 有这么一个诡辩:“鲁迅的小说不是一天能读完的,《孔乙已》是鲁迅的小说,所以《孔乙已》不是一天能读完的。”结论显然是荒谬的,但是推理似乎又无懈可击,毛病到底出在哪里呢?这就涉及到概念的种类问题。 概念是反映事物本质属性的思维形式。什么是事物的本质属性?就是该事物不同于其他事物的属性。举个例子说,“人”这种事物具有多种属性:有五官四肢,会行走,会说话,会思维……其中,“人”区别于其他动物的属性,就是人会说话、能思维。 概念有两个重要的逻辑特征:概念的内涵和外延。前者指的是事物的本质属性在概念中的反映,后者指的是具有概念所反映的特有属性的事物在概念中的反映。比如:“三角形”这个概念的内涵就是“有三条边、三个角,内角和是180度的多边形”,它的外延包括“各种规则的和不规则的三角形”,即所有的三角形。 根据不同的标准可以把概念分为不同的种类。概念一般有以下三类: 1、单独概念和普遍概念(根据概念外延的数量) 单独概念:是反映某一个别事物的概念。它的外延外延只有一个,是独一无二的。一般以专有名词或摹状词表达。 如长江、地球、雷锋、孔乙已 普遍概念:是反映由两个或两个以上的个别事物组成的一类事物的概念。普遍概念是指外延包含两个或两个以上的事物的概念。如树木、学校、作品 2、集合概念和非集合概念(群体,非群体) 根据概念外延的性质(群体,非群体),所指称的对象是集合体,还是非集合体而作出的分类,可以分为集合概念和非集合概念。 集合概念是反映集合体的概念(以事物的群体为反映对象)。 集合体:指由若干个体组成的统一整体,不一定能反映其中的个体 如:森林、书籍、群岛、车队、中国女子排球队、党、词汇、阶级 非集合概念是反映非集合体的概念(不以事物的群体为反映对象)。与集合体不同,非集合体所具有的属性,组成它的个体一定具有。 树、书、岛、汽车、党员、词、工人 例如:森林是有广泛用途的。树是植物 怎样区别集合概念与非集合概念? 1、集合概念所反映对象的属性只是集合体具有,其中的个体不具有。 集合词项的特征:构成整体的分子不具有整体的属性。车队由车构成,但车不具有车队的属性,我们看见停车场里有停有许多的车,我们并不就认为停车场里有一支车队。 2、非集合概念所反映的对象的属性不仅这类事物具有,其中的个体也具有。 例如(1)中国人是黄种人中国人是亚洲人 (2)中国人是有骨气的(集合概念) (1)非集合概念--鲁迅是中国人的一个个体,鲁迅是黄种人。 (2)集合概念--并非每一个中国人张三、李四都是有骨气的。 判断方法:加上全称量词是否改变原来判断的含义。 所有中国人都是有骨气的。所有中国人都是亚洲人。 3、同一个语词既可以表达集合概念也可以表达非集合概念 例1、人是由猿进化而来的。集合概念例2、人是有理性的。非集合概念 “鲁迅的著作不是一天能读完的”(集合概念) “《祝福》是鲁迅的著作”非集合概念

第二章 概念部分练习题

第二章概念 内容提要 一、概念的内涵和外延 概念的内涵和外延是概念的两个基本逻辑特征。 概念的内涵是概念对对象本质属性的反映;概念的外延是概念对对象本身的反映。内涵是概念的质的方面,它涉及概念反映的对象“是什么”;外延是概念的量的方面,它涉及的是概念反映的对象“有哪些”。概念内涵和外延与客观对象的本质属性和对象本身并不等同,二者是反映与被反映的关系。概念内涵和外延是人脑对对象本质“属性及对象本身认识的结果,属于主观的东西,而对象的本质属性和对象本身则是客观存在的;只有当它们被反映到人的思维中来,才会成为概念的内涵和外延。 对于某一具体概念的理解就是对于概念内涵和外延的理解。逻辑学要求我们掌握概念的外延关系,因此对概念外延的理解是非常重要的。例如:“国家”的外延应该是指古今中外一切具有“国家性质”这样的实体性的对象,从时间上看指国家产生以来直至现在;从空间上讲指“整个世界”,我们在理解“国家”外延时常犯的错误是把它的外延缩小,理解为“现代国家”。再如:“犯罪行为”这一概念的外延是触犯刑律应受刑法处罚的行为,而非指一般的违法行为,如果我们把一般的赌博行为也理解为“犯罪行为”,就是把这一概念的外延扩大了。 二、概念的种类 (一)依据不同的标准,可以将概念分成不同的种类。根据概念外延所反映的对象的数量,可把概念分为单独概念和普遍概念;根据概念反映的对象是否为集合体,可把概念分为集合概念和非集合概念;根据概念反映的对象是否具有某种属性,可把概念分为肯定概念和否定概念;根据概念反映的对象是否为独立存在的实体,可把概念分为实体概念和属性概念。 在理解概念种类的划分时,难点在集合概念和非集合概念划分标准的掌握。 (二)区别集合概念与非集合概念应注意的问题。 1.集合体和个体的关系,与类和分子间的关系是不同的。 所谓“集合体”是指概念所反映的对象是作为一个整体来认识和使用的,集合体由许多个体有机构成的,但是,集合体所具有的属性,构成该集合体的任一个体并不具有。集合概念的外延不包括构成集合体的个体。 所谓“类”是指概念所反映的对象是由具有相同属性的分子所构成的,其特点是:“类”是对于分子属性的概括和反映,因此,“类”所具有的属性,其分子必然具有。“类”的外延必然包括分子的外延。 例如:“法律词汇”是个集合概念,因为“法律词汇”是由许多法律语词构成的一个集合体,构成“法律词汇”的用语是它的个体;“法律词汇”中的任一个法律用语都不具有“法律词汇”的特点,如我们不能说“诉讼”、“法庭调查”、“法律咨询……是法律词汇,而只能说它们是法律用语。 再如:“警察”是个非集合概念,这一概念是对从事“维护社会治安”这类人员的一种概括,凡从事这种工作的人都称之为“警察”,都具有警察的性质。因此,“警察”是一个类概念,构成这个类的分子就是“警察”中的具体对象,如警察这个类中的张××、王××等。 2.注意在不同的语言环境里,同一语词既可表达集合概念,也可表达非集合概念如: ①警察是维护社会治安的; ②警察是能吃若耐劳的。

JAVA类与对象的创建

试验四 类和对象的创建 一.类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class类名[extends父类名]{ /*类体的内容*/ } 1.类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1)如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2.类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二.对象 1.对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2)为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1: 「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。 2.对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 例2:

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d d) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法内定义的变量:( b b ) A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:( d d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c 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 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 b )。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( bb b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( a )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( d ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 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,以下为其构造方法的声明,其中正确的是

类与对象的复习与练习

一选择题 1.下面方法定义中,正确的是: 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;} 2.下面方法定义中,不正确的是: 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);} 3下面方法定义中,正确的是: 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;} 4设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是? X x1=new X(); B)X x1= X ( ); C)X x1=new Y( ); D)int X x1; 5设A为已定义的类名,下列声明并创建A 类的对象a的语句中正确的是?

A)A a=new A( ); B)public A a=A( ); B)C)A a=new class( ); D)a A; 6下面类的定义中结构正确的是? A)class A B)class 2A C)int class A D)public class A () 7下面关于类的结构的说法正确的是? A)类只能包含一个构造方法 B)类可以没有属性 C)类只能包含方法 D)类只能包含属性 8下面哪个关键字在定义类头时用不到? A)class B)public C)extends D)int33 9 this在程序中代表的是? A)类的对象 B)属性 C)方法 D)父类 10下列对构造方法的调用方式的描述中正确的是? A)使用new调用 B)使用类名调用 C)使用对象名调用

概念间的关系

概念间的关系 概念间存在着各种各样的关系,普通逻辑只从外延方面来研究概念间的关系,即概念外延有无重合的关系。了解和掌握概念外延间的关系,有助于明确概念和准确地使用概念。 根据两个概念外延间有无重合部分,把两个概念间的关系分为相容关系和不相容关系两大类。 一、相容关系 相容关系是指两个概念的外延至少有部分重合的关系。在相容关系中,又根据两个概念的外延重合部分大小的不同,把相容关系又分为全同关系、真包含关系、真包含于关系、交叉关系四种。 (一)全同关系 全同关系是指两个概念的外延全部重合的关系,又叫做同一关系。例如,“等边三角形”与“等角三角形”、“北京”与“中华人民共和国的首都”这两组概念分别为全同关系。

具有全同关系的概念反映的事物对象是完全相同的,即它们的外延是完全重合的,但它们的内涵却不尽相同,因为它们是从不同的角度和不同的方面反映相同的对象的。例如,“等边三角形”与“等角三角形”这两个概念具有全同关系,它们的外延完全重合,但它们的内涵却不同。前者是从三条边相等来反映正三角形的,后者是从三内角相等来反映正三角形的。我们正是利用这一逻辑特性,从不同方面来加深对相同对象的认识的。应该指出,具有全同关系的两个概念与表达同一概念的两个语词是完全不同的。表达同一概念的两个语词不仅外延完全相同,而且内涵也完全相同,例如,“世界观”与“宇宙观”,它们只不过是同一概念的两种不同的文字表达而已。具有全同关系的概念在思维中是可以代替使用的,而并不违反逻辑。 普通逻辑通常采用欧拉图直观地表示概念间的关系。欧拉图是18世纪的瑞士逻辑学家欧拉(Leonhard Euler,1707—1783年)用圆圈来表示概念间外延关系的一种图解,又称为圆圈图。具有全同关系的两个概念a与b可直观地用欧拉图表示为: 这个欧拉图表明:所有的a都是b,并且所有的b都是a。 (二)真包含关系 真包含关系是指一个概念的部分外延与另一概念的全部外延相重合的关系,又叫做属种关系。例如,“人”与“中国人”、“学生”与“大学生”这两组概念分别为真包含关系。具有真包含关系的两个概念a与b,可用欧拉图表示为:

实验二 类与对象

实验二类与对象 一、实验目的 1、学习类与对象的定义,掌握类与对象的使用方法。 2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。 3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。 4、掌握用指针和引用向函数传递参数。 5、掌握静态数据成员和静态成员函数的使用。 6、理解友元与友元函数的作用与使用方法。 二、实验内容 1、下面是一个计算器类的定义,请完成该类成员函数的实现。 class Counter { public: Counter(int number); void increment(); //给原值加1 void decrement(); //给原值减1 int getValue(); //取得计数器值 int print(); //显示计数 private: int value; }; #include class count { public: counter(int number); void increment(); void decrement(); int getvalue(int); int print();

private: int value; }; void count::increment() { int a=value+1; } void count::decrement() { int b=value-1; } int count::getvalue(int s) { value=s; return 0; } int count::print() { cout<

由于形象是普遍的特殊显现,在其内涵以及各个要素之间的相互联系上给读者的想象留下了广阔的空间,也就是说它是要求这个“特殊”的积极参与的构成过程,因而其外延就无法用概念确切的概括出来。 越特殊的形象其外延越难以穷尽,其原因就在于它越能容纳诸多的读者的构成,唯其如此,越是独特的就越是普遍的,即内涵越大其外延就越大。 之所以每个读者都能在典型形象上看到自己的影子,内涵的众多组成部分,即特殊是其根本的保证,否则普遍的抽象就与特殊的读者无关,没有特殊的,即读者的积极参与,概念也就是确定的,其意义也就因而是可以穷尽的 了。 任何一个概念都有内涵和外延,这是概念的基本特征.外延指所反应对象的具体范围,内涵指概念所反应的特征和本质属性.如果对话语概念的内涵和外延理解错误就会发生笑话: 一天法国作家雨果出国旅行,走到了边境,宪兵问他: "姓名?""雨果.""干什么的?""写东西的.""以什么谋生?""笔杆子."于是宪兵在登记本上写道: "姓名: 雨果.职业: 笔杆贩子."雨果和宪兵对"以笔杆子谋生"这个概念的内涵和外延理解不同: 雨果理解的内涵是"以写作获得稿费维持生计"外延所指作家,宪兵对其内涵的理解是"以贩卖笔杆子谋生"外延所指"笔杆贩子".概念从外延上可分为相容关系和不相容关系;在相容关系中,又可分为同一关系、属种关系、交叉关系;在不相容关系中,又可分为矛盾关系和反对关系,所谓同一关系就是外延完全重合的两个概念之间的关系。 在鲁迅先生的《孔乙己》中老书生孔乙己,偷了别人的书不承认,只说自己是窃书,不算偷。 他的回答使众人哄堂大笑。

实体、对象与类的概念

1、实体、对象与类的概念 2、类的定义 3、对象声明与引用 4、私有、公有与保护 5、日期类的设计 6、两种程序设计思想 7、汽车类的设计 8、几何图形圆类的设计 9、构造函数的定义10、重载构造函数11、析构函数的定义12、整数翻译函数13、实际意义的析构函数14、Person类的设计15、对象与指针16、this指针

?实体:指客观世界存在的某个事物?一所大学,例如:西安交通大学 ?某动物,例如:一只羊 ?一本图书,例如:《C++程序设计教程》?一篇文章,例如:“羊年趣赏羊联” ?一个专业班级,例如:材料21班 ?一名学生,例如:材料21班的蒋贵川?……

?可以拍摄视频描述实体 ?也可以写一篇文章描述实体 ?我们设计的程序都是为了求解某个(些)问题 ?如果求解的问题中涉及到某个实体,那么在程序中如何描述实体呢? ?通过对实体进行抽象,来描述实体

?每个实体都有其特征和功能,特征和功能通称为属性?实体与实体的不同在于属性的不同 ?所谓抽象描述实体是指: ?从实体中抽取出若干特征和功能,来表示实体 ?特征指实体的静态属性,功能指实体的动态属性 ?对实体加以抽象要注意下面两点: ?移出细节看主干 ?不是借助具体形象反映现实,而是以抽象表达科学的真实

毕加索画《牛》 1945年12月5日 1946年1月17日 ?形体逐渐概括 ?线条逐步简练 ?别人认为的终点,他 作为起点 ?每幅画不重复 ?精炼地表现了公牛的

?电视机的特征:?型号?尺寸?液晶?价格? ……?电视机的功能: ?播放影视?选频道?调颜色?调音量?……

浅显易懂的逻辑学概念间的关系4

概念间的关系 有一次,数学老师在讲概率论时举例说:在人口统计中,不论是哪一个国家,不论是哪一个民族,也不论是哪一个时期的统计资料,都发现一个同样的规律:在新生婴儿中,男婴的出生率总是摆动于22/43这个数值左右,而不是1/2。有个学生提出了疑问。他说:“按照男婴出生率是22/43的资料,男婴出生率要比女婴出生率高。可是,我看到的材料说明,许多国家和地区,例如苏联、日本、美国、西德等国家都是女人比男人多。可见,认为男婴出生率总是在22/43左右摆动,是不能成立的。” 请大家想一想:这个学生的说法有什么逻辑错误? 老师只是根据婴儿出生率的材料说明:男婴比女婴稍多,并没有从社会的人口构成来说男人比女人多。也就是说,“男婴”同“男人”,“女婴”同“女人”分别是两个不同的概念,它们都不具有同一关系。但这个学生却把二者等同起来,以某些国家和地区女人比男人多的材料来反驳老师提出的男婴比女婴多的论断。这实际上就是把不具有同一关系的概念当作具有同一关系的概念来理解和使用。这在逻辑上是犯了混淆概念间关系的逻辑错误。 一、概念间的关系有哪几种? 从概念的外延来看,概念间关系首先可分为相容关系和不相容关系两类。 1.相容关系 两个概念的外延至少有一部分重合的关系称为相容关系。在相容关系中又分为同一关系、交叉关系、从属关系三种。 ①同一关系 两个或两个以上的概念内涵不尽相同,但是外延完全相同,它们之间的关系就是同一关系。 例如:A.“《阿Q正传》的作者”和“鲁迅”b“长江”和“中国最长的河流” 以a为例来说,可用图(1)表示。 圆周表示概念的外延,A 代表“《阿Q正传》的作者”,B代表“鲁迅”,A、B两个概念的外延完全重合。 两个同一关系的概念和词汇中的等义词是不同的。同一关系的两个概念外延相同而内涵有所不同,在上下文中可交替使用,也可几个概念连用,如“秦孝公……有席卷天下、包举宇内、囊括四海之意,并吞八荒之心。”(贾谊《过秦论》)“席卷”、“包举”、“囊括”、“并吞”是同一关系的概念,这里交替使用,避免了重复,增强了语言的表达效果;而等义词如“头”和

实验四 类和对象定义

实验四类和对象定义 一、实验类型 设计型 二、实验目的 1、实验目的 (1) 掌握类的声明、定义和使用方法。 (2) 掌握对象的定义和使用方法。 (3) 掌握具有不同访问属性的类中成员的使用方法。 三、上机准备 1、实验室安装VC++6.0软件。 2、类的基本概念、对象的基本概念。 四、实验内容与步骤 1、在Rect.cpp中,定义一个矩形(Rect)类,包括矩形的左上角坐标(X1,Y1),矩形右下角坐标(X2,Y2)四个数据成员;包括计算矩形面积(getArea),计算矩形周长(getPerimeter),设置矩形数据成员(setRect)和输出矩形数据成员(print)四个成员函数。数据成员为私有成员,成员函数为公有成员且在类说明内定义实现。在main()函数中建立Rect类对象并进行测试。 提示与分析: (1) 分析类中数据成员的类型并定义对应的变量,如double X1,X2,Y1,Y2; (2) 分析成员函数的函数原型,即返回值及其类型以及相关参数,如: double getArea(); double getPerimeter(); void setRect(double,double ,double,double); void print(); (3) 思考成员函数的函数体实现代码。 计算矩形面积和周长的方法: Area=fabs(X2-X1)*fabs(Y2-Y1); Perimeter=(fabs(X2-X1)+fabs(Y2-Y1))*2; (4) 根据要求设定类成员的访问权限,如成员函数为公有成员(public),数据成员为私有成员(private)。 (5) 将成员函数的函数体代码放到类说明中。 (6) 在main()函数中建立Rect类的实例并调用对象的方法进行测试,如

类和对象

6.1实验目的和要求 1.熟悉面向对象的基本概念。 2.进一步掌握类的各种成员的使用方法。 3.掌握对象之间通信的基本方法。 6.2实验内容与步骤 题目1 点和直线类 (1)创建C#控制台应用程序L6_1。 (2)在程序中新建一个点类CzPoint,为其定义两个double类型的私有字段成员x和y,分别表示点的横坐标和纵坐标。 (3)为CzPoint定义两个公有属性X、Y,分别用于封装对字段x 和y的读写访问。 (4)定义CzPoint的带参构造函数,在其中对字段x和y进行初始化。参考源代码如下: public CzPoint(double x, double y) { this.x = x; this.y = y;

} (5)为CzPoint定义公有方法Move,用于按指定的水平距离和垂直距离移动坐标点。参考源代码如下: public void Move(double dx, double dy) { x += dx; y += dy; } (6)对CzPoint类进行相等和不相等操作符重载。两个坐标点相等,是指它们的横坐标和纵坐标都相等。 (7)在程序主方法中创建坐标为(1,2)和(3,3)的两个坐标点对象,判断它们是否相等;而后将第一个坐标点移动到第二个坐标点上,再判断它们是否相等。 (8)在程序中再新建一个直线类CzLine,为其定义两个double类型的字段成员a和b,分别表示直线的斜率和截距;再定义字段的封装属性A和B,但它们都是只读的。

(9)为CzLine定义两个构造函数,一个根据斜率和截距来创建直线对象,另一个则根据两个CzPoint对象来构造直线对象(直线穿过这两个点)。后一个的参考源代码如下: public CzLine(CzPoint p1, CzPoint p2) { if (p1 == p2) throw new ArgumentException("两点不能相同"); this.a = (p2.Y - p1.Y) / (p2.X - p1.X); this.b = p1.Y - this.a * p1.X; } (10)为CzLine定义公有方法Move,但它只用于平移直线,而不改变直线的斜率。再为其定义公有方法Contains,用于判断某点是否在该直线上。 (11)类似的,为CzLine重载相等和不等操作符。 (12)最后在程序主方法中采用不同的方式创建直线对象,并编译运行程序,测试它们的使用效果。 程序的整体结构如下:

C++类和对象的定义

类和对象 类的定义 1 类的定义可以分为两部分:说明部分和实现部分。说明部分说明类中包含的数据成员和成员函数,实现部分是对成员函数的定义。类定义的一般格式如下: //类的说明部分 class<类名> { public: <成员函数或数据成员的说明> //公有成员,外部接口 protected: <数据成员或成员函数的说明> //保护成员 private: <数据成员或成员函数的说明> //私有成员 }; //类的实现部分 <各个成员函数的实现> 其中,class是声明类的关键字;<类名>是要声明的类的名字,必须符合标识符定义规则;花括号表示类的声明范围,说明该类的成员,其后的分号表示类声明结束。类的成员包括数据成员和成员函数,分别描述类所表达的问题的属性和行为。关键字public、private 和protected称为访问权限修饰符,它们限制了类成员的访问控制范围。 各个成员函数的实现即可以在类体内定义,也可以在类体外定义。如果一个成员函数在类体内进行了定义,它将不出现在类的实现部分;如果所有的成员函数都在类体内进行了定义,则可以省略类的实现部分。在类体内定义的成员函数都是内联函数。 2

类中提供了3种访问控制权限:公有(public)、私有(private)和保护(protected)。其中,公有类型定义了类的外部接口,任何一个外部的访问都必须通过外部接口进行;私有类型的成员只允许本类的成员函数访问,来自类外部的任何访问都是非法的;保护类型介于公有类型和私有类型之间,在继承和派生时可以体现出其特点。 3 类中的数据成员描述类所表达的问题的属性。数据成员在类体中进行定义,其定义方式与一般变量相同,但对数据成员的访问要受到访问权限修饰符的控制。 在定义类的数据成员时,要注意以下几个问题。 (1)类中的数据成员可以是任意类型,包括整型、浮点型、字符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以作为该类的成员,即作为该类的成员对象而存在。自身类的对象是不可以作为自身类的成员存在的,但自身类的指针可以。 (2)在类体中不允许对所定义的数据成员进行初始化。 4 类的成员函数描述类所表达的问题的行为。类中所有的成员函数都必须在类体内进行说明。但成员函数的定义既可以在类体内给出,也可以在类体外给出。 第一种方式是将成员函数直接定义在类的内部。 第二种方式是在类声明中给出对成员函数的说明,而在类外部对成员函数进行定义(但成员函数仍然在类范围内)。这种在类外部定义的成员函数的一般格式是: <返回类型><类名>::<成员函数名>(<参数表>) { <函数体> } 在类体外定义成员函数时,要注意必须在成员函数名前加上类名和作用域运算符(::)。作用域运算符用来标识某个成员属于某个类。作用域运算符的使用格式如下: <类名>::<成员函数名>(<参数表>) 或

相关主题
文本预览
相关文档 最新文档