# 型

**定义类:字段、方法与构造的集合。**

```xuantie
型 猫 {
    设 名字
    函 造(名) { 此.名字 = 名 }
    函 叫() { 示("#{此.名字} 在喵喵叫~") }
}

设 c = 造 猫("小花")
c.叫()
```

## 你可以……

- **声明带类型标注的字段**——可加可空修饰 `?`:

```xuantie
型 节点 {
    设 名称: 字
    设 子: 节点?
}
```

- **定义方法**——方法内用 `此` 访问实例,可标注返回类型:

```xuantie
型 计数器 {
    设 次数 = 0
    函 加一(): 整 {
        此.次数 = 此.次数 + 1
        返 此.次数
    }
}
```

- **定义泛型类**——类名后加 `<T>`,实例化时传入具体类型:

```xuantie
型 盒子<T> {
    设 内容: T
    函 造(x: T) { 此.内容 = x }
}
设 整盒 = 造 盒子<整>(123)
```

## 注意

- 型体只解析成员声明(`设`/`函`/`弱 设`/`覆 函`);误写进去的普通语句会被跳过,不会执行。
- 成员默认是 `公`,要限制访问须显式写 `私` 或 `护`。
- 构造方法固定叫 `造`,其他名字只是普通方法。

## 相关

[造](造.md) · [承](承.md) · [此](此.md) · [口](口.md)