培训首页  >  web前端新闻  >  兄弟连区块链培训教程面向对象1:封装

兄弟连区块链培训教程面向对象1:封装

[2018-09-19 15:34:33] 浏览量:63 来源:

北京兄弟连IT

  兄弟连教育Go全栈与区块链培训课程是由清华、微软和谷歌名师历时半年时间研发出的独一无二的体系化课程。

  由于目前用户普遍对于区块链认知不足,加之区块链专业人才的短缺及其高薪诱惑力,导致市场上衍生出多家区块链培训机构。兄弟连教育区块链学院院长尹成表示,面对鱼龙混杂的区块链培训市场,消费者需仔细辨别。(

面向对象概述

· 在没有面向对象的年代,编程的方式是面向过程的

· 面向过程的编程,管理的是一个一个的函数,撸工程就是堆砌大量的函数

· 面向对象中类的概念,Go语言是通过结构体来实现的

· /结构体是对函数的进一步封装,即把有机关联的变量和函数封装为一个结构体

· 有了类/结构体的概念以后,撸工程就由管理大量的函数变为了管理少量的类

· 书本理论中面向函数的三大特性是:封装、继承、多态(有时会再加一个抽象)

· 继承性实现了低成本地扩展原有代码

· 多态性实现了大规模代码的组装和调度

· 面向对象使工程开发变成了搭建框架和组装模块的游戏

· 面向对象的出现使大规模协作与大规模开发变得更容易了

封装性概述

· 封装就是将业务逻辑相近的变量和函数封装在一起,成为一个结构体

· 被封起来的变量称之为属性

· 被封起来的函数称之为方法

· 封装的意义,在于整理和简化代码结构

· 封装也是继承和多态的基础

封装结构体 
下面的例子,把狗的属性(名字和性别)和狗的方法(取名字和咬人)封装成了一个结构体

//定义结构体type Dog struct {

    //定义狗的属性

    name string

    sex int

}

/*封装狗的方法*///setterfunc (d *Dog)SetName(name string)  {

    //在这里可以加一些权限校验

    d.name = name

}

//getterfunc (d *Dog)GetName() string {

    //在这里可以加一些权限校验

    return d.name

}

//定义咬人方法func (d *Dog)bite()  {

    fmt.Printf("让本汪%s来给你一些震撼教育...",d.name)

}

创建空白对象并给属性赋值

func demo21() {

    //创建空白对象

    d := Dog{}

 

    //给对象的属性赋值

    d.name = "臭皮"

    d.sex = 1

    fmt.Println(d.sex)

    d.bite()

}

创建对象的同时有序而完整地给属性赋值

func demo22() {

    //创建对象的同时有序而完整地给属性赋值

    d := Dog{"臭皮", 1}

    fmt.Println(d.sex)

    d.bite()

}

创建对象并有选择地给属性赋值

func demo23() {

    d := Dog{name: "臭皮"}

    d.sex = 1

    d.SetName("")

    fmt.Println(d.GetName())

    d.bite()

}

创建空白指针对象并给属性赋值

func demo24() {

    dp :new(Dog)

 

    //通过【指针】访问结构体的【成员】(包括属性和方法)和通过【值】访问一模一样

    dp.SetName("臭皮")

    dp.bite()}

使用工厂模式创建对象

· 封装【创建实例的重复复杂过程】为固定的套路和【模式】

· 以后就可以【反反复复】、【轻松加愉快】地复用模式和套路了

· 正所谓【自古真情没卵用,唯有套路得人心】,阿门

· 这个一次封装、反复玩弄的套路,就称为【工厂模式】

· 工厂模式——将造实例这件事情做专业化的封装,并反复调用

//工厂方法func NewDog(name string,sex int) *Dog  {

    d := new(Dog)

    d.name = name

    d.sex = sex

    return d

}

//使用工厂模式创建对象func demo25() {

    xiaohei := NewDog("小黑", 1)

    xiaohei.bite()

}

更多区块链视频教程/源码/课件/学习资料-企鹅QUN:

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息