类是面向对象编程的3个主要特征(封装,继承,多态)的基础。
封装的目的是隐藏细节,组合数据和方法。比如一个可以共用的方法。在面向对象编程中,使类的内部的工作机制不被暴露,减少了调用者对数据进行不恰当修改的概率。
继承是指基类派生一个子类。
多态性意味着一个方法或类型可以具有多种形式的实现,比如在基类中的一个Play()方法,在多态性的帮助下,不同的类型会有自己独特的实现方法。
1.1类的定义和实例化
类定义了对象在实例化的时候看起来像什么样子,对象是类的实例。new的作用只是实例化对象,而不是分配内存。内存分配和回收是“”运行时”的细节。
1.2this关键字
在c#中,为了显示指出当前访问的字段或者方法在包容类中的实例成员,可以使用this关键字。
有时候,需要使用this传递当前正在执行的对象的引用。
1.3访问修饰符
public,private,protected,internal,protected internal。
1.4属性
属性就相当于是一种带有set和get方法的一个方法,而它与类中的字段的赋值和取值又是息息相关的。
属性是一种用于访问对象或类的特性的成员。
属性有访问器,这些访问器指定在他们的值被读取或者写入时所需要执行的语句。
我们知道的访问器有get访问器和set访问器两种
提供属性验证,比如:
class Program { static void Main(string[] args) { Ce c = new Ce(); c.Code = "23"; Console.WriteLine("真实" + c.Code); Console.ReadKey(); } } public class Ce { public string name; /// <summary> /// 设置一个不能被外界直接访问的字段code,但是可以其属性进行设置。 /// </summary> private string code; /// <summary> /// 必须设置一个单独的方法来给code字段设置属性验证。 /// 这是code字段的属性方法。 /// </summary> public string Code { get { return code; } set { if (value == null) { //Console.Write("1-"+value); } else { // Console.Write("2-"+value); code = value; } } } }
1.5对象初始化器
集合初始化器:
class Program { static void Main(string[] args) { List<Ce> list = new List<Ce>() { new Ce("1"), new Ce("2") }; // Console.WriteLine("真实" + ); Console.ReadKey(); } } public class Ce { public string name; public Ce(string name) { this.name = name; } }
高级主题:终结器
构造器定义了在类的实例化过程中发生的事情。为了定义在对象销毁过程中发生的事情,c#提供了终结器。