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

Golang(笔记) 面向对象,布布扣,bubuko.com

时间: 2024-10-24 15:30:42

Golang(笔记) 面向对象的相关文章

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

个人对golang的面向对象的理解------接口(interface)

golang是面向对象语言,但是他并没有class之类的关键字,他是通过struct和interface组合实现了面向对象的概念. 转载请注明出处:http://www.cnblogs.com/SSSR/p/6351661.html 在golang中面向对象的实现顺序: 1.先定义struct,是对象的属性值,如: type Person struct { id int name string} 2.定义对象需要实现的函数,如: func (self Person) codingEveryday

JavaScript高级程序设计学习笔记--面向对象程序设计

工厂模式 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为解决这个问题,人们开始使用 工厂模式的一种变体. function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var

笔记-[面向对象]-JS基于面向对象编程-[1]

面向对象(oop):是一种开发过程中,以面向对象的一种编程思维进行开发. 在JS中,我们一般采用的是面向过程的开发. 面向对象的特点:抽象.封装.继承.多态 先看看自定义对象如何写:自定义一个人的对象,人的名字,年龄,或者是说话.在下面,name age是这个人的属性,说话是这个人的一种行为,也可以叫方法.这样也可以理解为一个简单的面向对象的编程.对象从哪里来,如 var arr=new Array();这个就是一个数组的对象,它从js的一个内定的系统方法类来的. 例如:定义一个人的类,每一个人

[学习笔记]面向对象开发中的一些思想和原则

摘自<Java与模式>作者阎宏 面向对象的可复用设计的第一块基石:开闭原则(一个软件实体应当对扩展开放,对修改关闭) "开-闭"原则的手段和工具: 1)里氏代换原则:任何基类出现的地方,子类一定可以出现: 2)依赖倒转原则:要依赖于抽象,不要依赖于实现: 3)合成\聚合复用原则:要尽量使用合成\聚合,而不是继承关系达到复用的目的: 4)迪米特法则:一个软件实体应该与尽可能少的其它实体发生相互作用: 5)接口隔离原则:应当为客户端提供尽可能小的单独的接口,而不要提供大的总接口

笔记-[面向对象]-JS基于面向对象编程-[2]

下面是一个类定义私有属性的例子,和如何在类外部调用类内容的私有属性, <script type="text/javascript">var people=function(name,work,address){ var marry=1;//定义一个私有属性 marry  私有属性和私有方法在外部不可以直接调用访问 this.name=name; this.work=work; this.address=address; this.calls=function(){ aler

golang的面向对象实现

GoLang的面向对象 通过golang实现面向对象的过程, 以及golang的继承关系 定义了动物, 定义了鸟类,鱼类, 最后的对象是 燕子, Nimo package main import "fmt" type Animal interface { Eat() Play() } type animal struct { name string } type Bird interface { Animal //匿名嵌入接口 Fly() } type bird struct { an

5.2-全栈Java笔记:面向对象的特征(一)继承 | 下

上节我们聊到「Java面向对象的特征:继承」这节我们继续聊一下继承的应用. Object类 Object类基本特性 Object类是所有Java类的根基类,也就意味着所有的JAVA对象都拥有Object类的属性和方法.如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类. [示例1]Object类 public class Person { ... } //等价于: public class Person extends   Object { ... } toStrin

4.3-全栈Java笔记:面向对象的内存分析

面向对象的内存分析 为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到"心中有数",通过更加形象的方式理解程序的执行方式. 老鸟建议:       本节是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程.Class对象.大家暂时可以不求甚解的了解,后期学了这两个概念再回头来看我们这篇内存分析,肯定收获会更大. Java虚拟机的内存可以分为三个区域:栈stack.堆heap.方法区

5.1-全栈Java笔记:面向对象的特征(一)继承 | 上

JAVA面向对象进阶 本章重点针对面向对象的三大特征:继承.封装.多态,进行详细的讲解.很多概念对于初学者来说,更多的是先进行语法性质的了解,不要期望,通过本章学习就"搞透面向对象".本章只是面向对象的起点,后面所有的章节说白了都是面向对象这一章的应用. 老鸟建议 建议大家,学习本章,莫停留!学完以后,迅速开展后面的章节.可以说这么说,以后所有的编程都是"面向对象"的应用而已! 继承(extend) 继承的实现 继承让我们更加容易实现类的扩展. 比如,我们定义了人类