收藏 分享(赏)

第九章(1) 定义类_构造函数.ppt

上传人:hwpkd79526 文档编号:9932634 上传时间:2019-09-20 格式:PPT 页数:21 大小:67KB
下载 相关 举报
第九章(1) 定义类_构造函数.ppt_第1页
第1页 / 共21页
第九章(1) 定义类_构造函数.ppt_第2页
第2页 / 共21页
第九章(1) 定义类_构造函数.ppt_第3页
第3页 / 共21页
第九章(1) 定义类_构造函数.ppt_第4页
第4页 / 共21页
第九章(1) 定义类_构造函数.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、第九章 类,-构造函数,C# 中类的定义方法,类的使用 在 C# 中,我们使用 new 运算符来创建类的对象。,类名 对象名 = new 类名();,C# 中类的定义方法,类定义的示例:,class 人 public string 姓名; public string 性别; public string 年龄;public void 吃饭(食物 食物表) foreach (食物 一份食物 in 食物表) if (一份食物 = 我爱吃的) Console.WriteLine(“0 吃了 1!”, 姓名, 一份食物); else Console.WriteLine(“0 扔了 1!”, 姓名, 一份

2、食物); ,C# 中类的定义方法,类的使用示例:,人 小强 = new 人();小强.姓名 = “小强“;小强.性别 = “男“;小强.年龄 = 20;小强.吃饭(new 食物 食物.红烧肉, 食物.生发药 );小强.睡觉(16);小强.玩(“棒球“);,让它能工作起来,要让之前的示例能工作起来,我们还需要指定小强喜欢吃些什么,那么我们可以在“人”这个类中加入一个新的成员爱吃的食物。,class 人 public string 姓名; public string 性别; public int 年龄;public 食物 爱吃的食物; ,让它能工作起来,我们在建立人小强这个对象时,就可以指定他爱吃

3、的食物了!,人 小强 = new 人();小强.姓名 = “小强“; 小强.性别 = “男”; 小强.年龄 = 20;小强.爱吃的食物 = new 食物 食物.红烧肉, 食物.生发药 ;小强.吃饭(new 食物 食物.红烧肉,食物.生发药 );,让它能工作起来,想想,如果忘了指定小强爱吃的东西,那会怎么样?这样下去的话,小强会怎么样 ?,人 小强 = new 人();小强.吃饭(new 食物 食物.红烧肉,食物.生发药 );,小强 扔了 红烧肉! 小强 扔了 生发药!,他会被饿死的! 而且最可悲的是他到死还是个秃子!,拯救计划,我们要拯救小强! 怎么才能防止漏填“爱吃的食物”字段这种情况的发生

4、呢?,构造函数,定义对象,也就是要为对象分配空间,也会为成员变量分配一块空间。每次创建对象时都需进行初始化工作,这是一项繁琐的工作,因此定义了构造函数。构造函数是特殊的方法,当用new命令每生成一个实例时,构造函数都会自动执行一次,而不用开发人员手工完成。,C# 中类的定义方法,构造函数和析构函数 构造函数: 构造函数是指在创建类的对象时自动执行的函数,由它负责对类的对象进行初始化。 析构函数: 析构函数是指在类的对象销毁时自动执行的函数,由它负责对类的对象进行消销毁。,C# 中类的定义方法,构造函数的特点: 构造函数其实就是定义这样的函数,它的名字与类的名字相同,并且不用定义返回类型,因为构

5、造函数是不能返回值的。 除以上不同之处外,其它都和成员函数的定义一样,它也可以有参数,并且也可以重载。,C# 中类的定义方法,构造函数的特点: 每个类至少有一个构造方法,如果没有定义构造方法,则编译系统会自动产生一个无参数的默认构造方法,这个构造方法不执行任何代码。 对于简单的类来说,默认的构造函数已足够用,但对于复杂的程序而言通常不会这样做。一旦定义了自己的构造函数,默认的构造函数就不再使用了。,C# 中类的定义方法,构造函数的调用: 类的构造函数是在创建类的对象时自动被调用的。,类名 对象名 = new 类名(参数表);,构造函数使用示例,static void Main(string a

6、rgs) 人 王秃子=new 人(“王秃子“,“男“,20);Console.WriteLine(“姓名:0 性别:1 年龄:2“, 王秃子.姓名, 王秃子.性别, 王秃子.年龄);王秃子.睡觉(16);王秃子.运动(“棒球“); ,构造函数使用示例,class 人public string 姓名;public string 性别;public int 年龄;public 人(string name, string sex, int age)姓名 = name;性别 = sex;年龄 = age;public void 睡觉(int time)Console.WriteLine(“睡0个小时“

7、, time);public void 运动(string type)Console.WriteLine(“喜欢0“, type);,构造函数重载,可以通过为几个构造方法提供不同的参数表的办法来重载构造方法。当发出new 对象名 (参数)命令时,传递到new语句中的参数表将决定采用哪个构造方法。,构造函数重载示例,class Employeeprivate String name;private int salary;public Employee(String n, int s) name = n;salary = s;Console.WriteLine(“name=“ + n + “, s

8、alary=“ + s);public Employee(String n)Console.WriteLine(“name=“ + n+“, salary Unknown“);public Employee()Console.WriteLine(“ Unknown “);,构造函数重载示例,static void Main(string args)Employee E1=new Employee(“Mickle“,2);Employee E2=new Employee(“Mary“);Employee E3=new Employee();Console.WriteLine(“E2=“+E2);

9、Console.WriteLine(“E3=“ + E3);,我们的拯救计划,构造函数的定义示例:,class 人 public string 姓名; public string 性别; public string 年龄;public 食物 爱吃的食物;public 人(string 姓名, string 性别, int 年龄, 食物 爱吃的食物) this.姓名 = 姓名;this.性别 = 性别;this.年龄 = 年龄;this.爱吃的食物 = 爱吃的食物; ,我们的拯救计划,我们在建立人小强这个对象时,就可以使用构函数来指定他爱吃的食物了!,人 小强 = new 人(“小强”, “男”, 20, new 食物 食物.红烧肉, 食物.生发药 );小强.吃饭(new 食物 食物.红烧肉,食物.生发药 );,小强 吃了 红烧肉! 小强 吃了 生发药!,拯救成功!,

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

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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