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

相关推荐
有代理ip19 小时前
Python 与 Golang 爬虫的隐藏优势
爬虫·python·golang
天远云服21 小时前
天远车辆过户查询API微服务实战:用Go语言构建高性能车况溯源系统
大数据·微服务·架构·golang
女王大人万岁21 小时前
Go标准库 sync 详解
服务器·开发语言·后端·golang
小高Baby@21 小时前
session、cookie、Jwt-token
开发语言·后端·golang
Grassto1 天前
12 go.sum 是如何保证依赖安全的?校验机制源码解析
安全·golang·go·哈希算法·go module
小二·1 天前
Go 语言系统编程与云原生开发实战(第12篇)云原生部署实战:Helm Chart × GitOps × 多环境管理(生产级落地)
开发语言·云原生·golang
天空属于哈夫克31 天前
Go 语言实战:构建一个企微外部群“技术贴收藏夹”小程序后端
小程序·golang·企业微信
小二·1 天前
Go 语言系统编程与云原生开发实战(第13篇)工程效能实战:Monorepo × 依赖治理 × 构建加速(10万行代码实测)
开发语言·云原生·golang
暴躁小师兄数据学院1 天前
【WEB3.0零基础转行笔记】Golang编程篇-第4讲:Go语言中的流程控制
开发语言·后端·golang·web3·区块链
lingggggaaaa2 天前
安全工具篇&Go魔改二开&Fscan扫描&FRP代理&特征消除&新增扩展&打乱HASH
学习·安全·web安全·网络安全·golang·哈希算法