C# 类和对象
本文关键字:对象 | 更新日期: 2023-09-12 17:37:49
类就像具有某些属性和功能的特定对象的蓝图。 例如,汽车应该具有一些属性,例如四个轮子、两个或更多门、转向系统、挡风玻璃等。 它还应该具有一些功能,例如启动,停止,运行,移动等。 现在,任何具有这些属性和功能的对象都是汽车。 在这里,汽车是一个定义一些特定属性和功能的类。每辆汽车都是汽车类的对象。 你可以说你拥有的汽车是汽车类的对象。
同样,在面向对象的编程中,类定义一些属性、字段、事件、方法等。类定义数据类型及其对象将具有的功能。
定义类
在 C# 中,可以使用 class 关键字定义类。 让我们定义一个名为"学生"的类。
Example: Define a Class
class Student
{
}
类可以包含一个或多个构造函数、字段、方法、属性、委托和事件。它们称为类成员。 类及其成员可以具有访问修饰符(如公共、私有、受保护和内部),以限制来自程序其他部分的访问。
让我们向Student
类添加不同的成员。
field
一个类可以有一个或多个字段。它是一个类级变量,它包含一个值。通常,字段成员应具有与属性一起使用的专用访问修饰符。
Example: Field
class Student
{
public int id;
}
Property
属性使用资源库和 getter 封装私有字段,以分配和检索基础字段值。
Example: Property
class Student
{
private int id;
public int StudentId
{
get { return id; }
set { id = value; }
}
}
在上面的示例中,id
是无法直接访问的私有字段。只能使用 StudentId
属性访问它。
get{ }
返回基础字段的值,set{ }
将值分配给基础字段id
。
您还可以在 get 和 set 中应用一些其他逻辑,如以下示例所示。
Example: Property in C#
private int id;
public int StudentId
{
get { return id; }
set {
if (value > 0)
id = value;
}
}
自动实现的属性
从 C# 3.0 开始,如果您不想在 getter 或 setter 中应用某些逻辑,则属性声明变得容易。使用自动实现的属性,无需声明基础私有字段。 C# 编译器将在 IL 代码中自动创建它。
Example: Auto-implemented Property
class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
在上面的示例中,编译器将在内部创建FirstName
和LastName
的后备私有字段。这加快了开发时间和代码可读性。
Method
方法可以包含一个或多个要作为单个单元执行的语句。方法可能会也可能不会返回值。方法可以有一个或多个输入参数。
Syntax
[access-modifier] return-type MethodName(type parameterName1, type parameterName2,...)
{
}
下面定义返回两个数字之和的 Sum
方法。
Example: C# Method
public int Sum(int num1, int num2)
{
var total = num1 + num2;
return total;
}
以下方法不返回任何内容,也没有任何参数。返回类型为 void
。
Example: C# Method
public void Greet()
{
Console.Write("Hello World!");
}
下面定义 Student
类中的 GetFullName()
方法。
Example: Method
class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string GetFullName()
{
return FirstName + " " + LastName;
}
}
构造函数
构造函数是一种特殊类型的方法,将在创建类的实例时自动调用。
构造函数是通过使用访问修饰符和类名<access-modifier> <class-name>(){ }
定义的。
Example: Constructor
class Student
{
public Student()
{
//constructor
}
}
- 构造函数名称必须与类名相同。
- 构造函数可以是公共的、私有的或受保护的。
- 构造函数不能返回任何值,因此不能有返回类型。
- 一个类可以有多个具有不同参数的构造函数,但只能有一个无参数构造函数。
- 如果未定义构造函数,C# 编译器将在内部创建它。
类的对象
可以创建类的一个或多个对象。每个对象可以具有不同的属性和字段值,但方法和事件的行为相同。
在 C# 中,可以使用 new
关键字创建类的对象,并将该对象分配给类类型的变量。
例如,下面创建 Student
类的对象,并将其分配给 Student
类型的变量。
Example: Create an Object of a Class
Student mystudent = new Student();
现在,您可以使用object.MemberName
表示法访问类的公共成员。
Example: Access Members of a Class
Student mystudent = new Student();
mystudent.FirstName = "Steve";
mystudent.LastName = "Jobs";
mystudent.GetFullName();
您可以创建具有不同属性和字段值的类的多个对象。
Example: Create Multiple Objects of a Class
Student mystudent1 = new Student();
mystudent1.FirstName = "Steve";
mystudent1.LastName = "Jobs";
Student mystudent2 = new Student();
mystudent2.FirstName = "Bill";
mystudent2.LastName = "Gates";