Golang(笔记) 面向对象

来源:互联网 发布:风月知相思蓝语凌云 编辑:程序博客网 时间:2024/05/29 10:38
package main import ("fmt")//对象定义type Rect struct{x,y float64width ,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{BaseName1 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.9rect.height=22.1foo:=&Foo{}foo.Foo();fmt.Println(foo.Name)fmt.Println(rect.Area())fmt.Println(rect1.Area())fmt.Println(rect2.Area())}
转自 http://www.cnblogs.com/yahue/p/3732544.html
0 0