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-面向“对象”的更多相关文章

  1. 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表

    (先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...

  2. 《Python 学习手册4th》 第四章 介绍Python对象类型

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容(每天看42页内容,可以保证月底看完此书) ''' ...

  3. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  4. python3 第三十四章 - 聊聊File对象

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 实例  1 file.close() 关闭文件.关闭后文件不能再进行读写操作. 方法用于关闭一个已打 ...

  5. JavaSE习题 第四章 类与对象

    问答题: 1.在声明类时,类名应该遵守哪些习惯? 1.与文件名相同2.首字母大写 2.类体内容中有那两类比较重要的成员? 1.成员变量2.方法 3.实例方法可以操作类变量吗?类方法可以操作实例变量吗? ...

  6. 201771010113 李婷华 《面向java对象程序设计(Java)》第四章学习总结

    一. 理论知识部分 第四章 对象与类 本章主要讲述面向对象程序设计.如何创建标准Java类库中的类对象.如何编写自己的类. 1.面向对象程序设计的几个主要概念: 抽象数据类型.类和对象.封装.类层次( ...

  7. 《Java程序设计》第四章-认识对象

    20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的. ...

  8. Spring实战第四章学习笔记————面向切面的Spring

    Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我 ...

  9. 第四章 JavaScript操作DOM对象

    第四章   JavaScript操作DOM对象 一.DOM操作 DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API接口,1988年,W3C发布了第一级 ...

  10. 《Java从入门到失业》第四章:类和对象(4.5):包

    4.5包 前面我们已经听过包(package)这个概念了,比如String类在java.lang包下,Arrays类在java.util包下.那么为什么要引入包的概念呢?我们思考一个问题:java类库 ...

随机推荐

  1. MongoDB创建数据库和删除数据库05-14学习笔记

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  2. Leetcode练习题Remove Element

    Leetcode练习题Remove Element Question: Given an array nums and a value val, remove all instances of tha ...

  3. COMP222 - 2019

    COMP222 - 2019 - Second CA AssignmentIndividual courseworkTrain Deep Learning AgentsAssessment Infor ...

  4. Missing artifact com.lowagie:itextasian:jar:2.1.7

    在maven中添加iTextAsian支持   导入maven项目 发现pom.xml文件 中这个依赖报错:Missing artifact com.lowagie:itextasian:jar:2. ...

  5. MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 又是一年毕业季,只有到了毕业季才会意识到自己又 ...

  6. Java中配置文件的三种配置位置及读取方式

    XML 和properties properties: 1.存放于src根目录下 //获取到同包下的资源文件,将其转换成流对象 //InputStream is= PropertiesDemo.cla ...

  7. Linux目录和文件——查询目录和文件的命令

    Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...

  8. 高强度学习训练第四天总结:JVM+Redis

    JVM 复习了JVM堆内存的几个模块. 复习了JVM的几个控制工具. 复习了JVM发展历史 Redis 复习了Redis的事务控制.

  9. maven 学习---使用Maven构建项目

    要构建一个基于Maven的项目,打开控制台,进入到 pom.xml 文件所放的项目文件夹,并发出以下命令: mvn package 这将执行Maven的“package”阶段. Maven构建生命周期 ...

  10. linux线程绑定cpu

    函数介绍 #define __USE_GNU #include <sched.h> void CPU_ZERO(cpu_set_t *set); void CPU_SET(int cpu, ...