目录
- 概述
- 类的表示
- 代码
- 结果
- 类的封装
- 代码
- 结果
- 结束
概述
Golang中类的表示与封装
类的表示
代码
注释掉的代码,并不能拿来当赋值或获取值来使用。
package main
import "fmt"
// 类大写则代表,可以被其它包使用
type Hero struct {
// 属性方法大写,则代表公有,小写,则是私有
Name string
Age int
Level 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 main
import "fmt"
type Human struct {
Name string
Age 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 {
Human
Level 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中类的表示与封装 至此结束,如有疑问,欢迎评论区留言。