导入
类简介
本课程通过一个示例详细讨论了类的定义以及类的声明。
定义
与其他面向对象编程语言一样,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 表示两层含义:
- 这个值不随对象变化,而是属于整个类本身。
- 静态属性和方法不需要实例即可访问。
当 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}
在下一课中,我们将讨论用于定义类时的访问修饰符。