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 nesne yönelimli programlamayı structs ve methods aracılığıyla gerçekleştirir. Bir struct ilgili verileri gruplandırır ve metotlar bu struct'a bağlı davranışı tanımlar.

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

type Dog struct {
    Name string
    Age  int
}

Struct'a bir metot ekleyin

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 isminden önceki (d Dog) kısmına receiver (alıcı) adı verilir. Bu, metodu Dog struct'ına bağlar; tıpkı diğer dillerde metotların sınıflara ait olması gibi.

challenge icon

Görev

Kolay

Go'nun OOP yaklaşımını pratik etmek için bir metodu olan bir Cat struct'ı oluşturun:

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

Kopya kağıdı

Go, nesne yönelimli programlamayı struct'lar ve metotlar aracılığıyla gerçekleştirir. Bir struct ilgili verileri gruplandırır ve metotlar bu struct'a bağlı davranışları tanımlar.

Veri tutmak için bir struct tanımlayın:

type Dog struct {
    Name string
    Age  int
}

Bir alıcı (receiver) kullanarak struct'a bir metot bağlayın:

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

Metot isminden önceki (d Dog) kısmı, metodu struct'a bağlayan alıcıdır (receiver).

Bir örnek oluşturun ve onu kullanın:

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

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