golang面向对象简单运用

1|0应用一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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)
}

2|0应用二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)
}

3|0应用三

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()
    }
 
}

  


__EOF__

本文作者StarGazer
本文链接https://www.cnblogs.com/PatrickStarGazer/p/15982780.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Star_Gazer  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示