Golang程序 显示类中的数据隐藏
在 Golang 中,数据隐藏是一种防止外部代码访问或改变类的成员的做法。这是通过将类的成员指定为私有来实现的,这就限制了只有类的方法才能访问或修改它们。这是面向对象编程的一个重要思想,因为它确保了数据的完整性和类的正常运行。
语法
struct
结构是Go编程语言中使用的一种复合数据类型,可以将各种类型的相关值汇集在一起,如字段的集合或方法的集合。与面向对象语言中的类相似,结构可以用来定义新的类型。三维空间中的一个点、一个用户账户或一个时间点只是经常使用它们定义的数据结构类型的几个例子。方法是与特定结构类型相连的函数,可用于对结构中的数据进行操作,这是结构的另一个特点。
算法
- 第1步– 创建一个包main并声明fmt(格式包)包
-
第2步– 下一步是定义一个名为 “MyStruct “的结构,属性为 “private_data “和 “public_data”。
-
第3步– MyStruct在main函数中被创建为一个实例,其公共方法publicmethod被调用。
-
第4步– 从main中调用该公共方法来执行程序。
例子1
在这个例子中,我们将看到如何使用结构和方法来展示数据隐蔽性。这个结构有两个字段:private_data和public_data,此外它还包含两个方法publicmethod和privatemethod。
package main
import "fmt"
type MyStruct struct {
private_data int // private field
public_data int // public field
}
func (m *MyStruct) privatemethod() { //private method
fmt.Println("This is a private method")
fmt.Println("Private data:", m.private_data)
}
func (m *MyStruct) publicmethod() { //public method
fmt.Println("This is a public method")
fmt.Println("Public data:", m.public_data)
m.privatemethod() //call privatemethod to print the data
}
func main() {
myStruct := MyStruct{
private_data: 42, //assigning data to private field
public_data: 27, // assigning data to public field
}
myStruct.publicmethod()
}
输出
This is a public method
Public data: 27
This is a private method
Private data: 42
例子2
在这个例子中,我们将看到如何使用接口来展示类中的数据隐藏。
package main
import "fmt"
type MyInterface interface {
publicmethod() //define publicmethod
}
type MyStruct struct {
private_data int //create private data
}
func (m *MyStruct) privatemethod() {
fmt.Println("This is a private method")
fmt.Println("Private data:", m.private_data) //print private data
}
func (m *MyStruct) publicmethod() {
fmt.Println("This is a public method")
m.privatemethod() //call privatemethod to print the data
}
func main() {
myStruct := MyStruct{private_data: 42}
var myInterface MyInterface = &myStruct
myInterface.publicmethod() //call public method
}
输出
This is a public method
This is a private method
Private data: 42
结论
我们用两个例子执行了展示类中数据隐藏的程序。在第一个例子中,我们使用了结构和方法,而在第二个例子中,我们将接口与结构和方法一起使用。