面向对象的封装
package main
import "fmt"
type Hero struct {
Name string
Ad int
Level int
}
func (this Hero) Show(){
fmt.Println("Name = ", this.Name)
fmt.Println("Ad = ", this.Ad)
fmt.Println("Level = ", this.Level)
}
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,Level:1}
hero.Show()
hero.SetName("Li4")
fmt.Println("------------修改后------------")
hero.Show()
}
可以看出修改后,li4,数据并没有变化
如果加入指针,进行li4的修改后,数据会发生变化文章来源:https://www.toymoban.com/news/detail-808154.html
package main
import "fmt"
type Hero struct {
Name string
Ad int
Level int
}
func (this *Hero) Show(){
fmt.Println("Name = ", this.Name)
fmt.Println("Ad = ", this.Ad)
fmt.Println("Level = ", this.Level)
}
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,Level:1}
hero.Show()
hero.SetName("Li4")
fmt.Println("------------修改后------------")
hero.Show()
}
文章来源地址https://www.toymoban.com/news/detail-808154.html
- 如果首字母大写,表示其他包也能够访问
- 如果类的属性首字母大写,表示该属性对外是能够访问的,否则的话,只能类的内部访问。
到了这里,关于go语言(十)---- 面向对象封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!