Cursos / Jogos Digitais / Programação Orientada a Objetos / Aula
Você viu que objetos são entidades concretas que possuem características e comportamentos bem definidos, e que eles podem ser organizados em grupos de características e comportamentos comuns. Esses grupos são chamados de classe. Porém, a classe não serve para organizar no sentido de guardar os objetos, ela serve de modelo de construção.
Resumindo:
A figura representa a implementação de uma classe em TypeScript. Para declarar uma classe em TypeScript, utilizamos a palavra reservada class seguida do nome da classe e, entre chaves, o corpo da classe.
Perceba que não inserimos no código nada sobre o comportamento dos carros, como andar para frente ou para trás, virar à esquerda/direita, frear etc. Veremos isso um pouco mais à frente.
Devemos ter em mente que a linguagem de programação é uma representação do mundo sob um ponto de vista. Você se lembra do paradigma? Esse ponto de vista ou paradigma é a orientação a objetos, porém, descrito nas Regras da Linguagem, que no nosso caso é TypeScript.
Na declaração dos atributos, devemos informar, além do nome, o tipo de dado que ele deverá armazenar, como pode ser visto na figura acima.
Para definir o nome de um atributo, vamos utilizar no geral as seguintes regras:
A respeito dos tipos de dados, vamos utilizar:
Os objetos das classes precisam não só de suas características, mas também de comportamentos que expressem as ações possíveis de serem executadas, por exemplo, um carro precisa oferecer funções para que as pessoas os manobrem. Perceba que falamos das capacidades dinâmicas do objeto que serão executadas através dos métodos.
Veja que na imagem acima adicionamos a palavra this antes do atributo cor. Essa palavra-chave representa a instância da classe Carro e, particularmente neste caso, está sendo usada para corrigir o problema de ambiguidade gerado pela definição de um parâmetro com o mesmo nome do atributo da classe no método setCor(String cor). Ao se usar a palavra cor dentro desse método, como saberíamos se estamos referenciando o atributo da classe ou o parâmetro do método? Para solucionar esse problema, usa-se a palavra reservada this antes do nome cor, informando que estamos referenciando o atributo da classe e não o parâmetro do método.
A definição dos métodos tem cinco partes básicas:
O comando new Carro() cria uma instância da classe Carro, que também podemos chamar de um objeto da classe Carro. Chamamos o método setCor para alterar a cor do carro e o método getCor para recuperar/acessar o valor do atributo cor.
No TypeScript não precisamos chamar os métodos de forma explícita, por exemplo: getCor ou setCor. Ele disponibiliza um recurso interessante, observe na figura abaixo, nas linhas 7 e 11 do código que implementamos o método get e set com o mesmo nome. Vejamos também que na linha 3 o nome do atributo foi alterado com o acréscimo de um _ (underline) para ter nome diferente dos métodos.
Nas linhas 17 e 18, atribuímos um valor à cor do carro e acessamos esse valor como se fosse um atributo da classe, mas na verdade chamamos um método.
Versão 5.3 - Todos os Direitos reservados