In Go, object-oriented programming is implemented using structures and methods: define a structure to represent a custom data type and contain data fields. Define methods to manipulate and modify structure instances. Methods are associated by the receiver type (that is, the structure). Use structures and methods to manage data, such as creating instances, accessing information, and modifying data.
Object-oriented programming practice in Go language
In Go language, object-oriented programming (OOP) uses structures and methods to fulfill. This article will guide you in using Go language for OOP programming and deepen your understanding through practical cases.
Structure
Structure is a mechanism for defining custom data types in the Go language. It contains a set of data fields of the same type. Create a structure as shown below:
type Person struct { name string age int }
This structure defines a type named Person
, which contains two fields: name
(String ) and age
(integer type).
Methods
Methods are functions associated by the receiver type (i.e. structure). They are used to manipulate and modify structure instances. Define a method for the structure as follows:
func (p *Person) Greet() { fmt.Printf("你好,我的名字是 %s\n", p.name) }
This method receives a Person
structure pointer p
as a parameter and uses p
Access structure fields. It prints a welcome message with the value of the name
field of the structure.
Practical Case: Employee Management
Now, let’s take a look at a practical case to show how to use OOP to manage employee information in Go.
// 定义员工结构体 type Employee struct { name string salary int manager *Employee // 指向经理的指针 } // 为员工结构体定义方法 func (e *Employee) GetSalary() int { return e.salary } func (e *Employee) Promote(salary int) { e.salary = salary } func main() { // 创建员工实例 ceo := Employee{name: "Tim", salary: 100000} manager := Employee{name: "Bob", salary: 50000, manager: &ceo} employee := Employee{name: "John", salary: 20000, manager: &manager} // 访问员工信息 fmt.Printf("CEO 的薪水:%d\n", ceo.GetSalary()) fmt.Printf("经理的薪水:%d\n", manager.GetSalary()) fmt.Printf("员工的薪水:%d\n", employee.GetSalary()) // 提升经理的薪水 manager.Promote(60000) fmt.Printf("经理的新薪水:%d\n", manager.GetSalary()) }
In this example, we create three employee instances: CEO, manager, and employee. Each employee has a name
and salary
field, and the manager also has a pointer to their manager
. We also defined methods for the structure to obtain and modify the employee's salary.
In the main
function, we create these employee instances and access their information. We also show how to increase a manager's salary and print out his new salary.
The above is the detailed content of Object-oriented programming practice in Go language. For more information, please follow other related articles on the PHP Chinese website!