用《叩响C#之门》复习C#基础知识 第七章 面向对象编程:类和对象(一)

1、C#中常称类的成员变量为Field,中文翻译为“字段”,因此成员变量在有些书中也被称为字段,要注意这点。成员函数(Member Function)和成员方法(Method)其实是一回事。类的功能由类的成员实现,类的成员分两种,一是成员变量,用于表示类的属性;一是成员方法,用于实现类的行为,这类方法(或叫函数)一般起辅助作用,所以有时也称为辅助函数(Helper)。

 

类通过公有成员实现接口,公有成员用关键字public声明。类通过私有成员实现封装,私有成员用关键字private声明。

把成员变量或成员方法标记为private,可以有效确保它们只在类的内部工作,编译器不允许类以外的任何代码访问他们,从而确保这些数据不被外界所修改,大大增加了程序的健壮性。另外也要保持公有成员,对类内部进行优化都不会对外界产生影响。设计良好的类,既能保持封装性,又能向外界提供足够的接口。

 

2、定义的类实际上相当于定义了新的数据类型,要使用该类型,就要先定义该类型的变量——对象。通过new运算符创建对象,执行后,系统为对象分配内存空间,并通过类的构造函数初始化类的成员变量(每个类都有一个默认的与类同名的构造函数),创建对象的过程成为类的实例化。

如果创建了同一个类的多个对象,则它们共享函数成员代码,但不共享数据成员,每个对象都会在内存中开辟新的空间来存储自己的数据成员。

 

3、专门用来读写成员变量的函数成为访问器(Assessor),为了符合人们的思维习惯,C#设计了一种特殊的语法——属性(Property)。在属性中定义了get和set两个访问器,get访问器用来读取变量的值,set访问器用来设置变量的值。每个属性背后都对应着一个变量,一般让属性和对应的变量同名,只是将首字母大写。

属性的定义其实可以用以下说明:

访问修饰符 static 类型 属性名    

{

   get{}

   set{}

}

其中static为可选,默认访问修饰符同成员的默认访问修饰符,都是private。  类的默认访问修饰符为internal。

4、系统的默认构造函数初始化所有成员变量:如,整形变量初始化为0,实型变量初始化为0.0,布尔型变量初始化为false,字符串变量初始化为null(空),引用类型变量都被初始化为null(空),字符型char初始化为’\0’。

构造函数是一种特殊的函数,它必须与类同名,并且没有返回类型。当我们自定义了构造函数后,默认构造函数就失效了,要想继续使用无参数的构造函数,就必须显示定义无参数的构造函数。

自定义构造函数的函数体也可以为空,这时系统会用默认值初始化类的成员变量。

 

5、析构函数和垃圾回收

不用的对象要及时删除以释放内存空间。C#中用析构函数来销毁对象,释放对象所占用的内存空间,但由于定义类时,编译器会自动生成一个默认的析构函数,所以一般情况下没有必要编写析构函数,而且由于C#设计了非常完善的垃圾回收机制,一般也不用向析构函数里添加代码。析构函数通常用来释放对象使用的非托管资源!

析构函数也与类同名,只要在函数名前加~,他不能带任何参数,也没有返回值。

当对象即将离开作用域时,系统自动调用对象的析构函数,释放对象所占用的资源。然而,在大型程序中,有时虽然不用某对象了,但离作用域结束还有相当长的时间,在这期间,对象仍然占用内存,浪费资源。C#专门设计了一套回收资源的机制——垃圾回收器。当垃圾回收器确定某个对象不再使用时,会自动删除该对象,释放内存空间。在这套机制下,内存自动回收,无需人工干预。总之,在C#中删除对象的工作由垃圾回收器负责完成,析构函数通常用来释放对象使用的非托管资源。

注意:垃圾回收器的运行时间具有不确定性,我们无法预计垃圾回收器什么时候运行,因此也无法预测什么时候会删除无用对象,有可能立即删除,也可能要过一段时间才删除。必要时,可以通过System.GC.Collect()方法强迫垃圾回收器在某个时间运行,但这对性能会有一定的影响。

转载于:https://www.cnblogs.com/365up/archive/2009/10/14/1583545.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值