范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

golang2021面向对象(30)Go语言封装简介及实现细节

  在Go语言中封装就是把抽象出来的字段和对字段的操作封装在一起,数据被保护在内部,程序的其它包只能通过被授权的方法,才能对字段进行操作。
   
  封装的好处:
  隐藏实现细节;
  可以对数据进行验证,保证数据安全合理。
  如何体现封装:
  对结构体中的属性进行封装;
  通过方法,包,实现封装。
  封装的实现步骤:
  将结构体、字段的首字母小写;
  给结构体所在的包提供一个工厂模式的函数,首字母大写,类似一个构造函数;
  提供一个首字母大写的       Set 方法(类似其它语言的 public),用于对属性判断并赋值;
  提供一个首字母大写的       Get 方法(类似其它语言的 public),用于获取属性的值。
  【示例】对于员工,不能随便查看年龄,工资等隐私,并对输入的年龄进行合理的验证。代码结构如下:
   
  person.go  中的代码如下所示:
  package  model
  import  "fmt"
  type  person struct {
        Name string
        age int   //其它包不能直接访问..
        sal float64
    }
  //写一个工厂模式的函数,相当于构造函数
    func NewPerson(name string) *person {
        return &person{
            Name : name,
        }
    }
  //为了访问age  和 sal 我们编写一对SetXxx的方法和GetXxx的方法
    func (p *person) SetAge(age int) {
        if age >0 && age            p.age = age
        } else {
             fmt.Println("年龄范围不正确..")
            //给程序员给一个默认值
        }
    }
    func (p *person) GetAge() int {
        return p.age
    }
  func  (p *person) SetSal(sal float64) {
        if sal >= 3000 && sal  <= 30000 {
            p.sal = sal
        } else {
             fmt.Println("薪水范围不正确..")
        }
    }
  func  (p *person) GetSal() float64 {
        return p.sal
    }
  main.go 中的代码如下所示:
   
  package       main
  import (
  "fmt"
  "../model"
  )
  func main() {
  p :=       model.NewPerson("smith")
  p.SetAge(18)
  p.SetSal(5000)
  fmt.Println(p)
  fmt.Println(p.Name, "       age =", p.GetAge(), " sal = ", p.GetSal())
  }
  执行效果如下图所示:
   
   

