《使用C#进行面向对象编程第六章类和对象.ppt》由会员分享,可在线阅读,更多相关《使用C#进行面向对象编程第六章类和对象.ppt(29页珍藏版)》请在三一办公上搜索。
1、1,第六章 类和对象,2,本章内容,面向对象的基本概念类的声明对象的产生和使用对象的生命周期类的可访问性类的成员的可访问性分部类,3,6.1 面向对象的基本概念,什么是面向对象类和对象的基本概念面向对象的三大特征,4,面向对象的编程思想意图使在计算机中对事物的描述与现实中该事物的本来面目尽可能的一致。类和对象(面向对象方法的核心概念)类是对某一类事物的描述,是抽象的,概念上的定义;对象是实际存在的该类事物的一个个体,也称为实例(instance)。,5,对象从文字上理解为“具体的东西”,人的感观能够感觉到它。Grady Booch指出对象具有以下特性:对象有状态对象可以具有行为对象有一个唯一的
2、身份,以区别于其他对象,Grady Booch面向对象方法的最早倡导者之一,深入理解对象,6,7,课间思考,确定以下对象的可能状态:一部手机一个mp3播放器,答案:手机状态:关机,铃声,振动,通话mp3播放器:播放,暂停,倒带和快进,8,在一所学校里有哪些对象?这些对象可以有哪些行为?这些对象的唯一身份是什么?,9,深入理解类,类是对同一种对象的抽象描述,是对象的模板。类包括以下内容 1类名 2该类对象的基本属性(身份+状态+特性)3该类对象所具有的行为,10,如汽车类包括如下内容:汽车 类名车牌号颜色大小 基本重量 属性速度油量移动 行为,11,习题:设计一个类来描述学生,请确定类名、类的属
3、性、类的行为 习题:设计一个类来描述医生,请确定类名、类的属性、类的行为,12,4 C#中的类,class Car public int carID;public string color;public float speed;public void Move()(“汽车在前进!);,13,class TestClass static void Main()Car car1=new Car();car1.Move();,14,习题:将前面设计的学生类用C#代码表示出来,并定义测试类测试之。,15,6.2 类的定义,类是具有相同特征的多个对象的模板,它封装了这些对象的所有共同特征,包括数据和能完
4、成的操作。因此定义类主要是在定义类的数据和能完成的操作。类的数据数据成员 类能完成的操作函数成员,16,C#中类的定义格式如下:,类修饰符 class 类名/类体;,类修饰符用于定义类的可访问性等信息如public、abstract等,17,public class Person public int age;public void Say()System.Console.Write(“My age is:”+age);,例:,class是定义类的关键字,这里我们定义了一个Person类。age是类的数据成员。say是类的函数成员.,18,6.3 对象的产生和使用 类名 对象名=new 类名(
5、);如:Person p1=new Person();在堆内存中划分了一块区域,用于存储Person类的一个对象,然后使得一个引用变量p1指向堆中的那个对象。,某个函数的栈空间,0 x3000,栈内存,New Person()产生的对象,0,p1,0 x3000,对象的地址,age,堆内存,19,当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。,方法中定义的变量不会被初始化。,20,对象的使用:,对象创建好以后,我们可以通过 对象.成员 的格式来访问对象的成员。访问对象的数据成员 对象名.数据成员 如p1.age;调用对象的函数成员 对象名.函数成员(实际参数表);如p1.s
6、ay();,21,Person p1=new Person();Person p2=new Person();p1.age=20;p1.say();p2.say();,例:,22,习题:你是软件研发组成员,你所在小组接到一个员工管理系统的开发任务,你的任务是使用面向对象的思想用C#语言编程,要求:创建一名员工,输入其工号、姓名、工作年限、工资等信息,并输出各项信息.,23,习题:运用面向对象思想实现一个计算器程序,有加、减、乘、除功能。,24,6.4 对象的生命周期,Person p1=new Person();离开作用域后p1失效,Person对象成为垃圾,Person,p1,Person
7、p1=new Person();p1=null;,Person,p1,Person,p1,两种情况,25,Person p1=new Person();Person p2;p2=p1;p1=null;,Person,p1,Person,p1,p2,Person,p1,p2,null,26,这里讨论顶级类的可访问性(如果类不是在某个类内声明的,那这个类就是顶级类)类有三种访问修饰符public(访问该类不受限制)internal(访问仅限于此程序(类所在的程序内,即同一个编译单元:dll或exe中),出了此程序,外界无法访问到该类.)默认(相当于internal),6.5 类的可访问性,27,6.6 类的成员的可访问性,例:教材例6.10,28,6.7 分部类,通过类修饰符partial可以将类的定义分开,甚至可以分散到不同的文件中,这种类称为分部类。编译时这些类的分片会被合并起来。,29,public partial class Student protected string name;public void f1()public static void Main()Student s1=new Student();,public partial class Student private int x;public void f2(),Test1.cs,Test2.cs,