欢迎来到天天文库
浏览记录
ID:48167660
大小:100.50 KB
页数:22页
时间:2020-01-16
《第7章创建并管理类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章创建并管理类和对象教学重点定义类,在其中包含一系列的方法和数据项。使用public和private关键字,控制成员的可访问性。使用new关键字和构造函数创建对象。使用this关键字来区分字段和参数。编写并调用自己的构造函数。本章例题:直角坐标系下,计算两个点的距离。问题1:直角坐标系下,怎么标注一个点的位置?水平坐标x垂直坐标y问题2:我们要对点进行什么操作?计算与另一点之间的距离赋初值问题3:如何把以上内容都包含在内,定义一个点类型?7.1理解分类7.2封装的目的7.3定义并使用类7.4控制可访问性7.5使用
2、构造函数7.1理解分类什么是类?类(class)是把具有相同属性的事物划分为一类,从而得出的抽象概念。如何得出抽象概念?分析所需容纳的信息分析需要哪些操作功能类是由两部分组成字段(field)方法(method)类和对象对象是类的实例,类是对象的抽象。7.2封装的目的面向对象的核心概念“封装性”(Encapsulation)“继承性”(Inheritance)“多态性”(Polymorphism)封装性(Encapsulation)封装是面向对象的一个重要原则。它有两个涵义:第一个涵义是,把对象的全部属性和全部功能结
3、合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。这主要是指对象的外部不能直接地存取对象地属性,只能通过几个允许外部使用地服务与对象发生联系。即控制可访问性。7.3定义并使用类类的定义类是一种用户自定义的数据类型,它的定义格式如下:class类名{方法字段}class是定义类的关键字类名是一个标识符一对大括号内是类的说明部分,说明该类的所有成员,类的成员包括方法和字段两部分。例一个圆
4、类分析:一个圆需要什么参数?需要什么操作功能?定义类classCircle{doubleArea(){returnr*r*Math.PI;}doubler;}例一个类Stud,具有学号姓名年龄三个特征,输出信息的功能。classStud{voidoutput(){textBox1.text=num;textBox2.text=name;textBox3.text=age.ToString();}stringnum;stringname;intage;}使用类——定义对象格式:类名对象名表;使用对象——对象成员的访问
5、通过对象名和成员运算符“.”访问对象的成员,表示如下:对象名.字段或者对象名.方法(参数表)例如定义对象:Circlec;访问对象:c.rc.Area()7.4控制可访问性类的成员包括字段和方法两部分。类的成员从访问权限上分有以下三类:公有的(public)、私有的(private)和保护的(protected)说明为公有的成员可以被程序中的任何代码访问;说明为私有的成员只能被类本身的方法及友元类的方法访问,其他类的方法,包括其派生类的方法都不能访问它们;说明为保护的成员与私有成员类似,只是除了类本身的方法和说明为友
6、元类的方法可以访问保护字段外,该类的派生类的成员也可以访问。例一个圆类分析:哪些是公有的,哪些是私有的?定义类classCircle{doubleArea(){returnr*r*Math.PI;}doubler;}public问题:字段是私有的,那么对象如何初始化?publicprivate7.5使用构造函数问题:字段是私有的,那么对象如何初始化?构造函数构造函数是一种用于创建对象的特殊成员函数。构造函数的定义构造函数的函数名与类名相同;构造函数不能具有返回类型。构造函数的调用通过new调用构造函数。例classC
7、ircle{publicCircle()//默认构造函数{r=0;}publicdoubleArea(){returnr*r*Math.PI;}privatedoubler;}定义对象:Circlec;初始化对象:c=newCircle();//调用默认构造函数构造函数的重载无参构造函数(默认构造函数)如果一个类没有定义构造函数,编译器会自动生成一个不带参数的默认构造函数,其格式如下:构造函数名(){//函数体为空}对象初始化的一般形式:类名对象名=new构造函数名();带参数的构造函数带参数的构造函数可以在创建对象
8、时,用具体数值初始化字段。构造函数首部的一般形式:构造函数名(形参表)对象初始化的一般形式:类名对象名=new构造函数名(实参表);例classCircle{publicCircle()//默认构造函数{r=0;}publicCircle(doubleradius)//构造函数{r=radius;}publicdoubleArea(){retu
此文档下载收益归作者所有