Golang 显示类中的数据隐藏

Golang 显示类中的数据隐藏

在Golang中,数据隐藏是一种防止外部代码访问或更改类成员的做法。这通过将类的成员指定为私有成员来实现,从而限制对它们的访问或修改仅限于类的方法。这是面向对象编程中的一个关键概念,因为它确保数据的完整性和类的正确运行。

语法

struct

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

步骤

  • 步骤1 - 创建一个main包并声明fmt(格式化包)包

  • 步骤2 - 下一步是定义一个名为”MyStruct”的结构体,其属性为”private_data”和”public_data”。

  • 步骤3 - 在main函数中创建MyStruct作为实例,并调用其公共方法publicmethod。

  • 步骤4 - 从主函数中调用公共方法来执行程序。

示例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

结论

我们执行了展示类中数据隐藏的程序,使用了两个示例。在第一个示例中,我们使用了结构体和方法;在第二个示例中,我们使用了接口、结构体和方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程