收藏 分享(赏)

PPTTPnew4.ppt

上传人:dreamzhangning 文档编号:3323803 上传时间:2018-10-13 格式:PPT 页数:31 大小:1.14MB
下载 相关 举报
PPTTPnew4.ppt_第1页
第1页 / 共31页
PPTTPnew4.ppt_第2页
第2页 / 共31页
PPTTPnew4.ppt_第3页
第3页 / 共31页
PPTTPnew4.ppt_第4页
第4页 / 共31页
PPTTPnew4.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、第四章,在 C# 中实现 OOP 概念,2,回顾 2-1,变量是存放特定数据类型的值的容器,而常量也存放特定数据类型的值,但常量在整个程序中都保持不变 装箱是将值类型转换为引用类型,拆箱则是将引用类型转换为值类型 C# 提供以下类型的选择结构: if ifelse switchcase C# 提供以下类型的循环结构: while 循环 do 循环 for 循环 foreach 循环,3,回顾 2-2,数组是可用于将类型相同的多个数据元素存储为一个实体的数据结构 C# 中的结构可以在其内部定义方法并可包括一个构造函数枚举是一组已命名的数字常量,4,目标,理解 C# 的类和对象 使用 C# 构造函

2、数和析构函数 使用 C# 访问修饰符 使用方法 理解命名空间,5,对象,属性,型号,价格,里程,行为,起动,停车,行驶,属性,车轮数量,档的数量,行为,加速,换档,刹车,属性,名称,颜色,品种,行为,摇尾巴,吃东西,犬 吠,6,类,类是 C# 中的一种结构,用于在程序中模拟现实生活的事物,语法:,访问修饰符 class ,/ 类的主体 ,示例: class Employee / 类的主体 ,/ 成员变量 / 成员方法,7,语法:,成员变量,访问修饰符,数据类型,成员变量;,private,protected,internal,public,_name,status,.,userName,int

3、,char,.,bool,class Employeeprivate string _name;private char _gender;private string _qualification;private uint _salary; ,访问成员变量,步骤 1:创建一个类的对象,Employee objEmployee = new Employee();,步骤 2:使用点号访问成员变量,objEmployee._name = “张三“; objEmployee._name = M;,8,访问修饰符 2-1,Teacher 类,private 成员,protected 成员,public

4、成员,internal 成员,Student 类,只有 Student 类在 Teacher 类都在同一程序集中,才可访问internal成员,不可访问,不可访问,可以访问,9,访问修饰符 2-2,10,构造函数 2-1,构造函数是类的一种特殊方法,每次创建类的实例都会调用它,访问修饰符,(),/ 构造函数的主体 ,语法:, / 默认构造函数 Employee() _qualification = “研究生“; ,示例:,11,演示:示例 1,构造函数 2-2,class Employee ,private string _name;private char _gender;private s

5、tring _qualification;private uint _salary;,/ 默认构造函数private Employee()_qualification = “研究生“;,static void Main(string args) / 调用默认构造函数Employee objEmployee = new Employee();Console.WriteLine(“资格= “ + objEmployee._qualification);Console.WriteLine(“薪水= “ + objEmployee._salary); ,12,参数化构造函数 2-1,访问修饰符, ()

6、,/ 构造函数的主体 ,语法:,(参数列表), / 参数化构造函数 Employee(string strQualification) _qualification = strQualification; ,示例:,13,参数化构造函数 2-2,/ 默认构造函数 private Employee() _qualification = “研究生“; ,/ 参数化构造函数 private Employee(string strQualification, string strName, char gender, uint empSalary) _qualification = strQualifi

7、cation;_name = strName;_gender = gender;_salary = empSalary; ,public static void Main(string args) / 调用默认构造函数Employee objGraduate = new Employee();/ 调用参数化构造函数Employee objMBA = new Employee(“ACCPS3“, ”张亮影“, 男, 5500); Console.WriteLine(“默认构造函数输出:n资格=“ + objGraduate._qualification);Console.WriteLine(“n

8、参数化构造函数输出:n资格= “ +objMBA._qualification); ,14,析构函数,是用于执行清除操作的特殊方法,()0,/ 析构函数的主体 ,语法:, Employee() ,示例:,15,方法,对象的行为,接听,响铃,挂断,PickUp() . /用于传送和接收信号的代码,Ring() . /用于显示主叫号码的代码,Hang() . /用于结束会话的代码,16,声明方法 2-1,语法,访问修饰符(可选),默认情况下为 private,访问修饰符 返回类型 (参数列表)/ 方法主体,如果不需要返回任何值,方法可能返回 void 数据类型,17,声明方法 2-2, class

