12.Golang中类的表示与封装

目录

概述

Golang中类的表示与封装

类的表示

代码

注释掉的代码,并不能拿来当赋值或获取值来使用。

go 复制代码
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()
}

结果

类的封装

代码

go 复制代码
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中类的表示与封装 至此结束,如有疑问,欢迎评论区留言。

相关推荐
hourinX4 小时前
从 v1 到 v2,我重新拆了头像生成的整条链路—— gdenticon 重构日志(二)
go
紧跟先前的步伐5 小时前
Go AI Agent 实战 22|完善 Agent 执行循环:从工具调用到最终回答
人工智能·ai·golang
后台模板学习6 小时前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang
FungLeo7 小时前
成为全栈·Go 后端篇·分类树与标签关系:目录变更为何需要协调
golang·go·gorm·数据库事务·分类树·成为全栈
fly-iot7 小时前
【FDE知识库】(1):AI 编程时代开发语言选型分析,云使用go,企业用java,算法python,底层c
开发语言·人工智能·golang
FungLeo7 小时前
成为全栈·Go 后端篇·文章查询与展示投影:安全分页、排序和软删除
golang·go·gorm·分页查询·成为全栈·sql安全
紧跟先前的步伐16 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
日日大王学编程17 小时前
#Feed 流项目复盘:Redis 时间线缓存与 Outbox 消息可靠性设计
golang·1024程序员节
北冥you鱼1 天前
Go 语言 CRUD 实战:从接口设计到真实业务场景
开发语言·后端·golang
oscar9991 天前
3D 异构集成中的热—力—电耦合——被封装结构放大的系统级问题
芯片·封装·电耦合