面向對象編程應用實例


步驟:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM