面向对象编程基础.ppt

上传人:石*** 文档编号:87211483 上传时间:2023-04-16 格式:PPT 页数:62 大小:4.45MB
返回 下载 相关 举报
面向对象编程基础.ppt_第1页
第1页 / 共62页
面向对象编程基础.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《面向对象编程基础.ppt》由会员分享,可在线阅读,更多相关《面向对象编程基础.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象编程基础现在学习的是第1页,共62页面向对象编程简述软件开发领域两种开发方法:n面向过程n面向对象面向对象概念的出现,是程序设计领域的一个重大进步.现在学习的是第2页,共62页我们可以形象的把对象看成一块积木.积木的设计者需要设计积木的外观,形状及材质,而使用者只需要根据外观与形状进行堆放就可以了.现在学习的是第3页,共62页优点:n可维护性n复用性n扩展性n灵活性现在学习的是第4页,共62页n面向对象开发中两种身份:设计者,使用者.实际上,我们现在很多的软件开发都是一种组件化开发,在前人的工作基础上添砖加瓦.如:Convert.ToInt32()现在学习的是第5页,共62页当程序规模

2、庞大到一定程度后,需要对其使用面向对象的方法分层设计,使能够进行大批量的同步开发。现在学习的是第6页,共62页对象n具体的事物,一般具有属性与行为。汽车:属性:型号、颜色行为:启动、加速、刹车现在学习的是第7页,共62页鸡:属性:品种、重量、毛色行为:叫、吃东西、下蛋现在学习的是第8页,共62页n在现实生活中,人们都是习惯以对象为单位,来研究其性质、行为以及其与其他对象之间的关系n同样,在程序中使用对象的概念,就可以将一个程序看成是很多对象相互作用的结果。现在学习的是第9页,共62页几个关键词n封装n继承n接口现在学习的是第10页,共62页封装例如看电视,我们通过遥控器就能控制它,并不需要知道

3、电视是怎么搜索频道、接收信号等工作,按下按钮,就能换到另一个频道。我们只是把电视当作一个供我们娱乐的对象,我们只要知道怎么用就行了。现在学习的是第11页,共62页继承n电视机从出现到不断发展,从黑白到彩色,到高清,不管怎么变化,它们都有共同的特征:声音,图像。这在面向对象的理论中就是继承现在学习的是第12页,共62页多态n多种形式或多种形态,同一操作对于不同的对象可以有不同的解释。现在学习的是第13页,共62页类与对象的关系n初学者往往混淆类和对象的概念,实际上它们之间是蓝图和产品的关系,类就是一张蓝图,它规定了对象有哪些特征,而对象是根据这张蓝图生产的产品。n从同一个类产生出来的对象,它们具

4、有样的结构,却可能在某些特性上有不同之处。现在学习的是第14页,共62页类与对象的UML表示现在学习的是第15页,共62页类n类定义了一个“模板”,通过这个“模板”可以生成一个或多个对象n类定义了一个对象的状态和行为public class Student /姓名,年龄././入学,考试,实习,退学.现在学习的是第16页,共62页n类是C#中的一种结构,用于在程序中模拟现实生活中的事物基本语法:访问修饰 class /类的成员现在学习的是第17页,共62页现在学习的是第18页,共62页实例化n实例化就是创建对象的过程n使用new关键字来创建 class Program static void

5、Main(string args)Tree a=new Tree();Tree b=new Tree();class Tree 现在学习的是第19页,共62页类成员的定义n类成员包括字段、方法和属性。所有成员都有自己的访问级别现在学习的是第20页,共62页定义字段n类所包含的数据n字段用标准的变量声明格式和修饰符来声明(可以进行初始化)如:class Studentpublic string name;public int age;现在学习的是第21页,共62页 class Program static void Main(string args)Student a=new Student()

6、;a.name=刘伟;a.age=19;Console.WriteLine(a.name);Console.WriteLine(a.age);Console.ReadKey();现在学习的是第22页,共62页字段与方法的访问修饰符public:在任何地方访问,不受限制internal:访问仅限于当前程序集private:访问仅限于包含类型(默认)protected:访问仅限于包含类或从包含类派生的类型protected internal:访问仅限于从包含类派生的当前程序集或类型现在学习的是第23页,共62页现在学习的是第24页,共62页现在学习的是第25页,共62页定义方法n方法指所具有的行为

