.NET C# Web开发学习之路(17)—— 类(Class)
文章目录
- 什么是类
- 类修饰符
- 构造函数
- 析构函数
什么是类?
类是一种数据结构,可以包含数据成员(常量和域)、函数成员(方法、属性、事件、索引器、运算符、构造函数和析构函数)和嵌套类型等。类是对象在面向对象编程语言中的反映,是相同对象的集合。类描述了一系列在概念上有相同含义的对象,并为这些对对象统一定义了编程语言上的属相和方法。
在C#中,类使用关键字class来声明。例子:声明一个Car类。
public class Car
{
public int number;
public int color;
public string brand;
}
类修饰符
在上面声明的Car类中,public是类的修饰符。常用的类修饰有:
- new:仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。
- public :不限制对该类的访问
- protected:只能从其所在类和所在类的子类进行访问
- internal:只有其所在类才能访问
- private:只有在.NET中的应用程序或者库才能访问
- abstract:抽象类,不允许建立类的实例。
- sealed:密封类,不允许被继承。
类定义中可以使用的访问修饰符组合
- none or internal:类只能在当前程序中访问
- abstract or internal:类只能在当前程序中访问,不能实例化,只能继承。
- public abstract:类可以在任何地方访问,不能实例化,只能继承
- sealed or internal sealed:类只能在当前程序中访问,不能派生,只能实例化
- public sealed:类可以在任何地方访问,不能派生,只能实例化
类的默认访问修饰符
- 构造函数默认为public访问修饰符。
- 析构函数不能显示使用访问修饰符且默认为private访问修饰符。
- 类的成员默认访问修饰符为private;
构造函数
构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,通常用于初始化新对象的数据成员。
public class Person
{
public string name;
public string sex;
public int age;
public Person()
{
name = "Bob";
sex = "Man";
age = 22;
}
}
static void Main(string[] args)
{
Person per = new Person();
Console.WriteLine("Name:{0},Sex:{1},Age:{2}",per.name,per.sex,per.age);
}
运行结果为:
Name:Bob,Sex:Man,Age:22
析构函数
析构函数是类的一个特殊的成员函数。析构函数的名称是在类的名称前面加上“~”作为前缀,没有返回值,不带任何参数。
析构函数用于在某个类被认为不在有效符合析构条件时(调用完毕、关闭程序等),.NET Framework类库的垃圾回收功能就会调用该类的析构函数实现垃圾回收。
public class Person
{
~Person()
{
Console.WriteLine("析构函数自动调用");
}
}
static void Main(string[] args)
{
Person per = new Person();
}
运行结果为:
析构函数自动调用
一个类只能有一个析构函数且无法调用,它是被自动调用的