go面向对象编程三大特性,封装、继承和多态

1.简介

go具有面向对象编程的封装、继承和多态的特性,只是实现的方式和其它OOP语言不一样,下面看下go的三大特性是如何实现的。

2.封装

2.1基本介绍

封装就是把抽象出的字段和对字段的操作封装在一起,数据被保护在内部,程序的其它包只能通过被授权的操作(方法),才能对字段进行操作。

优点:

  • 隐藏细节。
  • 可以对数据进行验证,保证安全合理。

2.2封装的实现步骤

  1. 将结构体、字段(属性)的首字母小写(不能导出了,其他包不能使用)。
  2. 给结构体所在包提供一个工厂模式的函数,首字母大写。类似一个构造函数。
  3. 提供一个首字母大写Set方法(类似java中的public),用于堆属性判断并赋值。
  4. 提供一个首字母大写的Get方法,用于获取属性的值。

2.3案例 

2.3.1案例一

需求:封装一个小学生程序,不能随便查看学生的年龄、姓名和性别。

设计:model包main包调用学生对象

model包里面的student.go

package model

import "fmt"

// 结构体和属性首字母小写其他包不能直接访问
type student struct {
	ID   int
	name string
	age  int
	sex  string
}

func (s *student) SetName(name string) {
	if len(name) > 1 && len(name) < 5 {
		s.name = name
	} else {
		fmt.Println("请输入正确的姓名!")
	}

}
func (s *student) GetName() string {
	return s.name
}
func (s *student) SetAge(age int) {
	if age > 6 && age < 12 {
		s.age = age
	} else {
		fmt.Println("年龄不在指定范围")
	}
}
func (s *student) GetAge() int {
	return s.age
}
func (s *student) SetSex(sex string) {
	if 

你可能感兴趣的:(Golang基础篇,golang,开发语言,后端,go封装继承多态,封装,多态,继承)