7、,用函数的形式进行表达.现在学习的是第26页,共62页class Student public string name;public int age;public void Show()Console.WriteLine(我叫0,我1岁了,name,age);public void Run()Console.WriteLine(0正在跑步中.,name);现在学习的是第27页,共62页 class Program static void Main(string args)Student a=new Student();a.name=刘伟;a.age=19;a.Show();a.Run();Co

8、nsole.ReadKey();现在学习的是第28页,共62页练习:1.创建一个类Point,表示一个点.有两个double字段,分别表示x,y坐标.三个方法void Move(double a,double b)用于将该点在x轴上平移a,在y轴上平移b.void Show()显示该点当前的坐标.double OriginDistance();计算该点与原点的距离。在主函数中创建一个点,设置坐标值后显示,平移,然后再显示.最后计算该点与原点的距离.现在学习的是第29页,共62页2.创建一个Frog类,一个字段:string name;青蛙的名字int distance;表示青蛙跳过的距离.一个

9、方法:void Jump()青蛙跳(一个10到20间的随机数)在主函数中创建两个青蛙,让它们各跳10次后,宣布比赛结果.现在学习的是第30页,共62页3猜数字游戏:创建一个类A一个成员变量(字段)int x;指要猜的数(1-100)一个方法:bool guess(int x):用于对字段x进行猜测.如果大了则提示大了,小了则提示小了,等于则提示猜测成功。在主函数中创建一个A类对象,随机设置x字段的值,并让用户猜测,一直到猜中为止.现在学习的是第31页,共62页4创建一个类Student,有姓名,语文,数学,英语四个字段.一个计算平均分的方法.(有结果返回)在主函数中创建二个学生,给各个字段赋值

10、,计算平均分并显示出来.现在学习的是第32页,共62页5.创建一个Pet类,有昵称(string),饥饿值(int),清洁值(int)三个字段,有feed和Bath方法,每次喂食增加5个饥饿值,每次洗澡增加3点清洁值.一个Show方法,将宠物当前状态显示出来.在主函数中创建一个宠物,设置三个字段,喂几次,洗几次澡,显示宠物当前状态.现在学习的是第33页,共62页属性n为了实现良好的数据封装和数据隐藏,类的字段成员的访问属性一般设置成private或protected,这样在类的外部就不能直接读写这些字段成员了,通常的办法是提供public级的方法来访问私有的或受保护的字段。现在学习的是第34页

11、,共62页现在学习的是第35页,共62页定义属性n属性拥有两个类似于函数的块,一个块用于获取属性的值,另一个用于设置属性的值。这两个块也称为访问器,分别用get和set来定义。可以只写一个来创建只读或只写属性。现在学习的是第36页,共62页public 属性名get/获取属性的代码set/设置属性的错码在set函数中,可以使用关键字value引用用户提供的属性值现在学习的是第37页,共62页 class Test private int myInt;public int MyIntProp get return myInt;set myInt=value;现在学习的是第38页,共62页 cla

12、ss Car private double rotateSpeed;public double Speed get Console.WriteLine(当前车轮转速是0转/每秒,车速据此计算得出,rotateSpeed);return rotateSpeed*2*3600/1000;set rotateSpeed=value*1000/3600/2;Console.WriteLine(根据车速设车轮转速为0转/每秒,rotateSpeed);现在学习的是第39页,共62页 public class BankCustomer public string Name;public decimal B

13、alance;public void Deposit(decimal amount)this.Balance+=amount;BankCustomer c;c=new BankCustomer();c.Name=张三;c.Balance=0.0M;c.Deposit(1000.0M);Console.Write(c.Balance);Console.ReadLine();现在学习的是第40页,共62页构造函数nC#提供了对对象进行初始化的方法,这就是构造函数。n构造函数是类的一种特殊方法,在每次创建类的实例时都会调用它。一般构造函数进行对象数据的初始化。现在学习的是第41页,共62页访问修饰符

