C# 是一种面向对象的程序。在面向对象编程(OOP)中,我们通过将复杂问题分解为对象来解决。
要使用对象,我们需要执行以下活动:
- 创建类
- 从类创建对象
C# 类
在我们学习对象之前,我们需要了解类的作用。类是对象的蓝图。
我们可以将类视为房子的草图(原型)。它包含有关楼层、门、窗等的详细信息。我们可以根据这些描述建造房子。房子是对象。
就像可以从草图建造许多房子一样,我们可以从一个类创建许多对象。
在 C# 中创建类
我们使用 `class` 关键字来创建对象。例如:
class ClassName {
}
在这里,我们创建了一个名为 `ClassName` 的类。一个类可以包含:
- 字段 - 用于存储数据的变量
- 方法 - 用于执行特定任务的函数
让我们看一个例子,
class Dog {
//field
string breed;
//method
public void bark() {
}
}
在上面的例子中:
- `ClassName` - 类名
- `breed` - 字段
- `bark()` - 方法
注意:在 C# 中,类内的字段和方法称为类的成员。
C# 对象
对象是类的实例。假设我们有一个 `Dog` 类。斗牛犬、德国牧羊犬、巴哥犬都是该类的对象。
创建类的对象
在 C# 中,创建类对象的步骤如下。
ClassName obj = new ClassName();
这里,我们使用 `new` 关键字来创建类的对象。并且,`obj` 是对象的名称。现在,让我们创建一个 `Dog` 类的对象。
Dog bullDog = new Dog();
现在,`bullDog` 对象可以访问 `Dog` 类的字段和方法。
使用对象访问类成员
我们使用对象的名称和 `.` 运算符来访问类的成员。例如:
using System;
namespace ClassObject {
class Dog {
string breed;
public void bark() {
Console.WriteLine("Bark Bark !!");
}
static void Main(string[] args) {
// create Dog object
Dog bullDog = new Dog();
// access breed of the Dog
bullDog.breed = "Bull Dog";
Console.WriteLine(bullDog.breed);
// access method of the Dog
bullDog.bark();
Console.ReadLine();
}
}
}
输出
Bull Dog Bark Bark !!
在上面的程序中,我们从 `Dog` 类创建了一个名为 `bullDog` 的对象。请注意,我们使用了对象名称和 `.`(点运算符)来访问 `breed` 字段
// access breed of the Dog
bullDog.breed = "Bull Dog";
以及 `bark()` 方法
// access method of the Dog
bullDog.bark();
创建类的多个对象
我们可以从同一个类创建多个对象。例如:
using System;
namespace ClassObject {
class Employee {
string department;
static void Main(string[] args) {
// create Employee object
Employee sheeran = new Employee();
// set department for sheeran
sheeran.department = "Development";
Console.WriteLine("Sheeran: " + sheeran.department);
// create second object of Employee
Employee taylor = new Employee();
// set department for taylor
taylor.department = "Content Writing";
Console.WriteLine("Taylor: " + taylor.department);
Console.ReadLine();
}
}
}
输出
Sheeran: Development Taylor: Content Writing
在上面的示例中,我们从 `Employee` 类创建了两个对象:`sheeran` 和 `taylor`。
在这里,您可以看到两个对象都有自己的 `department` 字段版本,但值不同。
在另一个类中创建对象
在 C# 中,我们也可以在另一个类中创建类的对象。例如:
例如,
using System;
namespace ClassObject {
class Employee {
public string name;
public void work(string work) {
Console.WriteLine("Work: " + work);
}
}
class EmployeeDrive {
static void Main(string[] args) {
// create Employee object
Employee e1= new Employee();
Console.WriteLine("Employee 1");
// set name of the Employee
e1.name="Gloria";
Console.WriteLine("Name: " + e1.name);
//call method of the Employee
e1.work("Coding");
Console.ReadLine();
}
}
}
输出
Employee 1 Name: Gloria Work: Coding
在上面的示例中,我们有两个类:`Employee` 和 `EmployeeDrive`。在这里,我们在 `EmployeeDrive` 类中创建 `Employee` 类的对象 `e1`。
我们使用 `e1` 对象从 `EmployeeDrive` 访问 `Employee` 类的成员。这是可能的,因为 `Employee` 类中的成员是 `public` 的。
这里,`public` 是一个访问修饰符,意味着类成员可以从任何其他类访问。要了解更多信息,请访问 C# 访问修饰符。
为什么需要对象和类?
对象和类帮助我们将一个大型项目分解为更小的子问题。
假设您想创建一个游戏,其中有数百个敌人,每个敌人都有 `health`、`ammo` 等字段,以及 `shoot()` 和 `run()` 等方法。
使用 OOP,我们可以创建一个具有所需字段和方法的单个 `Enemy` 类。然后,我们可以从中创建多个敌人对象。
每个敌人对象都将拥有自己的 `health` 和 `ammo` 字段版本。并且,它们可以使用通用的 `shoot()` 和 `run()` 方法。
现在,与其考虑变量和方法形式的项目,不如考虑对象形式的项目。
这有助于管理复杂性,并使我们的代码可重用。