学习笔记之C#类的构造方法

一、类的实例化

Student zsStudent = new Student();

在等号前,Student为类名, zsStudent为实例名;Student zsStudent相当于定义了一个变量;

等号后,new才是实实在在为学生对象创建并分配内存空间Student()是在调用构造方法

经典示例:

Vector x,y;

x = new vector();

x.Value = 30;

y = x;

Console.WriteLine(y.Value);//会输出30

y.Value = 50;

Console.WriteLine(x.Value);//会输出50

其原因是x、y为引用类型,代码中只new(实例化)了一个对象,所以系统只给一个Vector对象分配了内存空间x、y都指向该对象,所以修改y会影响x

二、构造方法

(一)构造方法用来创建对象,并且在构造函数中对对象进行初始化

1.当我们实例化一个类时,系统会自动对这个类的属性进行初始化。

a)数字类型初始化为0(整数)/0.0(小数)

b)string类型初始化成:null

c)char类型初始化成:\0

2.使用构造方法的好处:

a)对多个属性进行赋值时,不需要重复的写实例名

b)可以保证用户在new一个对象的时候必须对某一个属性进行赋值

c)在创建对象时,对只读属性进行初始化

3.当我们定义好一个类之后,如果没有写构造方法,那么系统(即编译器)会自动给我们加上一个默认的无参数的构造方法。在这个构造方法中什么也不做,我们也看不到。

4.定义一个构造方法

a)构造方法是一个特殊的方法,它的名字和类的名字相同没有返回值。连void都可以省略不写。我们一旦手写一个构造方法后,系统原先为默认给我们的那个无参的构造方法就不会为我们添加了

b)当出现变量名相同的时候,采用就近原则,局部变量优先选择。(看变量指哪个的方法:右键,转到定义)

c)指示代词this:指当前类的、当前实例。this.name就是当前类的name字段。

5.要实例化一个类必须调用它的构造方法。一般情况下,构造方法为了初始化类的成员

(二)构造方法的重载

1.重载:在同一个类中,方法的名称相同,对应位置上的参数不同(类型不同或数量不同)

2.构造方法重载后,在类的实例化时可以输入不同版本的参数。

三、类图

(一)通用类图

1.分层

a)第一层表示类名

b)第二层表示字段和属性

“+”表示公有,“-”表示私有;冒号后面表示字段或属性的类型

c)第三次表示方法

冒号后面表示返回值的类型

二、C#类图

四、析构函数

如~Student(),也是与类名相同,但是前面加一个“~”,应用程序结束的时候肯定会调用析构函数。在C#中几乎不用,因为C#有垃圾回收机制,不需要写析构函数释放内存。

(一)定义

对象死亡之后最后使用的函数,对对象分配的内存进行清理

(二)特点

1.不能在结构中定义构造函数,只能对类使用析构函数

2.一个类只能有一个析构函数

3.无法继承和重载析构函数

4.析构函数既没有访问修饰符,也没有参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值