14、 ()/构造函数的主体现在学习的是第42页,共62页n构造函数总是和类同名n构造函数没有任何返回值,也无需加voidn不能显示的调用构造函数n每个类都有一个构造函数,如果代码中没有构造函数,系统会自动的为该类提供一个默认的构造函数。n构造函数的修饰符如为private会阻止其实例化现在学习的是第43页,共62页 class Plane public string color;public int weaponLevel;public int bombNumber;public Plane()color=red;weaponLevel=1;bombNumber=3;Console.WriteLi

15、ne(新飞机构造完毕);现在学习的是第44页,共62页 class Program static void Main(string args)Plane a=new Plane();Console.WriteLine(a.color);Console.WriteLine(a.weaponLevel);Console.WriteLine(a.bombNumber);Console.ReadLine();现在学习的是第45页,共62页n默认构造函数对非静态成员进行初始化(1)数值型初始化为0(2)bool型初始化为false(3)引用类型初始化为null 如果自己定义了构造函数,则所有的初始化工作

16、由程序员自己完成。现在学习的是第46页,共62页重载构造函数n构造函数可以有参数,并可以重载。现在学习的是第47页,共62页【例例3.2】Time类的构造函数及其重载。using System;public class Timeprivate int hour,minute,second;public Time()hour=minute=second=0;public Time(int h)hour=h;minute=second=0;public Time(int h,int m)hour=h;minute=m;second=0;现在学习的是第48页,共62页public Time(int

17、h,int m,int s)hour=h;minute=m;second=s;class Teststatic void Main()Time t1,t2,t3,t4;/对t1,t2,t3,t4分别调用不同的构造函数t1=new Time();t2=new Time(8);t3=new Time(8,30);t4=new Time(8,30,30);现在学习的是第49页,共62页析构函数n用于执行清除操作的特殊的方法()现在学习的是第50页,共62页只读字段n用readonly修饰只能在声明或构造函数中对只读字段进行赋值。现在学习的是第51页,共62页静态成员与实例成员前面我们谈到的字段、属性

18、与方法是对象实例所特有的,此外还有静态成员。静态成员不属于任何对象,独立于任何对象实例。静态成员使用static 关键字进行定义。现在学习的是第52页,共62页 class IPhone4 public string color;static public decimal designFee;现在学习的是第53页,共62页 class Human /两个实例字段 public int age;public string name;/两个静态字段 static public int history;static public int number;现在学习的是第54页,共62页n静态字段只在内存

19、中存储一次现在学习的是第55页,共62页 class Human /一个实例方法 public void DisPlay()Console.WriteLine(我叫0我1岁了,name,age);/一个静态方法 static public void Introduce()Console.WriteLine(人类是地球上最聪明的生物,有0年的历史,现在有1人,history,number);现在学习的是第56页,共62页n对于静态方法与字段,我们没有必要对其进行new实例化,直接调用即可.现在学习的是第57页,共62页n静态方法不能访问实例数据或其他实例方法.现在学习的是第58页,共62页静态构

20、造函数n用于初始化静态数据,或用于执行仅需执行一次的特定操作,在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数static()静态构造函数不能使用访问修饰符,也不能使用参数.现在学习的是第59页,共62页 /静态构造函数 static Human()history=5000;number=0;Console.WriteLine(人类初始数据设置完毕);/构造函数 public Human()age=0;name=未命名;number+;Console.WriteLine(新人已经造出);现在学习的是第60页,共62页 class BMW320i public static str

21、ing engine;public static int length;public static int carNumber;public static int warrantyYears;public string color;public int oil;static BMW320i()engine=2.0L 156马力 L4;length=4531;warrantyYears=2;carNumber=0;Console.WriteLine(小汽车的静态数据已设置完毕);public BMW320i(string color)this.color=color;this.oil=50;ca

22、rNumber+;Console.WriteLine(一辆汽车造好了);public static void Introduce()Console.WriteLine(宝马320i);Console.WriteLine(引擎:0,engine);Console.WriteLine(车长:0,length);Console.WriteLine(质保:0年,warrantyYears);public void Driver(int distance)this.oil-=distance/5;Console.WriteLine(汽车行驶了0公里,distance);public void Show()Console.WriteLine(我是一辆0色的宝马320i,我的油箱里还有1升油,color,oil);现在学习的是第61页,共62页索引器n索引器是一种特殊类型的属性,可以提供类似于数组的访问现在学习的是第62页,共62页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