golang需要java基础吗

golang需要java基础吗Golang 进阶 1 面向对象 注意 该文档只适合有编程基础的同学 这里的 go 教程只给出有区别的知识点 go 语言面向对象说明 Golang 与传统的面向编程的语言有区别 并不是纯粹的面向对象编程 OOP 所 golang 需要 java 基础吗以更加准确的说法是 Golang 支持面向对象编程特性

大家好,我是讯享网,很高兴认识大家。



Golang 进阶1 —— 面向对象

注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点

go语言面向对象说明

  1. Golang与传统的面向编程的语言有区别,并不是纯粹的面向对象编程(OOP)。所golang需要java基础吗以更加准确的说法是Golang支持面向对象编程特性。
  2. Golang本身是没有类(class)的概念的, Golang的结构体和其他编程语言的类(class)有同等的地位, 可以理解为Golang是基于struct来实现OOP特性的。
  3. Golang面向编程非常整洁,去掉了传统OOP语言的方法重载、构造函数和析构函数、隐藏this指针etc。
  4. Golang 仍然有面向对象编程的继承、封装和多态的特性,只是实现的方式和其他OOP语言不一样,比如继承Golang没有extends关键字,继承是通过匿名字段来实现的。

1. 结构体定义

1.1 main文件
 
讯享网 
1.2 输出结果
讯享网
1.3 结构体方法
 
1.4 输出结果
讯享网
1.5 方法与函数的区别
 
1.6 输出结果
 
1.7 赋值操作
 
1.8 输出结果
 
1.9 跨包引用结构体实例
1.9.1 Student.go 文件
 
1.9.2 main.go 文件
 
1.9.3 输出结果
 
1.10 工厂模式: 解决结构体首字母小写,但是跨包访问没问题
1.10.1 Student.go 文件
 
1.10.2 main.go 文件
 
1.10.3 输出结果
 
1.11 封装

封装(encapsulation)就是把抽象出来的字段和对字段的操作封装在一起, 数据被保护在内部,程序的其他包只有通过被授权的操作方法,才能对字段进行操作

封装的好处: (1) 隐藏实现细节(2)可以对数据进行验证, 保证安全合理

Golang 实现封装:

  • 将结构体、 字段(属性) 的首字母小写(其他包) 不能使用, 类似于private(实际开发不小写也可能)
  • 给结构体所在包提供一个工厂模式的函数, 首字母大写(类似于一个构造函数)
  • 提供一个首字母大写的set方法(类似于其他语言的public),用于对属性判断赋值

    func (var 结构体类型名) SetXXX (参数列表) {

    ​ //加入数据验证的业务逻辑

    ​ var.Age = 参数

    }

  • 提供一个首字母大写的Get方法(类似于其他语言的public), 用于获取属性的值

    func (var 结构体类型名) GetXXX (参数列表) {

    ​ //加入数据验证的业务逻辑

    ​ return var.字段

    }

1.11.1 Student.go 文件
 
1.11.2 main.go 文件
 
1.11.3 输出结果
 
1.12 继承(提高代码复用性)
1.12.1 Animal.go 文件
 
1.12.2 main.go 文件
 
1.12.3 输出结果
 
1.13 接口

(1)接口可以定义一组方法,但不需要实现,不需要方法体。并且接口中不能包含任何变量。到某个定义类型要使用的时候,再根据具体情况把这些方法具体实现出来

(2)实现接口要实现所有方法才是实现

(3)Golang中的接口是基于方法的,不是基于接口的

1.13.1 main.go 文件
 
1.13.2输出结果
 
1.14 断言
1.14.1 main文件
 
1.14.2 输出结果
小讯
上一篇 2024-12-26 15:03
下一篇 2025-01-02 13:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/2557.html