4-2 go封装性

Posted paad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-2 go封装性相关的知识,希望对你有一定的参考价值。

package main

import "fmt"

//定义结构体
type Persion struct 
    //定于结构体属性
    name  string
    age   int
    sex   bool
    hobby []string


/*
封装结构体的方法
- 无论方法的主语定于为止类型还是指针类型,对象值和对象指针都能够正常访问
-通常会将主语定义为指针累
*/
func (p Persion) Eat() 
    fmt.Printf("%s爱饕餮\n", p.name)

func (p Persion) Drink() 
    fmt.Printf("%s爱喝酒\n", p.name)


func (p Persion) Love() 
    fmt.Printf("%s是有感情的\n", p.name)


func MakeHimlove(p Persion)  
    p.Love()

func MakeHisLove(p *Persion)  
    p.Love()


func main01() 
    //创建空白的Persion 对象(object)/实例(instance)
    rangge := Persion

    //设置其属性
    rangge.name = "让哥"

    //访问其方法
    rangge.Eat()
    rangge.Drink()
    rangge.Love()



func main012() 
    //创建对象是给指定属性赋值,可以不必全部赋值
    //rangge := Persionname: "西门阿让", sex: true, age: 9

    //创建对象时按顺序给所有属性赋值
    rangge := Persion"西门阿让", 8, true, []string"撸代码"
    rangge.Eat()

func main() 
    rangge := Persion"西门阿让", 8, true, []string"撸代码"

    //要求传递值就必须传递值
    MakeHimlove(rangge)

    //要求传递指针就必须传递指针/地址/引用
    MakeHisLove(&rangge)

    //值传递传递的是副本,引用传递传的才是真身

 

以上是关于4-2 go封装性的主要内容,如果未能解决你的问题,请参考以下文章

Java封装性及属性的封装

我的代码习惯---高封装性

python第四十三课——封装性

封装性

面向对象三大特征之 封装性

面向对象-封装性