go学习 day199 面向对象编程应用实例

学生案例

1)编写一个Student结构体,包含name、gender、age、id、score字段,分别为string、string、int、int、float64类型
2)结构体中声明一个say方法,返回string类型,方法返回信息中包含所有字段值
3)在main方法中,创建Student结构体实例(变量),并访问say方法,并将调用结果打印输出

package main

import "fmt"

type Student struct {
	Name string
	Gender string
	Age int
	Id int
	Score float64
}


func (s *Student) say() string {
	return fmt.Sprintf("student的信息 name=[%v] gender=[%v] age=[%v] id=[%v] score=[%v]",
		s.Name,s.Gender,s.Age,s.Id,s.Score)
}

func main() {
	var n1  = Student{
		Name:   "tom",
		Gender: "male",
		Age:    18,
		Id:     125,
		Score:  99.56,
	}
	res := n1.say()
	fmt.Println(res)

小狗案例

1)编写一个Dog结构体,包含name、age、weight字段
2)结构体声明一个say方法,返回string类型,方法返回信息中包含所有字段值
3)在 main 方法中,创建 Dog 结构体实例(变量),并访问 say 方法,将调用结果打印输出。

package main

import "fmt"

type Dog struct {
	name string
	age int
	weight float64
}

func (d Dog) say() string {
	return fmt.Sprintf("Dog的详情 name=[%v] age=[%v] weight[%v]",d.name,d.age,d.weight)
}

func main() {
	var n2 = Dog{
		name:"tom",
		age:56,
		weight: 52.3,
	}
	fmt.Println(n2.say())
}

盒子案例

1)编程创建一个 Box 结构体,在其中声明三个字段表示一个立方体的长、宽、高,长宽高要求从终端获取
2)声明一个方法获取立方体的体积
3)创建一个 Box 结构体变量,打印给定尺寸的立方体的体积

点击查看代码
package main

import "fmt"

type Box struct {
	long float64
	wide float64
	high float64
}

func (b *Box) volume() float64 {
	return b.long * b.high * b.wide
}

func main() {
	var n3 = Box{
		long: 3,
		wide: 2.4,
		high: 1.2,
	}
	res := n3.volume()
	fmt.Printf("体积为%.2f",res)		// 保留两位小数
}

景区门票案例

1)一个景区根据游人的年龄收取不同价格的门票,比如年龄大于18,收费20元,其他情况门票免费
2)请编写Visitor结构体,根据年龄段决定能够购买的门票价格并输出

点击查看代码
package main

import (
	"fmt"
)

type Visitor struct {
	name string
	age int
}

func (v Visitor) price()  {
	fmt.Println(v.name,v.age)
	if v.age > 18 {
		fmt.Printf("%v的年龄为: %v,门票价格为:20元",v.name,v.age)
	}	else {
		fmt.Printf("%v的年龄为: %v,门票免费",v.name,v.age)
	}
}

func main() {
	var v Visitor
	fmt.Println("请输入姓名:")
	fmt.Scanln(&v.name)
	fmt.Println("请输入年龄:")
	fmt.Scanln(&v.age)

	v.price()
}

posted @ 2023-03-02 16:13  六月OvO  阅读(13)  评论(0编辑  收藏  举报