zoukankan      html  css  js  c++  java
  • 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{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())
    }
  • 相关阅读:
    coder的脚印
    Mysql
    MSDos
    Windows Develop
    Eclipse 使用总结
    DBA常用SQL
    SSH总结
    Unity3D协程
    yield的作用
    UGUI优化
  • 原文地址:https://www.cnblogs.com/yahue/p/3732544.html
Copyright © 2011-2022 走看看