摘要:
main package main import "github.com/项目-家庭收支记账软件/面向对象/utils" func main() { utils.NewFamilyAccount().MainMenu() } familyAccount package utils import "f 阅读全文
摘要:
package main import "fmt" func main() { //声明一个变量,保存接受用户输入的选项 var key int //声明一个变量,控制是否退出for循环 loop := true //定义账户余额 balance := 10000.00 //每次收支的金额 mone 阅读全文
摘要:
package main import "fmt" type Usb interface { Start() Stop() } //手机 type Phone struct { Name string } //相机 type Camera struct { Name string } //计算机 t 阅读全文
摘要:
package main import "fmt" //继承与接口之间的区别 //猴子生来会爬树,为继承,猴子学会游泳,为接口 /* 当A结构体继承了B结构体,那么A结构体就自动继承了B结构体的字段和方法,并且可以直接使用 当A结构体需要扩展功能,同时不希望去破坏继承关系,则可以去实现某个接口即可, 阅读全文
摘要:
package main import ( "fmt" "math/rand" "sort" ) //Hero结构体 type Hero struct { Name string Age int } //Hero结构体切片 type HeroSlice []Hero //实现interface接口 阅读全文
摘要:
package main import "fmt" /* interface类型可以定义一组方法,但是这些不需要实现 并且interface不能包含任何变量 到某个自定义类型要使用的时候,再根据具体情况把这些方法写出来 基本语法 type 接口名 interface{ method1(参数列表)返回 阅读全文
摘要:
package main import "fmt" type Usb interface { Start() Stop() } //手机 type Phone struct { } //相机 type Camera struct { } //计算机 type Computer struct { } 阅读全文
摘要:
package main import "fmt" type testA struct { Name string age int } func (testa *testA) SayOk() { fmt.Println("testA Sayok", testa.Name) } func (testa 阅读全文
摘要:
package main import ( "fmt" ) //继承可以解决代码复用,让编程更加接近人类思维 //当多个结构体存在相同属性和方法时,可以从这些结构体中抽象出结构体,在该结构体中定义这些相同的属性和方法 //其他结构体不需要重新定义这些属性和方法,只需要嵌套一个匿名结构体即可 //也就 阅读全文
摘要:
main.go package main import ( "fmt" "github.com/面向对象编程/面向对象编程思想/封装/model" ) /* 封装(encapsulation)就是把抽象出的字段和字段的操作封装在一起, 数据被保护在内部,程序的其他包只有通过被授权的操作,才能对字段进 阅读全文