golang快速入门-14-golang的类-基于结构体实现

现在版本的golang中没有class关键字。golang沿用了标准c对类的模拟,或者c++编译器中对OOP的实现:基于结构体struct实现了类的机制。

 

package main
import "fmt"


//如果类名首字母大写,表示其他包也能够访问
type Hero struct 
{
    //如果说类的属性首字母大写, 表示该属性是对外能够访问的,否则的话只能够类的内部访问
    Name  string
    Ad    int
    level int
}

// hero.Show()方法 func (
this *Hero) Show() { fmt.Println("Name = ", this.Name) fmt.Println("Ad = ", this.Ad) fmt.Println("Level = ", this.level) }
// hero.GetName()方法 func (
this *Hero) GetName() string { return this.Name } // 此处必须带*号,否则就是传拷贝,不仅不能修改,而且造成性能问题 func (this *Hero) SetName(newName string) { //this 是调用该方法的对象的一个副本(拷贝) this.Name = newName } func main() { //创建一个对象 hero := Hero{Name: "zhang3", Ad: 100} hero.Show() hero.SetName("li4") hero.Show() }

 

posted @ 2021-03-18 00:34  从程序员到CTO  阅读(281)  评论(0)    收藏  举报
交流加我QQ:39667545