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
結論
我們透過兩個例子執行了演示類中資料隱藏的程式。在第一個例子中,我們使用了結構體和方法,在第二個例子中,我們使用了介面以及結構體和方法。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP