3.2C#的类(Classes)、成员(Members)、构造函数(Constructor)、对象(Object)、继承(Inheritance)

Object 类是 C# 语言中最原始、最重要的类,是所有类的“祖先”,每个 C# 类都是它的子类,它实现了每个类都必须具有的基本方法。

1.类声明

  • 类的特性和修饰符
  • 类的名称
  • 基类(从基类继承时)
  • 接口由该类实现。
  • 类主体(由在分隔符 { 和 } 内编写的成员声明列表组成)
public class Point
{
    public int X { get; }
    public int Y { get; }
    
    public Point(int x, int y) => (X, Y) = (x, y);
}

2.成员(Members)

class 的成员要么是静态成员,要么是实例成员。 静态成员属于类,而实例成员则属于对象(类实例)。

下表列出类或结构中可包含的成员类型:

成员描述
字段字段是在类范围声明的变量。 字段可以是内置数值类型或其他类的实例。 例如,日历类可能具有一个包含当前日期的字段。
常量常量是在编译时设置其值并且不能更改其值的字段。
属性属性是类中可以像类中的字段一样访问的方法。 属性可以为类字段提供保护,以避免字段在对象不知道的情况下被更改。
方法方法定义类可以执行的操作。 方法可接受提供输入数据的参数,并可通过参数返回输出数据。 方法还可以不使用参数而直接返回值。
事件事件向其他对象提供有关发生的事情(如单击按钮或成功完成某个方法)的通知。 事件是使用委托定义和触发的。
运算符重载运算符被视为类型成员。 重载运算符时,将其定义为类型中的公共静态方法。 有关详细信息,请参阅运算符重载。
索引器使用索引器可以用类似于数组的方式为对象建立索引。
构造函数构造函数是首次创建对象时调用的方法。 它们通常用于初始化对象的数据。
终结器C# 中很少使用终结器。 终结器是当对象即将从内存中移除时由运行时执行引擎调用的方法。 它们通常用来确保任何必须释放的资源都得到适当的处理。
嵌套类型嵌套类型是在其他类型中声明的类型。 嵌套类型通常用于描述仅由包含它们的类型使用的对象。

3.构造函数和析构函数(Constructor)

构造方法是在创建类的对象时执行的,而析构方法则是在垃圾回收、释放资源时使用的。

C# 支持实例和静态构造函数。 实例构造函数 是实现初始化类实例所需执行的操作的成员。 静态构造函数是实现在首次加载类时初始化类本身所需执行的操作的成员。

构造函数的声明方式与方法一样,都没有返回类型,且与所含类同名。 如果构造函数声明包含 static 修饰符,则声明的是静态构造函数。 否则,声明的是实例构造函数。

实例构造函数可重载并且可具有可选参数。 例如,MyList<T> 类声明一个具有单个可选 int 参数的实例构造函数。 实例构造函数使用 new 运算符进行调用。 下面的语句使用包含和不包含可选自变量的 MyList 类构造函数来分配两个 MyList<string> 实例。

MyList<string> list1 = new MyList<string>();
MyList<string> list2 = new MyList<string>(10);

与其他成员不同,实例构造函数不会被继承。 类中只能包含实际上已在该类中声明的实例构造函数。 如果没有为类提供实例构造函数,则会自动提供不含参数的空实例构造函数。

//构造函数
访问修饰符  类名 (参数列表)
{
    语句块;
}
//析构函数
~类名()
{
    语句块;
}

4.对象(Object)

类实例是使用 new 运算符进行创建,此运算符为新实例分配内存,调用构造函数来初始化实例,并返回对实例的引用。

类名 对象名 = new 类名();

当无法再访问对象时,对象占用的内存会被自动回收。 没有必要也无法在 C# 中显式解除分配对象。

对象名.属性名;
对象名.方法名;

5.继承(Inheritance)

类声明可以指定基类。 在类名和类型参数后面加上冒号和基类的名称。

public class Point3D : Point
{
    public int Z { get; set; }
    
    public Point3D(int x, int y, int z) : base(x, y)
    {
        Z = z;
    }
}

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/csharp/4025.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注