目录
- 概述
- 类的表示
- 代码
- 结果
- 类的封装
- 代码
- 结果
- 结束
概述
Golang中类的表示与封装
类的表示
代码
注释掉的代码,并不能拿来当赋值或获取值来使用。
package mainimport "fmt"// 类大写则代表,可以被其它包使用
type Hero struct {// 属性方法大写,则代表公有,小写,则是私有Name stringAge intLevel int
}// func (this Hero) show() {
// fmt.Printf("name = %s \n", this.getName())
// }// func (this Hero) getName() string {
// return this.Name
// }// func (this Hero) setName(name string) {
// // this 是调用该方法的对象的一个副本(拷贝)
// this.Name = name
// }func (this *Hero) show() {fmt.Printf("name = %s \n", this.getName())
}func (this *Hero) getName() string {return this.Name
}func (this *Hero) setName(name string) {// this 是调用该方法的对象的一个副本(拷贝)this.Name = name
}func main() {// 创建一个对象hero := Hero{Name: "张三", Age: 32, Level: 1}hero.show()hero.setName("李四")hero.show()
}
结果
类的封装
代码
package mainimport "fmt"type Human struct {Name stringAge int
}func (this *Human) GetName() string {return this.Name
}func (this *Human) eat() {fmt.Println("human eat..")
}func (this *Human) work() {fmt.Println("human work..")
}type SuperHuman struct {HumanLevel int
}func (this *SuperHuman) work() {fmt.Println("super human work..")
}func main() {ss := SuperHuman{Human{"张三", 1}, 1}fmt.Printf("ss = %v \n", ss)s := Human{"李四", 1}fmt.Println(s)sss := SuperHuman{s, 1}fmt.Printf("sss = %v \n", sss)
}
结果
结束
Golang中类的表示与封装 至此结束,如有疑问,欢迎评论区留言。