5. Introdução à programação orientada a objetos em Dart

Página 56

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

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

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text