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

更新时间:2023-08-27 04:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

定义类_构造函数

第九章 类----构造函数 构造函数

定义类_构造函数

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}!”, 姓名, 一份食物); “ ” 姓名 一份食物 } } } }

定义类_构造函数

C# 中类的定义方法 类的使用示例:人 小强 = new 人(); 小强"; 小强.姓名 小强 小强 姓名 = "小强 小强.性别 小强 性别 = "男"; 男 小强.年龄 小强 年龄 = 20; 小强.吃饭 小强 吃饭( 吃饭 new 食物 { 食物 红烧肉 食物 生发药 } 食物[] 食物.红烧肉 食物.生发药 红烧肉, ); 小强.睡觉 小强 睡觉(16); 睡觉 小强.玩 棒球 棒球"); 小强 玩("棒球

定义类_构造函数

让它能工作起来 要让之前的示例能工作起来,我们还需 要指定小强喜欢吃些什么,那么我们可 以在“人”这个类中加入一个新的成 员——爱吃的食物。class 人 { public string 姓名 姓名; public string 性别 性别; public int 年龄; 年龄 public 食物 爱吃的食物 食物[] 爱吃的食物; }

定义类_构造函数

让它能工作起来 我们在建立人小强这个对象时,就可以 指定他爱吃的食物了!人 小强 = new 人(); 小强.姓名 = “小强“; 小强“ 小强 姓名 小强 小强.性别 小强 性别 = “男”; 男 小强.年龄 小强 年龄 = 20; 小强.爱吃的食物 食物[] 食物.红烧肉 食物.生发药 红烧肉, 小强 爱吃的食物 = new 食物 { 食物 红烧肉 食物 生发药 }; 小强.吃饭 小强 吃饭( 吃饭 new 食物 {食物 红烧肉 食物 生发药 } 食物[] 食物 红烧肉,食物 食物.红烧肉 食物.生发药 );

定义类_构造函数

让它能工作起来 想想,如果忘了指定小强爱吃的东西, 那会怎么样?人 小强 = new 人(); 小强.吃饭 小强 吃饭( 吃饭 new 食物 {食物 红烧肉 食物 生发药 } 食物[] 食物 红烧肉,食物 食物.红烧肉 食物.生发药 );

他会被饿死的! 他会被饿死的! 而且最可悲的是——他到死还是个秃子! 他到死还是个秃子! 而且最可悲的是 他到死还是个秃子红烧肉! 小强 扔了 红烧肉! 生发药! 小强 扔了 生发药!

这样下去的话,小强会怎么样 ?

定义类_构造函数

拯救计划 我们要拯救小强! 怎么才能防止漏填“爱吃的食物”字段 这种情况的发生呢?

定义类_构造函数

构造函数 定义对象,也就是要为对象分配空间, 定义对象,也就是要为对象分配空间, 也会为成员变量分配一块空间。 也会

为成员变量分配一块空间。每次创 建对象时都需进行初始化工作, 建对象时都需进行初始化工作,这是一 项繁琐的工作,因此定义了构造函数。 项繁琐的工作,因此定义了构造函数。 构造函数是特殊的方法,当用new命令每 构造函数是特殊的方法,当用 命令每 生成一个实例时, 生成一个实例时,构造函数都会自动执 行一次,而不用开发人员手工完成。 行一次,而不用开发人员手工完成。

定义类_构造函数

C# 中类的定义方法 构造函数和析构函数– 构造函数: 构造函数是指在创建类的对象时自动执行的函数, , 由它负责对类的对象进行初始化。

– 析构函数:, 析构函数是指在类的对象销毁时自动执行的函数, 由它负责对类的对象进行消销毁。

定义类_构造函数

C# 中类的定义方法 构造函数的特点: 构造函数的特点: – 构造函数其实就是定义这样的函数,它 构造函数其实就是定义这样的函数, 的名字与类的名字相同, 的名字与类的名字相同,并且不用定义 返回类型, 返回类型,因为构造函数是不能返回值 的。 – 除以上不同之处外,其它都和成员函数 除以上不同之处外, 的定义一样,它也可以有参数, 的定义一样,它也可以有参数,并且也 可以重载。 可以重载。

定义类_构造函数

C# 中类的定义方法 构造函数的特点 构造函数的特点:– 每个类至少有一个构造方法,如果没有定义 每个类至少有一个构造方法, 构造方法, 构造方法,则编译系统会自动产生一个无参 数的默认构造方法, 数的默认构造方法,这个构造方法不执行任 何代码。 何代码。 – 对于简单的类来说,默认的构造函数已足够 对于简单的类来说, 用,但对于复杂的程序而言通常不会这样做。 但对于复杂的程序而言通常不会这样做。 一旦定义了自己的构造函数, 一旦定义了自己的构造函数,默认的构造函 数就不再使用了。 数就不再使用了。

定义类_构造函数

C# 中类的定义方法 构造函数的调用:– 类的构造函数是在创建类的对象时自动被调 用的。类名(参数表 参数表); 类名 对象名 = new 类名 参数表

定义类_构造函数

构造函数使用示例static void Main(string[] args) { 王秃子=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; } pu

blic void 睡觉(int time) { Console.WriteLine("睡{0}个小时", time); } public void 运动(string type) { Console.WriteLine("喜欢{0}", type); } }

定义类_构造函数

构造函数重载 可以通过为几个构造方法提供不同的参 数表的办法来重载构造方法。 数表的办法来重载构造方法。当发出 new 对象名 (参数 命令时,传递到 参数)命令时 参数 命令时,传递到new语 语 句中的参数表将决定采用哪个构造方法。 句中的参数表将决定采用哪个构造方法。

定义类_构造函数

构造函数重载示例class Employee { private String name; private int salary; public Employee(String n, int s) { name = n; salary = s; Console.WriteLine("name=" + n + ", salary=" + 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); Console.WriteLine("E3=" + E3); }

定义类_构造函数

我们的拯救计划 构造函数的定义示例:class 人 { public public public public

string string string 食物[] 食物

姓名; 姓名 性别; 性别 年龄; 年龄; 爱吃的食物; 爱吃的食物 {

public 人(string 姓名 string 性别 int 年龄 食物 爱吃的食物 姓名, 性别, 年龄, 食物[] 爱吃的食物) this.姓名 = 姓名 姓名 姓名; this.性别 = 性别 性别 性别; this.年龄 = 年龄 年龄 年龄; this.爱吃的食物 = 爱吃的食物 爱吃的食物 爱吃的食物; } }

本文来源:https://www.bwwdw.com/article/dfmi.html

Top