Logo
Section 1 / 8

类简介

本课程通过一个示例详细讨论了类的定义以及类的声明。

导入

类简介

本课程通过一个示例详细讨论了类的定义以及类的声明。

定义

与其他面向对象编程语言一样,C# 程序的功能通过一个或多个类来实现。

类的方法和属性包含定义该类行为的代码。

可以定义多种类型的 C# 类,包括实例类(可被实例化的标准类)、静态类以及结构体。

声明类

声明类的基本结构如下:

1//方括号[]内的内容为可选,尖括号<>内的内容为必需 2[private/public/protected/internal] class <类名> [:[继承的类][,][接口名1],[接口名2],...] 3{ 4 //你的代码 5}
  • 类使用关键字 class 来定义。
  • 访问修饰符如 private 和 public 是可选的,不一定需要指定。
  • 关键字 class 后面跟一个标识符,用于命名类。
  • 可以使用 new 关键字后接类名来创建该类的实例。

不必担心现在完全理解整个语法,你会很快熟悉它。

示例

以下是一个类的例子:

1using System; 2 3class Dog 4{ 5 //类中未使用 public 修饰符定义的成员,默认为 private 6 //因此 age 是类的私有成员 7 //这意味着不能直接通过点操作符在类外部访问它 8 9 int age = 2; 10 11 public void PrintAge() 12 { 13 Console.WriteLine("Doggo 的年龄是: {0}", age); // 输出将显示数字 2 14 } 15} 16 17public class SampleExample 18{ 19 public static void Main() 20 { 21 Dog lucy = new Dog(); // 使用 new 关键字创建 Dog 类的实例 22 // lucy 是 Dog 类的一个对象 23 // 我们使用点操作符调用 Dog 类中定义的方法 24 lucy.PrintAge(); 25 } 26}

解释

  • 类 Dog 包含两个成员:
    • 一个整型变量 age
    • 一个 public void 类型的方法 PrintAge(),用于输出 age 的值。

在类中,除非显式使用 public 访问修饰符,否则成员默认为 private。因此,在上述示例中,age 默认被视为类的私有成员。

  • 在 Main 方法中,名为 lucy 的 Dog 类实例就是一个对象。
  • 使用 new 关键字创建对象。
  • 你可以拥有一个类的多个对象,就像可以有多只狗一样。例如,另一只名叫 ruffy 的狗也是该类的一个对象。

类的成员就像是每个 Dog 类型对象的“内部变量”。我们通过点操作符来访问这些对象的成员。

静态类

关键字 static 表示两层含义:

  1. 这个值不随对象变化,而是属于整个类本身。
  2. 静态属性和方法不需要实例即可访问。

当 static 用于类时,具有以下三个效果:

  • 无法创建该静态类的实例(甚至会移除默认构造函数)。
  • 类中的所有属性和方法都必须是 static 的。
  • 静态类是密封的(sealed),意味着它不能被继承。
1using System; 2 3public static class Foo 4{ 5 // 注意:这里没有构造函数,因为无法实例化 6 public static int Counter; 7 public static int GetCount() 8 { 9 return Counter; 10 } 11} 12 13public class Program 14{ 15 static void Main() 16 { 17 Foo.Counter++; // 增加 Counter 的值 18 Console.WriteLine("Counter 的值是: {0}", Foo.GetCount()); // 输出 1 19 20 // 下一行会导致编译错误,因为 Foo 类没有构造函数 21 // var foo1 = new Foo(); 22 } 23}

在下一课中,我们将讨论用于定义类时的访问修饰符。

异常处理

访问修饰符