golang面向对象简单运用
应用一
package main import "fmt" /* 1.声明(定义)结构体,确定结构体名 2.编写结构体的字段 3.编写结构体的方法 案例 1.编写一个Student结构体,包含name、gender、age、id、score字段,分别为string、string、int、int、float64类型 2.结构体中声明一个say方法,返回string类型,方法返回信息中包含所有字段值。 3.在main方法中创建Student结构体实例(变量),并访问say方法,调用结果打印输出 */ type Student struct { name string gender string age int id int score float64 } func (student *Student) say() string { infoStr := fmt.Sprintf("student的信息 name=[%v] gender=[%v] age=[%v] id=[%v] score=[%v]", student.name, student.gender, student.age, student.id, student.score) return infoStr } func main() { var stu = Student{ name: "star", gender: "boy", age: 15, id: 1008611, score: 100, } infoStr := stu.say() fmt.Println(infoStr) }
应用二
package main import "fmt" //创建一个Box结构体,在其中声明三个字段表示一个立方体的长宽高,长宽高要从终端获取 //声明一个方法获取立方体的体积 //创建一个Box结构体变量,打印给定尺寸的立方体体积 type Box struct { length float64 width float64 hight float64 } func (box *Box) getVolumn() float64 { return box.length * box.hight * box.width } func main() { var box Box box.length = 1.1 box.width = 2.2 box.hight = 3.3 sum := box.getVolumn() fmt.Println("体积为 ", sum) }
应用三
package main import "fmt" //一个景区根据游人的年龄收取不同价格的门票,比如年龄大于18,收费20元,其他情况门票免费 //编写一个Visitor结构体,根据年龄段决定能够购买的门票价格并输出 type Visitor struct { Age int Name string } func (visitor *Visitor) buy() { if visitor.Age >= 90 || visitor.Age <= 8 { fmt.Printf("游客名字为 %v 年龄为 %v 年龄不符合,谢绝游玩\n", visitor.Name, visitor.Age) } else 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 visitor Visitor for { fmt.Println("请输入姓名:") fmt.Scanln(&visitor.Name) if visitor.Name == "n" { fmt.Println("退出程序") break } fmt.Println("请输入年龄:") fmt.Scanln(&visitor.Age) visitor.buy() } }