Ciri berorientasikan objek dan contoh aplikasi dalam bahasa Go
Abstrak: Artikel ini akan memperkenalkan ciri dan contoh aplikasi pengaturcaraan berorientasikan objek dalam bahasa Go, dan menerangkan secara terperinci cara menggunakan idea berorientasikan objek untuk pengaturcaraan dalam bahasa Go melalui contoh kod.
Pengenalan: Pengaturcaraan berorientasikan objek ialah paradigma pengaturcaraan yang digunakan secara meluas Ia merangkum data dan operasi dalam objek dan melaksanakan logik program melalui interaksi antara objek. Dalam bahasa Go, pengaturcaraan berorientasikan objek juga mempunyai ciri unik dan contoh aplikasi, yang akan diperkenalkan secara terperinci dalam artikel ini.
1. Ciri berorientasikan objek
Contoh Kod 1:
package main import "fmt" type Rect struct { width float64 height float64 } func (r *Rect) Area() float64 { return r.width * r.height } func main() { rect := Rect{width: 3, height: 4} fmt.Println(rect.Area()) }
Contoh Kod 2:
package main import "fmt" type Animal struct { name string } func (a *Animal) SayName() { fmt.Println("My name is", a.name) } type Dog struct { Animal } func main() { dog := Dog{Animal: Animal{name: "Tom"}} dog.SayName() }
Sampel kod 3:
package main import "fmt" type Shape interface { Area() float64 } type Rect struct { width float64 height float64 } func (r *Rect) Area() float64 { return r.width * r.height } type Circle struct { radius float64 } func (c *Circle) Area() float64 { return 3.14 * c.radius * c.radius } func printArea(s Shape) { fmt.Println("Area:", s.Area()) } func main() { rect := &Rect{width: 3, height: 4} circle := &Circle{radius: 2} printArea(rect) printArea(circle) }
2. Contoh aplikasi berorientasikan objek
Contoh kod 4:
package main import "fmt" type Shape interface { Area() float64 Perimeter() float64 } type Rectangle struct { length float64 width float64 } func (r *Rectangle) Area() float64 { return r.length * r.width } func (r *Rectangle) Perimeter() float64 { return 2 * (r.length + r.width) } type Circle struct { radius float64 } func (c *Circle) Area() float64 { return 3.14 * c.radius * c.radius } func (c *Circle) Perimeter() float64 { return 2 * 3.14 * c.radius } func main() { rectangle := &Rectangle{length: 3, width: 4} circle := &Circle{radius: 2} shapes := []Shape{rectangle, circle} for _, shape := range shapes { fmt.Println("Area:", shape.Area()) fmt.Println("Perimeter:", shape.Perimeter()) } }
Contoh kod 5:
package main import "fmt" type Product struct { name string price float64 } type ShoppingCart struct { products []*Product } func (sc *ShoppingCart) AddProduct(product *Product) { sc.products = append(sc.products, product) } func (sc *ShoppingCart) RemoveProduct(name string) { for i, product := range sc.products { if product.name == name { sc.products = append(sc.products[:i], sc.products[i+1:]...) break } } } func (sc *ShoppingCart) CalculateTotalPrice() float64 { totalPrice := 0.0 for _, product := range sc.products { totalPrice += product.price } return totalPrice } func main() { product1 := &Product{name: "Apple", price: 2.5} product2 := &Product{name: "Banana", price: 1.5} product3 := &Product{name: "Orange", price: 1.0} shoppingCart := &ShoppingCart{} shoppingCart.AddProduct(product1) shoppingCart.AddProduct(product2) shoppingCart.AddProduct(product3) fmt.Println("Total Price:", shoppingCart.CalculateTotalPrice()) shoppingCart.RemoveProduct("Banana") fmt.Println("Total Price:", shoppingCart.CalculateTotalPrice()) }
Ringkasan: Artikel ini memperkenalkan ciri dan contoh aplikasi pengaturcaraan berorientasikan objek dalam bahasa Go dan menerangkan secara terperinci cara menggunakan idea berorientasikan objek untuk pengaturcaraan dalam bahasa Go melalui contoh kod. Pengaturcaraan berorientasikan objek boleh meningkatkan kebolehgunaan semula dan kebolehskalaan kod, dan boleh mengatur dan mengurus logik program dengan lebih baik Ia merupakan paradigma pengaturcaraan yang sangat penting dan praktikal.
Atas ialah kandungan terperinci Ciri berorientasikan objek dan contoh aplikasi dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!