第4章 面向对象程序设计基础

第4章 面向对象程序设计基础

ID:14184445

大小:1006.00 KB

页数:50页

时间:2018-07-26

第4章 面向对象程序设计基础_第1页
第4章 面向对象程序设计基础_第2页
第4章 面向对象程序设计基础_第3页
第4章 面向对象程序设计基础_第4页
第4章 面向对象程序设计基础_第5页
资源描述:

《第4章 面向对象程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章面向对象程序设计基础4.1面向对象概述面向对象的程序设计(OOP,Object-OrientedProgramming)是一种基于结构分析的、以数据为中心的程序设计方法。它的主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个称为类(Class)的数据结构中。使用这个类时,只需要定义一个类的变量即可,这个变量叫做对象(Object)。通过调用对象的数据成员完成对类的使用。4.1.1类和对象概述见教材66-67页4.1.2属性、方法、继承、重载见教材66-67页4.2类和对象格式:[类修

2、饰符]class类名[:基类]{类的成员;}4.2.1类的声明类修饰符含义noneorinternal类只能在当前工程中访问public类可以在任何地方访问abstractorinternalabstract类只能在当前工程中访问,不能实例化,只能继承publicabstract类可以在任何地方访问,不能实例化,只能继承sealedorinternalsealed类只能在当前工程中访问,不能派生,只能实例化publicsealed类可以在任何地方访问,不能派生,只能实例化4.2.2对象的声明1.定义对象格式:类名对象

3、名;2.创建类的实例:对象名=new类名(参数列表);或只用一条命令:类名对象名=new类名(参数列表);例:classClassA{}classClassB{voidFun(){ClassAa=newClassA();//创建类ClassA的一个实例a}}3对象的使用格式:对象名.成员函数名或对象名.数据4.2.3类的成员C#类的成员主要有:成员变量、成员函数。类的每个成员都需要设定访问修饰符,默认类型为private修饰符。C#中一个类的成员可有以下访问修饰符:public(公有成员):允许类的内部或外界直接访问

4、。private(私有成员):外界不能直接访问该成员变量或成员函数。对该成员变量或成员函数的访问只能由该类中其他函数访问,其派生类也不能访问。这即为“数据隐藏”。一般,成员变量声明为private,而成员函数声明为public,这样可使类中的数据更安全。protected(保护成员):对于外界该成员是隐藏的,但这个类的派生类可以访问。internal(内部成员):只有本编译单元内才能访问。例一:访问修饰符的作用classClassA{publicinta;privateintb;protectedintc;publi

5、cvoidSetA(){a=1;//正确,允许访问类自身公有成员b=2;//正确,允许访问类自身私有成员c=3;//正确,允许访问类自身保护成员}};classClassB:ClassA//ClassB是类ClassA的派生类{publicvoidSetB(){ClassABaseA=newClassA();//创建了ClassA的实例BaseABaseA.a=11;//正确,允许访问基类公有成员BaseA.b=22;//错误,不允许访问基类私有成员BaseA.c=33;//正确,允许访问基类保护成员}};class

6、ClassC{publicvoidSetB(){ClassABaseA=newClassA();BaseA.a=111;//正确,允许访问类的其他公有成员BaseA.b=221;//错误,不允许访问类的其他私有成员BaseA.c=331;//错误,不允许访问类的其他保护成员}}C#中一个类的成员又可分为静态成员非静态成员静态成员(声明成员的指令前加static保留字)、非静态成员(声明成员的指令前不加static保留字)区别:1.静态成员属于类所有、非静态成员属于对象所有;静态成员只能由类来访问,非静态成员只能由对象

7、来访问,即当一个实例成员在形式E.M的成员访问中被引用时,对于非静态实例成员M,E必须表示一个实例(对象),对静态实例成员M,E必须表示一个类。2.每个对象都有自己的非静态方法,这些非静态方法是多个副本;对于静态成员,在内存中只有一个副本。(当使用一个数据副本就足够时,使用静态成员来节省空间。)3.非静态方法可以直接访问类中的任意成员;静态方法可以直接访问静态成员或通过类访问静态成员,但是不能直接访问非静态成员,只能通过类的实例(对象)访问非静态成员。4.静态方法不对指定的实例进行操作,不能使用this关键字,它表达

8、的是一类事物共同具有的方法,而不是类的实例所独有。静态方法主要应用于提供整个类实例共有的工具函数。5.静态方法中不能包含virtual,abstract,overide修饰符。例二:静态、非静态成员classmyClass{publicinta;staticpublicintb;voidFun1()//定义一个非静态成员函数,可以访问类中任意成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。