《面向对象-类和对象.ppt》由会员分享,可在线阅读,更多相关《面向对象-类和对象.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#C#中对象的创建中对象的创建n类的定义类的定义 n声明方法声明方法 n构造函数构造函数 n使用类的静态成员使用类的静态成员 类的定义类的定义n类和对象类和对象 n值类型和引用类型值类型和引用类型 n如何定义类和创建对象如何定义类和创建对象 n如何使用命名空间来组织类如何使用命名空间来组织类 n如何定义可访问性和作用域如何定义可访问性和作用域n课堂练习课堂练习 定义类和创建对象定义类和创建对象3.1 类的定义类的定义类和对象类和对象n类:类:l相对对象而言,类似于蓝图l包含方法和数据n对象:对象:l是类的实例l使用关键字 new 创建l对象具有行为对象对象厨房厨房起居室起居室浴室浴室书房书房
2、饭厅饭厅储藏室储藏室门廊门廊类类3.1.1 类和对象类和对象值类型和引用类型值类型和引用类型 n值类型值类型l直接包含数据l存储在栈中l必须初始化l不能为 nulllint 是一个数据类型int i;i=42;CostObject c;42n引用类型引用类型l包含对数据的引用l存储在堆中l使用关键字 new 声明l类是一个引用类型42ic 值类型和引用类型值类型和引用类型 定义类和创建对象定义类和创建对象 public class Customer public stringname;public decimalcreditLimit;public uintcustomerID;n定义类定义类
3、n将类实例化为对象将类实例化为对象Customer nextCustomer=new Customer();n类成员的访问类成员的访问nextCustomer.name=Suzan Fine;3.1.3 定义类和创建对象定义类和创建对象 使用命名空间来组织类使用命名空间来组织类 n创建命名空间创建命名空间namespace CompanyName namespace Sales public class Customer()/Ornamespace CompanyName.Sales .nusing 指令指令using System;using CompanyName.Sales;n嵌套的命名
4、空间嵌套的命名空间namespace CompanyName public class Customer()3.1.4 使用命名空间来组织类使用命名空间来组织类 定义可访问性和作用域定义可访问性和作用域 n使用访问修饰符,可以定义应用程序中类成员的使用访问修饰符,可以定义应用程序中类成员的作用域作用域声明声明声明声明定义定义定义定义public不限制访问private只能从包含的类中访问internal从类型所在的 assembly 访问protected包含的类或继承的子类可以访问protected internal包含的类、继承的子类或类型所在 assembly 可以访问3.1.5 定义可
5、访问性和作用域定义可访问性和作用域 课堂练习课堂练习定义类和创建对象定义类和创建对象 n在本练习中,创建一个表示羚羊的类,在本练习中,创建一个表示羚羊的类,并且创建一个该类的对象并且创建一个该类的对象 动手练习动手练习动手练习动手练习10 分钟分钟3.1.6 课堂练习定义类和创建对象课堂练习定义类和创建对象 第三章第三章C#C#中对象的创建中对象的创建n类的定义类的定义 n声明方法声明方法 n构造函数构造函数 n使用类的静态成员使用类的静态成员 声明方法声明方法 n如何编写方法如何编写方法 n如何如何给方法传递参数给方法传递参数 n如何如何通过引用来传递参数通过引用来传递参数 n如何如何传递引
6、用类型变量传递引用类型变量n如何重载方法如何重载方法 n课堂练习课堂练习 编写和调用方法编写和调用方法3.2 声明方法声明方法 如何编写方法如何编写方法class Lion private int weight;public bool IsNormalWeight()if(weight 250)return false;return true;public void Eat()/*some action*/public int GetWeight()return this.weight;.Lion bigLion=new Lion();bool weightNormal=bigLion.IsN
7、ormalWeight();bigLion.Eat();int weight=bigLion.GetWeight();n方法是能够完成某个任务的指令集合方法是能够完成某个任务的指令集合3.2.1 如何编写方法如何编写方法如何给方法传递参数如何给方法传递参数 class Lion private int weight;public void SetWeight(int newWeight)weight=newWeight;.Lion bigLion=new Lion();int bigLionWeight=250;bigLion.SetWeight(bigLionWeight);n值传递值传递
8、3.2.2 如何给方法传递参数如何给方法传递参数 如何通过引用来传递参数如何通过引用来传递参数 nref 关键字关键字 n明确赋值明确赋值 nout 关键字关键字 l允许在方法中初始化public void GetAddress(ref int number,ref string street)number=this.number;street=this.street;.int sNumber=0;string streetName=null;zoo.GetAddress(ref sNumber,ref streetName);/sNumber and streetName have new
9、values3.2.3 如何通过引用来传递参数如何通过引用来传递参数 如何传递引用类型变量如何传递引用类型变量 n当传递引用类型变量给方法时,方法可以改变实际当传递引用类型变量给方法时,方法可以改变实际数值数值class Zoo public void AddLion(Lion newLion)newLion.location=Exhibit 3;.Zoo myZoo=new Zoo();Lion babyLion=new Lion();myZoo.AddLion(babyLion);/babyLion.location is Exhibit 33.2.4 如何传递引用类型变量如何传递引用类型
10、变量 如何重载方法如何重载方法 n重载方法是你能够在同一个类中创建多种方法,它重载方法是你能够在同一个类中创建多种方法,它们有相同的名字和不同的签名们有相同的名字和不同的签名class Zoo public void AddLion(Lion newLion).public void AddLion(Lion newLion,int exhibitNumber).3.2.5 如何重载方法如何重载方法 如何使用如何使用 XML 代码注释功能代码注释功能 n当输入三个正斜杠符当输入三个正斜杠符(/)后,后,Visual Studio.NET 就就会插入几行会插入几行 XML 代码代码n在代码编辑器
11、在代码编辑器 中,当在对象名后面输入中,当在对象名后面输入“.”操操作符后,作符后,Visual Studio.NET 就会显示一个列表,该就会显示一个列表,该列表中包含了所有类相关的成员列表中包含了所有类相关的成员 3.2.6 如何使用如何使用 XML 代码注释功能代码注释功能 第三章第三章C#C#中对象的创建中对象的创建n类的定义类的定义 n声明方法声明方法 n构造函数构造函数 n使用类的静态成员使用类的静态成员 构造函数构造函数 n如何初始化对象如何初始化对象 n如何重载构造函数如何重载构造函数 n课堂练习课堂练习 使用构造函数使用构造函数3.3 构造函数构造函数 如何初始化对象如何初始
12、化对象 public class Lion public Lion()Console.WriteLine(Constructing Lion);n构造函数是特殊的方法,该方法用来实现对象的构造函数是特殊的方法,该方法用来实现对象的初始化初始化l与类同名l默认构造函数nreadonly 修饰符修饰符 l用来给构造函数中的变量赋值3.3.1 如何初始化对象如何初始化对象 如何重载构造函数如何重载构造函数 n创建多个构造函数,使用相同的名字和不同的签创建多个构造函数,使用相同的名字和不同的签名名l使用关键字使用关键字 this,可以调用类本身定义的一个,可以调用类本身定义的一个特定构造函数特定构造函
13、数 public class Lion private string name;private int age;public Lion():this(unknown,0)Console.WriteLine(Default:0,name);public Lion(string theName,int theAge)name=theName;age=theAge;Console.WriteLine(Specified:0,name);3.3.2 如何重载构造函数如何重载构造函数 第三章第三章C#C#中对象的创建中对象的创建n类的定义类的定义 n声明方法声明方法 n构造函数构造函数 n使用类的静态成
14、员使用类的静态成员 使用类的静态成员使用类的静态成员 n如何使用类的静态成员如何使用类的静态成员 n如何初始化类如何初始化类 3.4 使用类的静态成员使用类的静态成员 如何使用类的静态成员如何使用类的静态成员n静态成员静态成员l属于类l在类的实例创建以前完成初始化l被同一个类的所有实例共享class Lion public static string family=felidae;./A Lion object is not created in this codeConsole.WriteLine(Family:0,Lion.family);3.4.1 如何使用类的静态成员如何使用类的静态成员