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()
	}

}

  

posted @ 2022-03-08 22:09  Star_Gazer  阅读(60)  评论(0编辑  收藏  举报