类(Class)
定义与作用: 类是C#中的一种用户自定义类型,它是面向对象编程的核心元素之一。类是一种蓝图或者模板,它描述了一类具有相同特性和行为的事物。类通常包含以下部分:
字段(Fields):类中直接定义的变量,用于存储对象的状态或属性,如:
private string _name;
属性(Properties):提供对字段的封装访问,常用于对外暴露对象的状态,同时可以加入验证或其他逻辑:
public string Name { get { return _name; } set { _name = value; } }
方法(Methods):定义对象的行为,即类所能执行的操作:
public void Eat(string food) { Console.WriteLine($"{Name} is eating {food}."); }
构造函数(Constructors):特殊的方法,在创建类的新实例时自动调用,用于初始化对象的状态:
public Dog(string name) { _name = name; }
事件(Events):允许类向外界发送通知,其他代码可以通过订阅事件来响应类内部发生的特定情况:
public event EventHandler Barked; protected virtual void OnBarked() { Barked?.Invoke(this, EventArgs.Empty); }
索引器(Indexers):使类表现得像数组一样,可以通过下标访问或修改类的成员:
public string this[int index] { get => Tricks[index]; set => Tricks[index] = value; } private List<string> Tricks { get; set; } = new List<string>();
抽象方法和虚方法(Abstract and Virtual Methods):用于实现多态性,抽象方法在抽象类中定义但不提供具体实现,子类必须重写;虚方法允许子类重写父类的行为:
public abstract void PerformTrick(); public virtual void Sleep() { Console.WriteLine($"{Name} is sleeping."); }
对象(Objects / Instances)
创建与作用: 对象是类的实例,是根据类的蓝图创建的具体实体。当你使用new
关键字时,就会在内存中为对象分配空间,并通过构造函数初始化对象的属性。
// 创建Dog类的一个对象实例
Dog myDog = new Dog("Fido");
// 设置或获取对象的属性
myDog.Name = "Rex"; // 通过属性改变对象的状态
string dogName = myDog.Name; // 读取对象的状态
// 调用对象的方法
myDog.Eat("bones"); // 执行对象的行为
// 订阅和处理事件
myDog.Barked += Dog_Barked;
// 虚方法和抽象方法的多态性示例
Animal animal = new Dog("Buddy");
animal.PerformTrick(); // 如果Animal是抽象类且有PerformTrick抽象方法,Dog会覆盖此方法
private void Dog_Barked(object sender, EventArgs e)
{
Console.WriteLine($"The dog has barked!");
}
通过类和对象,C#程序可以有效地组织数据和功能,使得代码易于维护和扩展,同时利用继承、封装和多态等面向对象的特性,提高代码的复用性和灵活性。