A programação orientada a objetos (POO) é um paradigma de programação que utiliza a ideia de "objetos" para representar dados e métodos. Isso é particularmente útil quando se trata de criar aplicativos complexos, pois permite que os desenvolvedores organizem melhor seu código e o tornem mais reutilizável. Nesta seção, vamos introduzir o conceito de programação orientada a objetos em Dart, a linguagem de programação usada pelo Flutter.

1. Classes e Objetos

Na programação orientada a objetos, uma classe é um plano ou modelo a partir do qual os objetos são criados. Em Dart, você define uma classe usando a palavra-chave class. Por exemplo, você pode ter uma classe chamada Person que tem propriedades como name e age. Uma vez que você tem uma classe, você pode criar um objeto a partir dela. Por exemplo:

class Person {
  String name;
  int age;
}

void main() {
  Person person = Person();
  person.name = 'John';
  person.age = 30;
}

Neste exemplo, Person é a classe e person é o objeto. Observe que você pode atribuir valores às propriedades do objeto usando a notação de ponto.

2. Métodos

Os métodos são funções que pertencem a uma classe. Eles geralmente manipulam as propriedades da classe. Por exemplo, você pode ter um método greet na classe Person que imprime uma saudação personalizada:

class Person {
  String name;
  int age;

  void greet() {
    print('Hello, I am $name and I am $age years old.');
  }
}

void main() {
  Person person = Person();
  person.name = 'John';
  person.age = 30;
  person.greet();  // prints: Hello, I am John and I am 30 years old.
}

3. Construtores

Um construtor é um método especial que é chamado quando um objeto é criado a partir de uma classe. Em Dart, o construtor tem o mesmo nome que a classe. Você pode usar o construtor para inicializar as propriedades do objeto. Por exemplo:

class Person {
  String name;
  int age;

  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  void greet() {
    print('Hello, I am $name and I am $age years old.');
  }
}

void main() {
  Person person = Person('John', 30);
  person.greet();  // prints: Hello, I am John and I am 30 years old.
}

Neste exemplo, o construtor Person aceita dois parâmetros e os usa para inicializar as propriedades name e age.

4. Herança

A herança é um recurso da programação orientada a objetos que permite que uma classe herde propriedades e métodos de outra classe. Em Dart, você usa a palavra-chave extends para criar uma classe filha. Por exemplo, você pode ter uma classe Employee que herda de Person:

class Person {
  String name;
  int age;

  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  void greet() {
    print('Hello, I am $name and I am $age years old.');
  }
}

class Employee extends Person {
  String company;

  Employee(String name, int age, this.company) : super(name, age);
}

void main() {
  Employee employee = Employee('John', 30, 'Google');
  employee.greet();  // prints: Hello, I am John and I am 30 years old.
  print(employee.company);  // prints: Google
}

Neste exemplo, Employee é uma classe filha de Person e herda suas propriedades e métodos. Observe o uso do super no construtor de Employee para chamar o construtor de Person.

5. Encapsulamento

O encapsulamento é o princípio de ocultar detalhes de implementação e permitir o acesso apenas por meio de métodos. Em Dart, você pode usar a palavra-chave _ (underscore) para tornar uma propriedade ou método privado. Por exemplo:

class Person {
  String _name;
  int _age;

  Person(this._name, this._age);

  void greet() {
    print('Hello, I am $_name and I am $_age years old.');
  }
}

void main() {
  Person person = Person('John', 30);
  person.greet();  // prints: Hello, I am John and I am 30 years old.
}

Neste exemplo, as propriedades _name e _age são privadas, o que significa que elas não podem ser acessadas fora da classe Person.

Esses são os conceitos básicos da programação orientada a objetos em Dart. Eles formam a base para a criação de aplicativos Flutter mais complexos e reutilizáveis.

Agora responda o exercício sobre o conteúdo:

Qual é o propósito de um construtor em programação orientada a objetos em Dart?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Introdução à programação orientada a objetos em Dart: Introdução à programação orientada a objetos

Próxima página do Ebook Gratuito:

57Introdução à programação orientada a objetos em Dart: Introdução à programação orientada a objetos

2 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto