Menu
CoddyTech

Go 面向对象编程简介

本课属于 Coddy GO 学习旅程的“面向对象编程”单元。第 5 课,共 107 课。

Go 没有类,但它通过结构体和方法实现面向对象编程。结构体将相关数据组合在一起,方法则定义与该结构体关联的行为。

定义一个结构体来存储数据

type Dog struct {
    Name string
    Age  int
}

将方法附加到结构体

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

创建一个实例并使用它

package main

import "fmt"

type Dog struct {
    Name string
    Age  int
}

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

func main() {
    myDog := Dog{Name: "Buddy", Age: 3}
    fmt.Println(myDog.Bark()) // 输出:Buddy says Woof!
    fmt.Println(myDog.Age)    // 输出:3
}

在 Go 中,方法名前面的 (d Dog) 部分称为接收者。它将方法与 Dog 结构体关联起来,类似于在其他语言中方法属于类的方式。

challenge icon

挑战

简单

创建一个 Cat 结构体,练习 Go 实现 OOP 的方式:

  • 定义一个 Cat 结构体,包含 Name(string)和 Age(int)字段
  • 添加一个 Speak 方法,返回猫的名字,后面跟着 " says Meow!"

亲手试试

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Scan(&name, &age)

    cat := Cat{Name: name, Age: age}

    fmt.Printf("Name: %s\n", cat.Name)
    fmt.Printf("Age: %d\n", cat.Age)
    fmt.Println(cat.Speak())
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Go 在线编译器