面向對象編程應用實例

步驟:編程

1)聲明(定義)結構體,肯定結構體名
2)編寫結構體的字段
3)編寫結構體的方法安全

學生案例:get

1)編寫一個Student結構體,包含name、gender、age、id、score字段,分別爲string、string、int、int、float64類型。string

2)結構體中聲明一個say方法,返回string類型,方法返回信息中包含全部字段值。it

3)在main方法中,建立Student結構體實例(變量),並訪問say方法,並將調用結果打印輸出。變量

案例演示:終端

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

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 : "tom",
    Gender : "male",
    Age : 18,
    Id : 1000,
    Score : 99.98,
  }
  str := stu.say()
  fmt.Println(str)
}方法


小狗案例:
1)編寫一個Dog結構體,包含name、age、weight字段

2)結構體中聲明一個say方法,返回string類型,方法返回信息中包含全部字段值。

3)在main方法中,建立Dog結構體實例(變量),並訪問say方法,將調用結果打印輸出。

案例演示:
type Dog struct {
  Name string
  Age int
  Weight float64
}

func (dog *Dog) say() string {
  infoStr := fmt.Sprintf("dog的信息 name=[%v] age=[%v] weight=[%v]",
  dog.Name, dog.Age, dog.Weight)
  return infoStr
}

func main() {
  var stu = Dog{
    Name : "jim",
    Age : 4,
    Weight : 32.2,
  }
  str := stu.say()
  fmt.Println(str)
}


盒子案例:

1)編程建立一個Box結構體,在其中聲明三個字段表示一個立方體的長、寬和高,長寬高要從終端獲取

2)聲明一個方法獲取立方體的體積。

3)建立一個Box結構體變量,打印給定尺寸的立方體的體積。

案例演示:

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
  box.len = 1.1
  box.width = 2.0
  box.height = 3.0

  volumn := box.getVolumn()
  fmt.Printf("體積爲=%.2f", volumn)
}

 

景區門票案例:

1)一個景區根據遊人的年齡收取不一樣價格的門票,好比年齡大於18,收費20元,其它狀況門票免票。

2)請編寫Visitor 結構體,根據年齡段決定可以購買的門票價格並輸出


案例演示:

type Visitor struct {
  Name string
  Age int
}

func (visitor *Visitor) showPrice() {
  if visitor.Age >= 90 || visitor.Age <= 8 {
    fmt.Println("出於安全考慮,拒絕進入")
    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 v Visitor   for {     fmt.Println("請輸入你的名字")     fmt.Scanln(&v.Name)     if v.Name == "n" {       fmt.Println("退出程序...")       break     }     fmt.Println("請輸入你的年齡")     fmt.Scanln(&v.Age)     v.showPrice()   }}

相關文章
相關標籤/搜索