9、 Point int x;int y;void Assign()System.Console.WriteLine(“输入点的值“);x = int.Parse(System.Console.ReadLine();y = int.Parse(System.Console.ReadLine(); ,方法 Assign() 的定义,不返回任何值 (void)不接收任何值 (Assign(),Assign( ) 方法,18,调用方法 3-1,语法,对象名.方法名(参数列表);,实例,类中的方法,点号,19,演示:示例 3,调用方法 3-2,private void Accept()Console.Wr

10、iteLine(“请输入实数部分“);_real = int.Parse(Console.ReadLine();Console.WriteLine(“请输入虚数部分“);_imaginary = int.Parse(Console.ReadLine();void ShowResult()Console.WriteLine(“相加之和为:“);Console.WriteLine(_real + “+“ + _imaginary + “i“);/ 此方法用于将两个复数相加ComplexNumber Add(ComplexNumber objParam1)objParam1._real += _re

11、al ;objParam1._imaginary += _imaginary;return objParam1;,接收实部和虚部的值,显示实部和虚部的值,请参阅对象的实例变量,objParam1 与 objNumber2 相关联,STAThread public static void Main(string args) ComplexNumber objNumber1 = new ComplexNumber();ComplexNumber objNumber2 = new ComplexNumber();objNumber1.Accept();objNumber2.Accept();Comp

12、lexNumber objTemp = objNumber1.Add(objNumber2);objTemp.ShowResult(); ,20,调用方法 3-3,语法,return 表达式;,return 语句,21,方法重载 4-1,固定电话,电,移动电话,帐单,管理层,供应商 1,供应商 2,电信,电,电话,电,对不同的数据执行相同的任务,22,方法重载 4-2, Class BillPayment void PayBill(int telephoneNumber)/此方法用于支付固定电话话费void PayBill(long consumerNumber)/此方法用于支付电费void

13、PayBill(long consumerNumber, double amount)/此方法用于支付移动电话话费 ,对不同数据执行相似的功能,23,方法重载4-3,int greatest(int num1, int num2) Console.WriteLine(“0 和 1 相比, 最大的是: “, num1, num2);if(num1 num2)return num1;elsereturn num2; int greatest(int num1, int num2, int num3) Console.WriteLine(“0, 1 和 2 相比, 最大的是: “, num1, nu

14、m2, num3);if(num1 num2 ,具有不同数量的参数的方法重载,24,方法重载 4-4,int greatest(int numbers) int temp = numbers0;for(int i = 1;i numbers.Length;i+)if(temp numbersi)temp = numbersi;return temp; double greatest(double numbers) double temp = numbers0;for(int i = 1;i numbers.Length;i+)if(temp numbersi)temp = numbersi;r

15、eturn temp; ,具有不同类型的参数的方法重载,25,命名空间 6-1,英国,澳大利亚,纽卡斯尔,纽卡斯尔,26,命名空间 6-2,Class Manager long int salary; .,long int salary;. ,Class Manager,命名空间 AdminDept,命名空间 ITDept,AdminDept.Manager,ITDept.Manager,类库,27,命名空间 6-3,Class SamsungTelevision ,Class SonyWalkman ,Class SonyTelevision ,Class SamsungWalkman ,长

16、名称难以维护,namespace Samsung class Television.class WalkMan. ,Samsung.Television,Sony.Television,namespace Sony class Television.class WalkMan. ,有条理,有结构,28,命名空间 6-4,namespace 命名空间的名称 / 该名称空间的所有类都放在这里。 ,语法,29,命名空间 6-5,namespace Samsung class Monitorpublic void ListModels() Console.WriteLine(“供应以下型号的显示器:“

17、);Console.WriteLine(“14“, 15“ n“);STAThreadstatic void Main(string args)/ TODO: 在此处添加代码以启动应用程序/ ,30,命名空间 6-6,namespace Sony public class Monitorpublic void ListModelStocks() Console.WriteLine(“以下是 Sony 显示器的规格及其库存量:“); Console.WriteLine(“14“=1000, 15“=2000, 17“=3000“);static void Main(string args)Sam

18、sung.Monitor objSamsung = new Samsung.Monitor();Monitor objSony = new Monitor();objSamsung.ListModels();objSony.ListModelStocks(); ,31,总结,类是 C# 中的一种结构,用于在程序中模拟现实生活的对象 成员变量表示对象的特征 方法表示对象可执行的操作 如果类中未定义构造函数,则由运行库提供默认构造函数 析构函数不能重载,并且每个类只能有一个析构函数 可以根据不同数量的参数或不同数据类型参数对方法进行重载,不能根据返回值进行方法重载 命名空间用来界定类所属的范围,类似于Java中的包,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报