继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第2天 吃透面向对象【Golang实现版】

慕慕6534145
关注TA
已关注
手记 3
粉丝 1
获赞 0

课程名称:吃透面向对象【Golang实现版】

课程章节:1-1 总览Go的面向对象核心及初识面向对象的定义(权威+通俗)

                2-1 面向对象三大特征

主讲老师: 我是波哥


学习内容:

http://img1.mukewang.com/62ea87e3000151cc12960729.jpg

面向对象定义

    权威

    - 是软件设计的一种思想

    - 将真实世界事物的行为和属性抽象成计算机世界中的设计思想

    通俗

    http://img2.mukewang.com/62ea889400015d7209860515.jpg

    人类

        爸爸 / 妈妈 / 大伯 / 大姑 。。。(年龄 身高 姓名)


    

   面向对象的常见概念

        类

        对象

        属性

        行为

        类型组合(嵌入、别名)


    Go中的实现方式 -- struct

        抽象的实体 -- 对象

        结构体        -- 结构体变量

        接口定义结构体的方法


 

面向对象三大特征

http://img4.mukewang.com/62ea8ad200013e8606730341.jpg


封装 -- 数据隐藏 细节隐藏 对外暴露接口 (安全  权限控制)

继承 -- 能力继承 (扩展)

多态 -- 同一事物(不同状态下)不同表现


工厂模式

    package model

    type userinfo struct{

        Name string

        Age int

    }

    // model中userinfo是私有的

    //暴露公开接口给外部

    func NewUser(name string, age int) *userinfo{

        return &userinfo{

            Name: name,

            Age: age

        }

    }


Getter / Setter

    // 属性的封装

    type Product struct{

        productName string

        productPrice double

    }


    func (this *Product)SetName(_productname string){

        this.productName = _productname

    }


    func (this *Product)GetName() string {

        return this.productName

    }


值类型和指针类型接收者的区别

    指针类型可以改变原值


继承(内嵌示例)

type PaymentArgs struct{

    AppID string

    MchID string

    Key string

    CallbackURL string

}


type WeixinPay struct{

    PaymentArgs

    WeixinOpenID string

}

继承的优点: 提高复用性,可扩展性和维护性

字段可以继承  方法也可以继承

方法支持子类重载



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP