多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] >[success] ## **1:抽象介绍** 我们在前面去定义一个结构体时候,实际上就是把一类事物的共有的属性(字段)和行为方法)提取出来,形成一个物理模型(结构体)。这种研究问题的方法称为抽象。 ![](https://img.kancloud.cn/de/c3/dec38315b9b8b4af43aa126caf3137cb_1280x429.png) ![](https://img.kancloud.cn/ec/66/ec6663f214060143be3eea9007a3bf90_978x720.png) ![](https://img.kancloud.cn/bd/09/bd093da39900a4d10c14ca4156f9c0e7_1280x589.png) ![](https://img.kancloud.cn/9c/c1/9cc112a49ab1ceaeca14a7475fb99ab6_1280x495.png) <br> <br> >[success] ## **2:面向对象之封装** **封装实现步骤** 1)将结构体、字段(属性)的首字母小写(不能导出了,其它包不能使用,类似private 2)给结构体所在包提供一个工厂模式的函数,首字母大写。类似一个构造函数 3)提供一个首字母大写的Set 方法(类似其它语言的public),用于对属性判断并赋值 ``` func (var结构体 类型名) SetXxx(参数列表) (返回值列表) { //加入数据验证的业务逻辑 Var 字段 = 参数 } ``` 4)提供一个首字母大写的Get方法(类似其它语言的public),用于获取属性的值 ``` func (var结构体类型名) GetXxx0 { retum var.age; } ``` **特别说明:** 在Golang开发中并没有特别强调封装,这点并不像Java.所以提醒学过java的朋友,不用总是用java的语法特性来看待Golang, Golang本身对面向对象的特性做了简化的. <br> <br> **封装案例** ***Modelto.go*** ![](https://img.kancloud.cn/18/45/1845c165714ef9ac1af9208675061311_810x720.png) ***main.go*** ![](https://img.kancloud.cn/6c/e9/6ce92fc35388ad1a91396315d5f02562_1067x720.png) ### **2.1:封装的课堂练习** ***modelto.go*** ![](https://img.kancloud.cn/15/fb/15fb2ac90c268182e4a439a9264fdf9d_823x720.png) ***main.go*** ![](https://img.kancloud.cn/de/4f/de4f84da2b4a18c306aabde5f4c643da_1044x720.png)