zoukankan      html  css  js  c++  java
  • 第四章、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包包含可执行入口
    • 为结构定义的方法必须放在同一个包内
    • 可以是不同文件
  • 相关阅读:
    uva 165 Stamps
    uva 104 Bandwidth
    uva 812 Trade on Verweggistan
    Uva 1354 Mobile Computing
    uva_1422 Processor
    Codeforces Round #321 div2
    Codeforces Round #316 div2
    LightOj_1408 Batting Practice
    【共享单车】—— React后台管理系统开发手记:AntD Table高级表格
    【共享单车】—— React后台管理系统开发手记:AntD Table基础表格
  • 原文地址:https://www.cnblogs.com/derek1184405959/p/11296304.html
Copyright © 2011-2022 走看看