看到售价才知道为什么称为狂欢版,realme真我Q3Pro狂欢版评测realme真我最近新机不断,前段时间发布的真我Q3系列半天的全网销量就超5万台,从售价和外观性能来看,官方称它是千元机皇标杆也不为过。在真我619狂欢夜上,正式发布realme真工业主板与普通主板的区别,从哪几点去区分它们?主板制造质量的高低,决定了硬件系统的稳定性。计算机主机中的各个部件都是通过主板连接的,计算机在正常运行时对系统内存存储设备和其他IO设备的操控都必须通过主板来完成。计算机的性能是否便携劲足双向充电的360便携式充气泵了解一下前言大家好。我曾经给安利过大家在车上必备车载充气泵的种种好处,也专门评测过几款当时流行的车载充气泵。此后至今两年中的几次经历,我的观点仍然没有丝毫改变,并且还更加坚信了。印象特别深告别熬夜,优惠升级2021天猫双11新玩法秘籍,硬通货优惠清单前言大家好。一年一度的双11又双叒叕要来了,不知道有多少兄弟姐妹和楼主一样,双11之前辛苦捂紧钱包,就等双11瞅准时机买买买了。也不得不说电商们真是会算日子,双11不只是购物节,还电脑用再久都不会卡的方法,一般人我不告诉他!前言网管!游戏进不去!重启!网管!机子键盘按了没反应!!重启!!网管!机子老死机啊!!!换台机子!正文上述经历想必去过网吧都碰到过,网吧里万能的重启好似可以解决所有非硬件性问题,这黑客告诉你什么才是偷窥狂的克星前言曾经有一个学弟在电话的另一头哭着寻求我的帮助,一直念叨着我老婆被人不活了等等相关词汇听得我一阵头大,正准备告诉他当然是选择我忽然想到了什么!(一个标准的死宅兼DIY玩家哪里来的余额宝升级版余额佳悄然下线,它到底能不能买?大家对于余额宝并不陌生,可谓是大众理财神器,尤其是年轻人,更是将它作为自己的电子钱包,收益比银行定期高,随用随取,使用简单方便。但是今年以来余额宝收益越来越低,大家想继续爱它并不容金价后续走势如何,可以用它抵御通胀吗2019年,大年印象最深的莫过于涨价了,从年初的水果价格高不可攀,后续的蔬菜价格令人望而却步,到现在的肉价不敢直视,物价飞涨已经成为不争的事实,CPI指数不断攀升,食品价格的贡献功美国非农数据超预期,对黄金美股经济影响几何美国11月非农就业人数新增26。6万,远超预期19。0万,且录得10个月新高,失业率由上月3。6变为3。5,触及近几十年低位,2019年失业率一直保持在4。0以下,时薪也有小幅提神希腊首发负利率国债,国债负利率,你还会买吗?希腊公共债务管理局发布消息,希腊发行4。875亿欧元3月期国债,由于市场响应积极并超额认购,本次国债收益率为0。02,这是希腊首次以负利率融资。众所周期,希腊深陷债务问题困扰,负债买房就赚钱的房地产,黄金时代结束了房地产行业的蓬勃发展,令很多人实现了财富自由,同时也令诸多年轻人负重前行,时至今日,仍旧有一些人在纠结,现在到底要不要买房?一方面尝到了房价走高带来的可观回报,另一方面又担忧房价暴
一个缩小微信内存的方法我是卢松松,点点上面的头像,欢迎关注我哦!苹果没有这个功能,安卓要更新到最新版。微信会把所有你浏览过的小程序和公众号文章保存下来,普通清理删不掉。此方法会把手机上所有小程序和公众号6600XT能战否?3A独显小主机装机测试前言临近年关,同事的购机需求开始多了起来,受限于显卡行情影响,包括本人在内无奈只能暂且使用集显平台,待显卡价格回落再另谋打算。近日,又有同事拜托帮忙装机,竟然是久违的AMD3A平台华为Mate40Pro一夜跌至白菜价,麒麟9000曲面屏,还值得入手吗?华为Mate40Pro从上市至今网友关注度一直居高不下,其究竟是有什么魔力能如此吸引网友的眼球呢?在外观与手感方面,华为Mate40Pro是自带光环的一款手机,其正面采用的是88超高通骁龙8加持,移动游戏也要进入次世代高通或许可以重新定义移动游戏的世代周期。主机游戏玩家们一定对次世代这个名词十分熟悉,它不仅代表了更好的游戏表现,也意味着一大波新游戏即将到来。但在移动游戏领域,似乎很难具体划分世代美国三次求购被拒,重要性不输光刻机,中国3D金属打印不是一般牛图为3D打印铸锻铣一体化机床尽管最近一段时间美国对中国进行技术封锁的消息被多次诉诸于网络,但中国手里面超越美国的先进技术同样有很多,就像是中国的3D金属打印就不是一般的牛,这种技术俄媒述评他们会超越我们,中国卫星被称为美国的噩梦作者马克西姆鲍里索夫中国卫星北京三号创下美国城市高质量影像北京三号卫星在旧金山湾区拍摄的照片,航天器工程杂志美军遭遇了一个严重的头疼问题中国新卫星北京三号以前所未有的速度从太空中以阿里不逍遥,腾讯不增长,字节不跳动,互联网巨头怎么了?本文首发于单仁行公号,搜索并关注单仁行公号,加入行业交流群,获取第一手资讯各种行业资料等你领取!我昨天听到一个有意思的爆料,当然,也可以说是个段子。在阿里三季报的财报电话会上,面对果粉转安卓旗舰机,这三款手机值得一看以往说起高端机,相信大家都会想起苹果三星以及华为,但自从华为落幕之后,国内再也没有能与之抗衡的手机品牌。其实这几年苹果进步真的是看得见的。除了极为流畅的iOS系统之外,其它升级的方iphoneSE2022年01月01日新消息iphoneSEiphoneSE2022年01月01日新消息无惧小米12?苹果将推iPhoneSE3性能更强价格更低!重庆苹果SE2畅销价2299元64G国行版iPhoneSE3小培养创新思维,推荐这4本书编者按创新是世界发展的动力来源,也是科学技术的生命,对于个人企业乃至国家而言,只有创新才能具有竞争力,更好的拥抱变化。那么有哪些思维可以帮助我们创新,激发创造力,助推企业的发展?这荒天下之大谬,驳联想员工自述联想争议事件持续发酵,官方沉默,员工自述试水,下面让我们来看看这份自述。第一条,联想因为是中国公司受到欧美不公正待遇,联想超算赢得韩国马来西亚等国气象局订单。是否受到不公正待遇暂且