go 面向对象编程1

2019-09-27  本文已影响0人  StevenQin
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)
}
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())
}

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

上一篇下一篇

猜你喜欢

热点阅读