C#基础 [05] 类和对象
一、类
1.类概述
从本质上讲,类是一种用户自定义的能够存储数据并且执行代码的数据结构。从形式上来说,类是一种构造,通过使用该构造,我们可以将程序的数据和功能通过一定的逻辑关系组织为它包含的数据项和函数的封装集合,它就像一个蓝图、一个模板,它定义类的数据和行为。
2.声明类
声明一个类,其实就是定义新类的特征和功能,它创建了一个用于创建实例的模板。
1).声明类的语法:
类使用class关键字声明,一般的类具有如下结构:
[访问修饰符] class 类名
{
成员;
......
}
其中,从“类名”后面的开大括号开始,到最后的闭大括号之间的内容,称为类主体。
2).下面是一个声明类的实例。
1 // 类声明:类使用class关键字进行声明 2 class Person 3 { 4 // Fields 5 // 字段命名:"_"+Camel 6 private string _name; 7 8 // Constructor(构造函数) 9 public Person() 10 { 11 this.Name = "unknow"; 12 } 13 14 // Methods 15 /// <summary> 16 /// 设置新名称 17 /// </summary> 18 /// <param name="newName"></param> 19 public void SetName(string newName) 20 { 21 this.Name = newName; 22 } 23 24 // Properties 25 // 属性命名:Pascal 26 public string Name 27 { 28 get { return _name; } 29 set { _name = value; } 30 } 31 32 // 嵌套的类声明 33 class MyClass 34 { 35 public static string GetName(string name) 36 { 37 return name; 38 } 39 40 } 41 }
3.类成员简介
类主体包括类的所有成员。按照成员的功能,可以把类的成员分为以下两种:
1).数据成员
数据成员用于存储与类或类的实例相关的数据。它通常模拟该类所表示的现实世界中事物的特性,比如人的姓名。
2).函数成员
函数成员用于执行代码。它通常模拟该类所表示的现实世界中事物的功能和操作,比如人说话。
3).成员列表。
一个C#类可以包括任意数目的数据成员和函数成员,而且成员可以是以下9种可能的成员类型的任意组合。
二、对象
1.对象概述
类定义的作用类似于蓝图,指定该类型可以进行哪些操作。 从本质上说,类是一种抽象,而对象是基于类的具体实体,对象是按照此蓝图分配和配置的内存块。 程序可以创建同一个类的多个对象。 对象也称为实例,可以存储在命名变量中,也可以存储在数组或集合中。 使用这些变量来调用对象方法及访问对象公共属性的代码称为客户端代码。 在 C# 中,典型的程序由动态交互的多个对象组成,运行中的程序其实就是一组相互作用的对象。
2.创建对象
创建类的对象其实是分为两步完成的:第一步,声明类类型的变量;第二步:为数据分配内存。
1).声明类类型的变量
类是一种引用类型,在创建类的实例时,要为数据的引用和实际数据两者都要分配内存,而数据的引用就是保存在一个该类类型的变量中。所以,在创建类的实例时,先从声明一个类类型的变量开始。
1 // 创建类型的实例(类类型的变量),值为null 2 Person p;
2).为数据分配内存
上一步中,为类类型的变量所分配的内存是用来保存实例的引用的,而不是保存实例的具体数据的,要为实例数据分配内存,就要使用new运算符,组成一个对象创建表达式。
1 // 为数据分配内存 2 p = new Person();
3).结合步骤
在实际当中,我们更多的是将以上两步结合起来。
1 // 结合步骤 2 Person p = new Person();
4).将同一类型的第二个对象分配给第一个对象
由于类是引用类型,因此类对象的变量引用该对象在托管堆上的地址。 如果将同一类型的第二个对象分配给第一个对象,则两个变量都引用该地址的对象。
1 // 3.将同一类型的第二个对象分配给第一个对象,则两个变量都引用该地址的对象。 2 Person p1 = person; 3 p1.SetName("Scott"); 4 Console.WriteLine(p1.Name); 5 Console.ReadKey();