Menu
Coddy logo textTech

Go'da OOP'ye Giriş

Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 5 / 107.

Go'da sınıflar yoktur, ancak struct ve metotlar aracılığıyla nesne yönelimli programlamayı gerçekleştirir. Bir struct, ilişkili verileri gruplandırır ve metotlar, bu struct'a bağlı davranışı tanımlar.

Verileri tutmak için bir struct tanımlayın

type Dog struct {
    Name string
    Age  int
}

Struct'a bir metot ekleme

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

Bir örnek oluşturun ve kullanın

package main

import "fmt"

type Dog struct {
    Name string
    Age  int
}

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

func main() {
    myDog := Dog{Name: "Buddy", Age: 3}
    fmt.Println(myDog.Bark()) // Çıktı: Buddy says Woof!
    fmt.Println(myDog.Age)    // Çıktı: 3
}

Go'da, metot adından önceki (d Dog) kısmına alıcı denir. Bu, diğer dillerde metotların sınıflara ait olmasına benzer şekilde, metodu Dog yapısına bağlar.

challenge icon

Görev

Kolay

Go'nun OOP yaklaşımını uygulamak için bir Cat struct'ı oluştur:

  • Name (string) ve Age (int) alanlarına sahip bir Cat struct'ı tanımla
  • Kedinin adını ve ardından " says Meow!" ifadesini döndüren bir Speak metodu ekle

Kendin dene

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Scan(&name, &age)

    cat := Cat{Name: name, Age: age}

    fmt.Printf("Name: %s\n", cat.Name)
    fmt.Printf("Age: %d\n", cat.Age)
    fmt.Println(cat.Speak())
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi