# 第四课：方法（函数）和类

## 方法（函数）

```csharp
// 无返回值
void SayHello(string name)
{
    Console.WriteLine($"你好, {name}");
}

// 有返回值
int Add(int a, int b)
{
    return a + b;
}

// 带默认参数
void Greet(string name = "World")
{
    Console.WriteLine($"Hello, {name}");
}
```

## 方法调用

```csharp
static void Main(string[] args)
{
    SayHello("无言势");      // 调用无返回值方法
    int sum = Add(1, 2);   // 调用有返回值方法
    Console.WriteLine(sum); // 输出 3
}
```

## 类（Class）

```csharp
class Person
{
    // 字段（属性）
    public string name;
    public int age;

    // 构造函数
    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // 方法
    public void SayHi()
    {
        Console.WriteLine($"我是{name}，今年{age}岁");
    }
}
```

## 创建对象

```csharp
static void Main(string[] args)
{
    Person p = new Person("无言势", 25);
    p.SayHi();
}
```

## 访问修饰符

| 修饰符 | 访问范围 |
|--------|----------|
| `public` | 任何地方都能访问 |
| `private` | 只有本类内部能访问 |
| `internal` | 同程序集内访问 |

## 静态（static）

```csharp
class MathHelper
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

// 调用不需要 new
int result = MathHelper.Add(1, 2);
```
