字段(Fields)
- 定义:存储对象状态的变量。
- 作用域:可以是
public
、private
、protected
、internal
等。 - 示例:
class Person
{
private string name; // 私有字段
public int age; // 公有字段
}
方法(Methods)
- 定义:定义对象行为的函数。
- 参数:可以接收参数和返回值。
- 示例:
class Person
{
public void Introduce()
{
Console.WriteLine("Hello, I am a person.");
}
}
属性(Properties)
- 定义:提供字段的访问器。
- 特性:通过
get
和set
访问器控制读写权限。 - 示例:
class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
静态类与非静态类的区别:
静态类:
- 不能实例化,只包含静态成员;
- 用于封装全局功能和常量。
示例:
static class Ulity()
{
public static int add(int a,int b) => a+b;
}
非静态类:
- 可实例化,包含静态成员和实例成员;
- 用于定义具体的对象和其行为。
示例:
class Person
{
public string Name;
public void introduce() => Console.WriteLine($"hello,my name is {Name}");
}
构造函数:
- 初始化对象状态的方法;
- 与类同名,无返回值。
示例:
class Person
{
public string Name { get; set; }
// 构造函数
public Person(string name)
{
Name = name;
}
}
析构函数:
- 定义:清理对象资源的方法。
- 特性:与类同名,前面加
~
符号,无参数和返回值。 - 使用场景:用于释放非托管资源。
- 示例:
class Person
{
public string Name { get; set; }
// 析构函数
~Person()
{
// 资源清理代码
}
}
示例整合:
using System;
class Person
{
// 字段
private string name;
public int age;
// 属性
public string Name
{
get { return name; }
set { name = value; }
}
// 构造函数
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
// 方法
public void Introduce()
{
Console.WriteLine($"Hello, my name is {name} and I am {age} years old.");
}
// 析构函数
~Person()
{
Console.WriteLine($"Person {name} is being destroyed.");
}
}
static class MathUtility
{
public static int Add(int a, int b) => a + b;
}
class Program
{
static void Main()
{
Person person = new Person("Alice", 30);
person.Introduce();
int result = MathUtility.Add(5, 3);
Console.WriteLine($"5 + 3 = {result}");
}
}
总结
- 字段:存储对象状态。
- 方法:定义对象行为。
- 属性:通过
get
和set
访问器控制字段的读写。 - 静态类:不能实例化,只包含静态成员,常用于工具类。
- 非静态类:可以实例化,包含实例成员和静态成员。
- 构造函数:初始化对象状态。
- 析构函数:清理对象资源。