Menu
Coddy logo textTech

Introdução à OOP em Go

Parte da seção Programação Orientada a Objetos do Journey de GO da Coddy. Lição 5 de 107.

Go não tem classes, mas implementa a programação orientada a objetos por meio de structs e métodos. Uma struct agrupa dados relacionados, e os métodos definem comportamentos associados a essa struct.

Defina uma struct para armazenar dados

type Dog struct {
    Name string
    Age  int
}

Vincule um método à struct

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

Crie uma instância e use-a

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()) // Saída: Buddy says Woof!
    fmt.Println(myDog.Age)    // Saída: 3
}

Em Go, a parte (d Dog) antes do nome do método é chamada de receptor. Ela conecta o método à estrutura Dog, de forma semelhante a como os métodos pertencem às classes em outras linguagens.

challenge icon

Desafio

Fácil

Crie uma struct Cat com um método para praticar a abordagem de OOP do Go:

  • Defina uma struct Cat com os campos Name (string) e Age (int)
  • Adicione um método Speak que retorne o nome do gato seguido de " says Meow!"

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Go online