面向对象编程应用步骤

声明(定义)结构体,确定结构体名;编写结构体字段;编写结构体方法。

案例

一个景区根据游人的年龄收取不同价格的门票,比如年龄大于18,收费20元;8岁到18岁之间门票免费;年龄小于8岁或者大于80岁,就不能来玩了;编写Visitor结构体,根据年龄决定能够购买的门票价格并输出。从控制台接收姓名和年龄,来判断是否免费,如果结束控制台的接收,输入n即可。

代码如下:

package mainimport ("fmt")type Visitor struct {Name stringAge 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 Visitorfor {fmt.Print("请输入名字:")fmt.Scanln(&v.Name)if v.Name == "n" {fmt.Println("退出程序...")break}fmt.Print("请输入年龄:")fmt.Scanln(&v.Age)v.showPrice()}}

执行结果如下图所示: