第四章、Go-面向“对象”
4.1.结构体和方法
(1)go语言的面向对象
- go仅支持封装,不支持继承和多态
- go语言没有class,只有struct
(2)struct的创建
package main import "fmt" func main() {
type treeNode struct {
value int
left, right *treeNode //指针类型
}
//不论地址还是结果本身,都用“.” 来访问成员
var root treeNode //root是一个实例
root = treeNode{value: 3}
fmt.Println(root) //{3 <nil> <nil>} root.left = &treeNode{}
fmt.Println(root) //{3 0x1104c0f0 0x1104c100}
}
(3)为struce创建方法
package main import "fmt" type treeNode struct {
value int
} //为结构体创建方法
func (node treeNode) print() {
fmt.Println(node.value)
} func main() {
var root treeNode
root = treeNode{value: 3}
root.print() //3
}
(4)使用指针作为方法接收者,改变结构内容
package main import "fmt" type treeNode struct {
value int
} //为结构体创建方法
func (node treeNode) print() {
fmt.Println(node.value)
} //不适用指针“*treeNode',则不能改变value的值
//func (node treeNode) setValue(value int) {
// node.value = value
//} //只有使用只用指针才可以改变结构体内容
func (node *treeNode) setValue(value int) {
node.value = value
} func main() {
var root treeNode
root = treeNode{value: 3}
root.print() //3
root.setValue(6)
root.print() //6
}
4.2.包和封装
(1)封装
- 首字母大写:public
- 首字母小写:private
(2)包
- 每个目录一个包
- main包包含可执行入口
- 为结构定义的方法必须放在同一个包内
- 可以是不同文件
第四章、Go-面向“对象”的更多相关文章
- 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表
(先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...
- 《Python 学习手册4th》 第四章 介绍Python对象类型
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容(每天看42页内容,可以保证月底看完此书) ''' ...
- java面向对象编程——第四章 类和对象
OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...
- python3 第三十四章 - 聊聊File对象
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 实例 1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 方法用于关闭一个已打 ...
- JavaSE习题 第四章 类与对象
问答题: 1.在声明类时,类名应该遵守哪些习惯? 1.与文件名相同2.首字母大写 2.类体内容中有那两类比较重要的成员? 1.成员变量2.方法 3.实例方法可以操作类变量吗?类方法可以操作实例变量吗? ...
- 201771010113 李婷华 《面向java对象程序设计(Java)》第四章学习总结
一. 理论知识部分 第四章 对象与类 本章主要讲述面向对象程序设计.如何创建标准Java类库中的类对象.如何编写自己的类. 1.面向对象程序设计的几个主要概念: 抽象数据类型.类和对象.封装.类层次( ...
- 《Java程序设计》第四章-认识对象
20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的. ...
- Spring实战第四章学习笔记————面向切面的Spring
Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我 ...
- 第四章 JavaScript操作DOM对象
第四章 JavaScript操作DOM对象 一.DOM操作 DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API接口,1988年,W3C发布了第一级 ...
- 《Java从入门到失业》第四章:类和对象(4.5):包
4.5包 前面我们已经听过包(package)这个概念了,比如String类在java.lang包下,Arrays类在java.util包下.那么为什么要引入包的概念呢?我们思考一个问题:java类库 ...
随机推荐
- MongoDB创建数据库和删除数据库05-14学习笔记
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...
- Leetcode练习题Remove Element
Leetcode练习题Remove Element Question: Given an array nums and a value val, remove all instances of tha ...
- COMP222 - 2019
COMP222 - 2019 - Second CA AssignmentIndividual courseworkTrain Deep Learning AgentsAssessment Infor ...
- Missing artifact com.lowagie:itextasian:jar:2.1.7
在maven中添加iTextAsian支持 导入maven项目 发现pom.xml文件 中这个依赖报错:Missing artifact com.lowagie:itextasian:jar:2. ...
- MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 又是一年毕业季,只有到了毕业季才会意识到自己又 ...
- Java中配置文件的三种配置位置及读取方式
XML 和properties properties: 1.存放于src根目录下 //获取到同包下的资源文件,将其转换成流对象 //InputStream is= PropertiesDemo.cla ...
- Linux目录和文件——查询目录和文件的命令
Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...
- 高强度学习训练第四天总结:JVM+Redis
JVM 复习了JVM堆内存的几个模块. 复习了JVM的几个控制工具. 复习了JVM发展历史 Redis 复习了Redis的事务控制.
- maven 学习---使用Maven构建项目
要构建一个基于Maven的项目,打开控制台,进入到 pom.xml 文件所放的项目文件夹,并发出以下命令: mvn package 这将执行Maven的“package”阶段. Maven构建生命周期 ...
- linux线程绑定cpu
函数介绍 #define __USE_GNU #include <sched.h> void CPU_ZERO(cpu_set_t *set); void CPU_SET(int cpu, ...