您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第4章-面向对象基础
让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效第4章面向对象基础•类与对象•构造方法•this关键字•static关键字让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效目录访问修饰符构造方法面向对象的概念类与对象this关键字索引器垃圾回收static关键字嵌套类匿名类4.10对象初始化器4.11让IT教学更简单,让IT学习更有效•面向对象是在对真实系统建模的基础上的一个软件开发方法。•面向对象的程序由类和对象组成。••让我们了解这些术语—类和对象。面向对象的方法让IT教学更简单,让IT学习更有效ToyotaCamrySuzukiRenoHondaAcura对象类类汽车让IT教学更简单,让IT学习更有效对象•现实世界中所有的事物都是对象•对象都具有某些特征,并展现某些行为让IT教学更简单,让IT学习更有效长度、宽度、颜色、速度、类型等是对象的属性,属性值表明了对象的状态对象让IT教学更简单,让IT学习更有效车的位置定义其状态车的运动定义其行为车号XX4C4546显示车的标识对象的身份对象的行为(方法)汽车的起动、加速、减速、停止等是对象自身的动作称为对象的方法让IT教学更简单,让IT学习更有效对象属性型号价格里程行为起动停车行驶属性车轮数量档的数量行为加速换档刹车属性名称颜色品种行为摇尾巴吃东西犬吠让IT教学更简单,让IT学习更有效车闪灯来向另一辆车传递消息通过消息实现对象交互注意:通过方法调用实现消息发送让IT教学更简单,让IT学习更有效•对象从文字上理解为“具体的事情”,人的感•观能够感觉到它。•对象具有以下特性:–对象有状态(属性和值)–对象可以显示行为(自身行为)–对象有一个唯一的身份(标识)面向对象的基础让IT教学更简单,让IT学习更有效类是具有相同属性和方法的对象的抽象(即对象的共性)。在计算机中类就是一种数据结构,是一种特定的数据组织形式。它包含属性;方法。让IT教学更简单,让IT学习更有效4.1面向对象的概念什么是面向对象?面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。面向对象的三大特征1、封装性封装是面向对象的核心思想,它将对象的特征和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。例如,用户使用电脑,只需要使用手指敲键盘就可以了,无需知道电脑内部是如何工作的,即使用户可能碰巧知道电脑的工作原理,但在使用时,并不完全依赖电脑工作原理这些细节。让IT教学更简单,让IT学习更有效4.1面向对象的概念2、继承性继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个表示汽车的类,该类中描述了汽车的普通特性和功能,而表示轿车的类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加表示轿车特性的方法就可以了。3、多态性多态性指的是同一操作用于不同的对象,会产生不同的执行结果。例如,当听到“Cut”这个单词时,理发师的表现是剪发,演员的行为表现是停止表演,不同的对象,所表现的行为是不一样的。让IT教学更简单,让IT学习更有效程序设计语言中如何实现封装?如何创建类和对象?让IT教学更简单,让IT学习更有效•类和对象的创建举例•学生管理系统中对学生进行管理,一个学生有学号、姓名、年龄,能实现对学生信息的赋值和输出•编写一个students类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:使用成员函数实现对数据的输出;使用函数实现对数据的输入。让IT教学更简单,让IT学习更有效访问修饰符class类名{访问修饰符成员;}对象创建类名对象名;对象名=new类名()让IT教学更简单,让IT学习更有效4.2类与对象•4.2.1类的定义什么是类?如何定义一个类?类是对象的抽象,它用于描述一组对象的共同特征和行为。类中可以定义字段和方法,其中字段用于描述对象的特征,方法用于描述对象的行为。在下面这段代码中定义了一个Person类,其中,Person是类名,age是字段,Speak()是方法。在Speak()方法中可以直接访问age字段。publicclassPerson//定义Person类,public为访问修饰符{publicintage;//定义int类型的字段agepublicvoidSpeak()//定义Speak()方法{Console.WriteLine(大家好,我今年+age+岁!);}}让IT教学更简单,让IT学习更有效4.2类与对象•4.2.2对象的创建与使用应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在C#程序中可以使用new关键字来创建对象,具体格式如下:例如创建Person类的实例,具体代码如下:上面的代码中,“newPerson()”用于创建Person类的一个实例对象,“Personp”则是声明了一个Person类型的变量p。中间的等号用于将Person对象在内存中的地址赋值给变量p,这样变量p便持有了Person对象的引用。类名对象名称=new类名();Personp=newPerson();让IT教学更简单,让IT学习更有效4.2类与对象•4.2.2对象的创建与使用内存中变量p和对象之间的引用关系如下图所示。在创建Person对象后,可以通过对象的引用来访问对象所有的成员,具体格式如下:Personp0x3000newPerson()内存(对象的地址)堆栈托管堆0x3000对象引用.对象成员让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效课堂练习•编程程序•定义日期类型Date。要求有以下面成员:年、月、日变量(私有),一个实现年、月、日单独的输入voidinput(intyear,intmonth,intday),实现打印方法成员,该方法要按照“XXXX年XX月XX日”格式输出日期。让IT教学更简单,让IT学习更有效访问修饰符用法•让我们举例来了解它们的用法Abstract.prj让IT教学更简单,让IT学习更有效访问修饰符程序内的其他类程序内的子类另外一个程序中的类另外一个程序中的子类public√√√√privateprotected√√internal√√Protectedinternal√√Internal在程序集内使用,ProtectedInternal程序集的子类也中可见Default与private等价让IT教学更简单,让IT学习更有效访问修饰符在上一个小节中出现的关键字private和public都属于修饰符,用于限定外界对类和方法的访问权限。在C#中,访问修饰符共有四种,分别是public、protected、internal、private,使用这四种访问修饰符可以组成五个可访问级别,具体如下:•public:最高访问级别,访问不受限制。•protected:保护访问级别,受保护的成员可由自身及派生类访问。•internal:内部访问级别,只有在同一程序集中,内部类型或者成员才可访问。•protectedinternal:内部保护级别,访问仅限于当前程序集,可由自身及派生类访问。•private:私有访问,最低访问级别,私有成员只有在声明它们的类和结构中才可访问。让IT教学更简单,让IT学习更有效思考类的私有成员的值,如何在类外访问?让IT教学更简单,让IT学习更有效课后思考•使用private修饰符后,使用者便无法直接访问它们,通过什么办法采用获得private修饰的成员变量的值提示:1、通过方法返回获取值2、通过建立property(属性)让IT教学更简单,让IT学习更有效4.2类与对象•4.2.4属性在设计一个类时,应该对字段的访问作出一些限定,不允许外界随意访问,这时就可以使用属性。在程序中,使用属性封装字段时,需要将字段访问级别设为private,并通过属性的get和set访问器来对字段进行读写操作,从而保证类内部数据安全。读写属性即同时有get、set访问器的属性,具体语法格式如下:属性的应用属性的分类1、读写属性public[数据类型][属性名]{get{//返回参数值}set{//设置隐式参数value给字段赋值}}让IT教学更简单,让IT学习更有效类的属性类的属性使用属性声明:class类名{[修饰符]数据类型属性名{get{};set{};}让IT教学更简单,让IT学习更有效课堂练习•定义日期类型Date。要求有以下面成员:年(myear)、月(mmonth)、日(mday)变量(私有),定义年,月,日的属性,一个实现年、月、日单独的输入voidinput(intyear,intmonth,intday),实现打印方法成员,该方法要按照“XXXX年XX月XX日”格式输出日期。主函数需要通过属性赋值的方式实现对私有数据成员的访问。让IT教学更简单,让IT学习更有效•注意:属性一般对应一个私有数据成员get方法中的return返回一个值让IT教学更简单,让IT学习更有效4.2类与对象•4.2.4属性只读属性即只有get访问器,具体语法格式如下:2、只读属性public[数据类型][属性名]{get{//返回参数值}}只写属性即只有set访问器,具体语法格式如下:3、只写属性public[数据类型][属性名]{set{//设置隐式参数value给字段赋值}}让IT教学更简单,让IT学习更有效•输入一个正整数repeat(0repeat10),做repeat次下列运算:•输入一个正整数n,再输入n个整数,将它们从大到小排序后输出。•输入•3(repeat=3)•45176•3123•554321•输出•7651•321•54321让IT教学更简单,让IT学习更有效•定义一个矩形类,有长、宽两个属性,有成员函数计算矩形的面积。•要求从键盘中输入矩形的长和宽,输出矩形的长和宽及面积让IT教学更简单,让IT学习更有效4.3类成员-方法让IT教学更简单,让IT学习更有效方法的使用方法由一个或多个程序语句组成,通过引用方法名能够执行方法。要使用方法,您需要:定义方法调用方法让IT教学更简单,让IT学习更有效方法的使用•方法的定义格式public、private、protected、internal等返回值类型让IT教学更简单,让IT学习更有效方法的使用•方法的定义格式如果方法没有返回值void返回值类型int,float,char,bool,string,class类型等return返回值//有返回值加上return让IT教学更简单,让IT学习更有效方法的使用•方法的定义格式返回值类型参数类型参数名1,参数类型参数名2,…..如果没有参数()括号不能省略让IT教学更简单,让IT学习更有效方法的使用•调用方法定义方法后,您可以通过调用它来执行。您可以通过方法名调用它。方法名后跟圆括号,即使方法调用没有参数,圆括号还是要保留,如以下示例所示:MethodName();让IT教学更简单,让IT学习更有效以下是调用方法的示例:usingSystem;classCalculator{publicintAddNumber(intnum1,intnum2){intresult;result=num1+num2;returnresult;}staticvoidMain(string[]args){Calculatorcal=newCalculator();//Thefollowingstatementiscallingthe//AddNumbermethodandpassing10and//20astheparameterlist.intvalue=cal.AddNumber(10,20);Console.WriteLine(Ther
本文标题:第4章-面向对象基础
链接地址:https://www.777doc.com/doc-4674011 .html