美文网首页
go 面向对象编程1

go 面向对象编程1

作者: StevenQin | 来源:发表于2019-09-27 23:09 被阅读0次
    • 步骤


      image.png
    • 案例1
    package main
    
    import "fmt"
    
    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
        stu.name="stevn.qin"
        stu.gender="男"
        stu.age=30
        stu.id=68
        stu.score=300
        res :=stu.say()
        fmt.Println(res)
    }
    
    • 案例2 计算盒子的体积


    package main
    
    import "fmt"
    
    type Box struct {
        len    float64
        width  float64
        height float64
    }
    
    func (box *Box) getVolumn() float64 {
        return box.len * box.width * box.height
    }
    
    func main() {
        var box = Box{
            len:78.9,
            width:12.3,
            height:5.1,
        }
        fmt.Printf("体积为:%.1f\n",box.getVolumn())
    }
    
    
    • 门票案例


      image.png
    package main
    
    import "fmt"
    
    type Visitor struct {
        Name string
        Age  int
    }
    
    func (visitor *Visitor) showPrice() {
        if visitor.Age > 90 || visitor.Age < 8 {
            fmt.Println("出于安全考虑,建议不要入园游玩..感谢您的谅解")
            //因为方法没有返回值,所以就return就可以了
            return
        }
        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.showPrice()
        }
    }
    
    

    相关文章

      网友评论

          本文标题:go 面向对象编程1

          本文链接:https://www.haomeiwen.com/subject/ssfzuctx.html