12.Golang中类的表示与封装

目录

  • 概述
    • 类的表示
      • 代码
      • 结果
    • 类的封装
      • 代码
      • 结果
  • 结束

概述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/443168.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【pdf密码】怎么打印加密的PDF文件?

PDF文件是可以打开查看的,但是现在不能编辑、不能打印,功能栏中的功能都是灰色的,这种设置了加密的PDF文件该如何加密? 如果PDF中的大多数功能按钮以及打印按钮都是灰色的状态,那就证明是文件的问题导致不能打印的。 …

FSM有限状态机理解和实现,附上源代码

1、前言 之前在unity中看到动画状态机的转换,可以看到下图,在开发中还是很方便。 2、状态机是啥 状态机(state machine)是一种计算模型,用于描述系统或程序在不同状态之间转换的行为。 一般我们定义的状态都是有限的。所以所以FSM被称为有限状态机。 状态机有 3 个组成…

单例模式有几种写法?请谈谈你的理解?

为什么有单例模式? 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利…

Mysql聚合函数

聚合函数又称分组函数 多行(一组)数据 返回一个结果 数据表 链接:https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码:b0rp --来自百度网盘超级会员V5的分享 聚合函数会自动排除掉null字段 AVG SUM 适用于数值类型 MIN MAX 适用于数值…

Python中类的相关术语(附带案例)

目录 1、面向对象 2、类 3、实例 4、初始化方法 5、魔法方法 6、字符串方法 7、self 8、数据、属性、操作、行为 9、父类、基类、超类 or 子类、派生类 10、多态 11、重载多态 and 重写多态 12、名称解释 1、面向对象 在Python中,面向对象编程&…

实现单点登录

指再多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。 相比于单系统登录,sso需要一个独立的认证中心,只有认证红心能接受用户的用户名密码等安全信息,其他系统…

nodejs详细介绍2以及vue脚手架

前言 首先给宝子们说声抱歉,因为自己在使用vscode执行vue脚手架的时候出现了很多问题,在经过解决之后还是有一个对应的我弄了一天没弄好,就是“vscode的终端将被任务重用,按任意键关闭”然后导致的是自己没心情学习一点&#xff…

人工视觉仍然需要图像采集卡

最初,图像采集卡被用作模拟视频数字转换器和图像缓冲器,但如今它们能够执行复杂的任务,例如图像处理。图像采集卡的设计不断发展,旨在提高系统性能并减少计算机处理需求。 除了图像采集之外,图像采集卡还执行机器视觉…

WebService的services.xml问题

WebService有多种实现方式,这里使用的是axis2 问题: 在本地开发,访问本地的http://localhost:8080/services/ims?wsdl,正常访问 但是打成jar包,不管是linux还是window启动,都访问不到,报错…

构建基于Flask的跑腿外卖小程序

跑腿外卖小程序作为现代生活中的重要组成部分,其技术实现涉及诸多方面,其中Web开发框架是至关重要的一环。在这篇文章中,我们将使用Python的Flask框架构建一个简单的跑腿外卖小程序的原型,展示其基本功能和实现原理。 首先&…

外汇天眼:澳大利亚法院判决西太平洋银行因不合理行为在利率互换交易中支付180万美元

联邦法院宣布,西太平洋银行在2016年10月执行120亿美元的利率互换交易时涉及不合理行为。西太平洋银行将支付与该行为相关的最高罚款180万美元,以及澳大利亚证券投资委员会(ASIC)的1800万美元的诉讼和调查费用。 西太平洋银行的不…

鸿蒙会取代Android吗?听风就是雨

现在说取代还谈不上,毕竟这需要时间。安卓作为全球第一的手机操作系统,短时间内还无法取代。持平iOS甚至超过iOS有很大可能,最终会呈现“三足鼎立”有望超过安卓基数。 作为全新的鸿蒙操作系统,其现在已经是全栈自研底座。按照鸿…