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.mzph.cn/news/649816.shtml

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

相关文章

RHCE作业

1.写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一 (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz; (2) 如果参…

临紧光五行护盾

临紧光五行护盾基础名词解释 粒子系统仿真,离散事件系统设计临紧光五行护盾(云藏山鹰临近光五行散射)V-ATPase道装,意气实体过程光效集聚模拟器荀况数论云藏山鹰类型物粒子系统导引云藏山鹰类型物与冯诺依曼爆炸学物品分类表杨米尔…

【华为 ICT HCIA eNSP 习题汇总】——题目集10

1、以下哪个动态路由协议不能应用在 IPv6 网络中? A、IS-IS B、RIPng C、BGP4 D、OSPFv3 考点:路由技术原理 解析:(A) IS-ISv6 是在 IPv6 环境下,IS-IS 协议进行了相应的扩展和改进,以适应 IPv6…

项目风采展示【TRDa】

桌面功能介绍: 1:支持本地音乐、三方音乐控制播放展示功能; 2:支持陀螺仪 3:支持蓝牙列表显示。

STM32单片机的基本原理与应用(二)

单片机外部中断的基本原理 STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。那么其中断是怎样实现的呢?其原理就是由GPIO口产生触发信号,通过NVIC中断控制器和EXTI外部中断控制器完成中断响应。使用外部中断可以…

RabbitMQ问题总结

:::info 使用场景 异步发送(验证码、短信、邮件。。。)MySQL 和 Redis、ES 之间的数据同步分布式事务削峰填谷… ::: 如何保证消息不丢失 上图是消息正常发送的一个过程,那在哪个环节中消息容易丢失?在哪一个环节都可能丢失 生…

opencv#32 可分离滤波

滤波的可分离性 就是将一个线性滤波变成多个线性滤波,这里面具体所指的是变成x方向的线性滤波和y方向的线性滤波。无论先做x方向的滤波还是y方向滤波,两者的叠加结果是一致的,这个性质取决于滤波操作是并行的,也就是每一个图像在滤…

vue3+echarts绘制某省区县地图

vue3echarts绘制某省区县地图 工作中经常需要画各种各样的图,echarts是使用最多的工具,接近春节,想把之前画的echarts图做一个整合,方便同事和自己随时使用,因此用vue3专门写了个web项目,考虑之后不断完善…

R12.2 EBS 修改 APPS 密码 详细步骤

目录 前言准备修改步骤1.关闭应用层2.FNDCPASS 修改密码3. 运行 autoconfig4.单独启动 webLogic 服务5.登录weblogic,更新apps密码6.启动应用层7.验证 结尾 前言 本文的目的是修改 apps 密码,主要参考官方文档 metalink 1674462.1,请注意本文…

Task04:DDPG、TD3算法

本篇博客是本人参加Datawhale组队学习第四次任务的笔记 【教程地址】https://github.com/datawhalechina/joyrl-book 【强化学习库JoyRL】https://github.com/datawhalechina/joyrl/tree/main 【JoyRL开发周报】 https://datawhale.feishu.cn/docx/OM8fdsNl0o5omoxB5nXcyzsInGe…

华为三层交换机之基本操作

Telnet简介 Telnet是一个应用层协议,可以在Internet上或局域网上使用。它提供了基于文本的远程终端接口,允许用户在本地计算机上登录到远程计算机,然后像在本地计算机上一样使用远程计算机的资源。Telnet客户端和服务器之间的通信是通过Telnet协议进行的…

OpenAI 降低价格并修复拒绝工作的“懒惰”GPT-4,另外ChatGPT 新增了两个小功能

OpenAI降低了GPT-3.5 Turbo模型的API访问价格,输入和输出价格分别降低了50%和25%。这对于使用API进行文本密集型应用程序的用户来说是一个好消息。 OpenAI官网:OpenAI AIGC专区:aigc 教程专区:AI绘画,AI视频&#x…

博弈论(牛客练习赛)

思路:我们考虑小念赢 1、如果n>1并且p0,小念可以连续取两次,相当于小念有挂,可以从必败态转为必胜态,必赢。 2、如果n>1并且m>n-1,小念第一次取n-1个,小念必赢。 代码: …

C++ 之LeetCode刷题记录(十九)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 108. 将有序数组转换为二叉搜索树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你…

针对于vue element-plus组件的el-date-picker日期区间组件的日期格式问题以及如何进行区间判断

<template><el-date-picker v-model"value1" type"daterange" range-separator"To" start-placeholder"开始日期" end-placeholder"结束日期" :size"size" change"sarend" /> </templat…

泽众云真机-机型集中化运维方案升级全面完成

2024年元月份&#xff0c;泽众云真机运维团队&#xff0c;经过几个月软硬件多轮安装调试&#xff0c;机型集中化运维方案升级全面完成。解决了云真机的机型集中化运维难题&#xff0c;方便了运营人员手机管理。 具体如下&#xff1a; 1、集中化运维&#xff0c;如服务器、PC、…

中级ccnp多久可以考下来?ccnp 课件哪里有?

思科中级CCNP考试要求考生具备一定的网络基础知识&#xff0c;包括IP地址规划、VLAN配置、STP协议等。然而&#xff0c;对于许多初学者来说&#xff0c;中级CCNP考试的难度和门槛都是一个不小的挑战。那么&#xff0c;究竟需要多久才能考下中级CCNP证书呢?下面将为你详细解读。…

esp32 操作DS1307时钟芯片

电气参数摘要 有VCC供电&#xff0c;IIC活动状态是1.5mA&#xff0c;待机状态200μA&#xff0c;电池电流5nA(MAX50nA&#xff09;无VCC供电的时候&#xff0c;电池电流&#xff0c;300nA&#xff08;时钟运行&#xff09;&#xff0c;10nA&#xff08;时钟停止&#xff09;供…

机器学习-pandas(含数据)

pandas 优势&#xff1a; 增强图表可读性便捷的数据处理能力读取文件方便封装了Matplotlib、Numpy的画图和计算 更详细的教程&#xff1a;Pandas 教程 | 菜鸟教程 (runoob.com) Pandas数据结构 Pandas中一共有三种数据结构&#xff0c;分别为&#xff1a;Series、DataFram…

Vite+Electron快速构建一个VUE3桌面应用(一)

一. 简介 首先&#xff0c;介绍下vite和Electron。 Vite是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入Chromium和Node.js到二进制的 Electron 允许您保持一个 JavaScript 代码代码…