Go语言程序演示类中的数据隐藏


在Go语言中,数据隐藏是一种阻止外部代码访问或修改类成员的实践。这是通过将类的成员指定为私有来实现的,这限制了只有类的成员方法才能访问或修改它们。这是面向对象编程中的一个关键概念,因为它可以确保数据的完整性和类的正确运行。

语法

struct

结构体是Go编程语言中使用的一种复合数据类型,它允许您将各种类型的相关值组合在一起,例如字段的集合或方法的集合。类似于面向对象语言中的类,结构体可以用来定义新的类型。例如,三维空间中的一个点、一个用户帐户或一个时间点,都是经常使用结构体定义的数据结构类型。结构体的另一个特性是方法,方法是与特定结构体类型相关联的函数,可以用来对结构体中的数据执行操作。

算法

  • 步骤 1 − 创建一个名为main的包,并声明fmt(格式化包)包

  • 步骤 2 − 下一步是定义一个名为“MyStruct”的结构体,它具有“private_data”和“public_data”属性。

  • 步骤 3 − 在main函数中创建MyStruct的一个实例,并调用其公共方法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

结论

我们通过两个例子执行了演示类中数据隐藏的程序。在第一个例子中,我们使用了结构体和方法,在第二个例子中,我们使用了接口以及结构体和方法。

更新于: 2023年2月1日

265 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告