Go教程

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

本文主要是介绍【学习打卡】第2天 吃透面向对象【Golang实现版】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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

                2-1 面向对象三大特征

主讲老师: 我是波哥


学习内容:

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

面向对象定义

    权威

    - 是软件设计的一种思想

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

    通俗

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

    人类

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


    

   面向对象的常见概念

        类

        对象

        属性

        行为

        类型组合(嵌入、别名)


    Go中的实现方式 -- struct

        抽象的实体 -- 对象

        结构体        -- 结构体变量

        接口定义结构体的方法


 

面向对象三大特征

https://img4.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

}

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

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

方法支持子类重载



这篇关于【学习打卡】第2天 吃透面向对象【Golang实现版】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!