person.go
package model
import "fmt"
type person struct {
Name string
age int // 其他包不能访问
salary int
}
// 写一个工厂模式的函数,相当于构造函数
func NewPerson(name string) *person {
return &person{
Name: name,
}
}
// 为了访问age 和 salary 我们编写一对 SetXxx 和 GetXxx 的方法
func (p *person) SetAge(age int) {
if age >0 && age < 150 {
p.age = age
} else {
fmt.Println("年龄范围不正确")
}
}
func (p *person) GetAge() int {
return p.age
}
func (p *person) SetSalary(salary int) {
if salary > 3000 && salary < 30000 {
p.salary = salary
} else {
fmt.Println("薪水范围不正确")
}
}
func (p *person) GetSalary() int {
return p.salary
}
package model
import "fmt"
type person struct {
Name string
age int // 其他包不能访问
salary int
}
// 写一个工厂模式的函数,相当于构造函数
func NewPerson(name string) *person {
return &person{
Name: name,
}
}
// 为了访问age 和 salary 我们编写一对 SetXxx 和 GetXxx 的方法
func (p *person) SetAge(age int) {
if age >0 && age < 150 {
p.age = age
} else {
fmt.Println("年龄范围不正确")
}
}
func (p *person) GetAge() int {
return p.age
}
func (p *person) SetSalary(salary int) {
if salary > 3000 && salary < 30000 {
p.salary = salary
} else {
fmt.Println("薪水范围不正确")
}
}
func (p *person) GetSalary() int {
return p.salary
}
package model import "fmt" type person struct { Name string age int // 其他包不能访问 salary int } // 写一个工厂模式的函数,相当于构造函数 func NewPerson(name string) *person { return &person{ Name: name, } } // 为了访问age 和 salary 我们编写一对 SetXxx 和 GetXxx 的方法 func (p *person) SetAge(age int) { if age >0 && age < 150 { p.age = age } else { fmt.Println("年龄范围不正确") } } func (p *person) GetAge() int { return p.age } func (p *person) SetSalary(salary int) { if salary > 3000 && salary < 30000 { p.salary = salary } else { fmt.Println("薪水范围不正确") } } func (p *person) GetSalary() int { return p.salary }
main.go
package main
import (
"fmt"
"tianqi-api/tests/study/encapsue/model"
)
func main() {
p := model.NewPerson("gopher.cc")
p.SetAge(10)
p.SetSalary(5000)
fmt.Println(p)
fmt.Println("name =", p.Name, " age =", p.GetAge(), " salary =", p.GetSalary())
}
package main
import (
"fmt"
"tianqi-api/tests/study/encapsue/model"
)
func main() {
p := model.NewPerson("gopher.cc")
p.SetAge(10)
p.SetSalary(5000)
fmt.Println(p)
fmt.Println("name =", p.Name, " age =", p.GetAge(), " salary =", p.GetSalary())
}
package main import ( "fmt" "tianqi-api/tests/study/encapsue/model" ) func main() { p := model.NewPerson("gopher.cc") p.SetAge(10) p.SetSalary(5000) fmt.Println(p) fmt.Println("name =", p.Name, " age =", p.GetAge(), " salary =", p.GetSalary()) }