面向对象编程应用步骤:
- 声明(定义)结构体,确定结构体名;
- 编写结构体字段;
- 编写结构体方法。
案例:
- 一个景区根据游人的年龄收取不同价格的门票,比如年龄大于18,收费20元;8岁到18岁之间门票免费;年龄小于8岁或者大于80岁,就不能来玩了;
- 编写Visitor结构体,根据年龄决定能够购买的门票价格并输出。
- 从控制台接收姓名和年龄,来判断是否免费,如果结束控制台的接收,输入n即可。
代码如下:
package main
import (
"fmt"
)
type Visitor struct {
Name string
Age int
}
func (visitor *Visitor) showPrice() {
if visitor.Age >= 80 || visitor.Age <= 8 {
fmt.Println("考虑到安全,就不要玩了")
return
}
if visitor.Age >18 {
fmt.Printf("顾客的名字为:%v,年龄为:%v,收费20元 n",visitor.Name,visitor.Age)
} else {
fmt.Printf("顾客的名字为:%v,年龄为:%v,免费 n",visitor.Name,visitor.Age)
}
}
func main() {
//测试
var v Visitor
for {
fmt.Print("请输入名字:")
fmt.Scanln(&v.Name)
if v.Name == "n" {
fmt.Println("退出程序...")
break
}
fmt.Print("请输入年龄:")
fmt.Scanln(&v.Age)
v.showPrice()
}
}
执行结果如下图所示: