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()
}
本文来自博客园,作者:六月OvO,转载请注明原文链接:https://www.cnblogs.com/chenlifan/p/17172172.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App