Golang(笔记) 面向对象

来源:转载

package main

import (

"fmt"

)

//对象定义

type Rect struct{

x,y float64

width ,height float64

}

//对象方法实现

func (r *Rect) Area()float64{

return r.width*r.height

}

//Go语言没有构造函数的概念

//对象的创建通常交由一个全局的创建函数NewXXX来命名 标识构造函数

func NewRect(x,y,width,height float64) *Rect{

return &Rect{x,y,width,height}

}

//Go 也提供了继承 但是采用了组合的文法 称之为匿名组合

//匿名组合 示例

type Base struct{

Name string

}

func (base *Base) Foo(){

base.Name="Base Foo2"

}

func (base *Base)Bar(){

base.Name="Base Bar"

}

type Foo struct{

Base

Name1 string

}

func (foo *Foo) Bar(){

foo.Base.Bar()

}

func main() {

rect:=new(Rect)

rect1:=&Rect{width:109,height:10}

rect2:=&Rect{1,2,3,4}

rect.width=19.9

rect.height=22.1

foo:=&Foo{}

foo.Foo();

fmt.Println(foo.Name)

fmt.Println(rect.Area())

fmt.Println(rect1.Area())

fmt.Println(rect2.Area())

}

 


分享给朋友:
您可能感兴趣的文章:
随机阅读: