为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Go

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

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

                2-1 面向对象三大特征

主讲老师: 我是波哥


学习内容:

https://img1.sycdn.imooc.com//62ea87e3000151cc12960729.jpg

面向对象定义

    权威

    - 是软件设计的一种思想

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

    通俗

    https://img1.sycdn.imooc.com//62ea889400015d7209860515.jpg

    人类

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


    

   面向对象的常见概念

        类

        对象

        属性

        行为

        类型组合(嵌入、别名)


    Go中的实现方式 -- struct

        抽象的实体 -- 对象

        结构体        -- 结构体变量

        接口定义结构体的方法


 

面向对象三大特征

https://img1.sycdn.imooc.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

}

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

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

方法支持子类重载



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消