Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação Fabiano Gonçalves dos Santos Aula 6 * Conteúdo Apresentar os conceitos de Encapsulamento e Associações de Classes Criar e manipular classes com seus atributos Encapsulados e que se relacionem através de Associações * * * Mecanismo utilizado na Programação Orientada à Objetos que visa obter segurança, modularidade e autonomia para os objetos; Conseguido através da definição de visibilidade privada dos atributos, ganhando-se assim autonomia para definir o que o mundo externo a classe poderá visualizar e acessar, normalmente através de métodos públicos. Encapsulamento * * * Sempre defina os atributos de uma classe como privados, a não ser que tenha uma boa justificativa para isso. O Encapsulamento protege os atributos de acesso direto Permite apenas acesso através de métodos públicos Encapsulamento * * * Modificadores de Acesso: public, protected, private e sem modificador (default) Modificadores de Não Acesso: final e abstract public – Atributos e métodos são acessíveis em todos os métodos de todas as classes. Este é o nível menos rígido de encapsulamento, que dizemos que o encapsulamento foi rompido. private - Atributos e métodos são acessíveis somente nos métodos da própria classe. Este é o nível mais rígido de encapsulamento. Modificadores de visibilidade * * * protected - Atributos e métodos são acessíveis no pacote, nos métodos da própria classe e suas subclasses. Sem Modificador – A visibilidade nas classes do mesmo pacote e a própria classe. Modificadores de visibilidade * * * Visibilidades * * * abstract – Um método abstrato não implementa nenhuma funcionalidade, somente assina o método e faz com que a primeira subclasse concreta seja obrigada a implementar. Uma classe que possui um método abstrato deve ser obrigatoriamente abstrata, como vimos na aula passada. final – Pode ser aplicado em classes, métodos e atributos. Indica que esta é a última atribuição ou definição da estrutura. Não será permitida uma nova re-escrita. Para uma classe, não há herança em classes final. Um método não pode ser sobrescrito. E um atributo é considerado uma constante. Outros modificadores * * * static – Um método ou atributo estático define que este pode ser executado sem que exista uma instância da classe – o objeto. Outros modificadores * * * Exemplo sem encapsulamento * * * Exemplo sem encapsulamento * * * É preciso criar um mecanismo para acessar os campos private de uma classe. Para isso, é comum fornecer métodos públicos para acessar as informações encapsuladas. Estes métodos são chamados de set e get. O método set atribui valores ao atributo, enquanto que o método get obtém seus valores. A composição do nome destes métodos é sempre com o nome set + <nome atributo> ou get + <nome atributo>. Getters e Setters * * * Exemplo * * * É um vínculo que permite que objetos de uma ou mais classes se relacionem. Através destes vínculos, é possível que um objeto troque mensagens ou chame os métodos de outros objetos. Na UML, quando estamos modelando o diagrama de classes, temos a Associação, a Composição e a Agregação, como tipos de Associações. Associações de classes * * * As Associações têm acoplamento fraco As Composições têm acoplamento forte A Agregação faz parte de. Na implementação, não há diferença entre as abordagens, o que as distingue são os controles adicionados pelo desenvolvedor. Associações de classes * * * Exemplo * * * Exemplo * * * Tipo de associação onde uma nova classe usa classes existentes como atributos; Relacionamento “tem um”. Ex.: uma conta tem um dono (cliente), um cliente tem um nome (string); Composição * * * Exemplo de composição * * * Podemos ter as seguintes multiplicidades de associações: 1 para 1 1 para * * para * Onde * equivale a muitos. Multiplicidade de associações * * * Exemplo de composição * * * Exemplos de associações * Linguagem de Programação Fabiano Gonçalves dos Santos Atividade 6 * * A partir da classe Automovel.java apresentada abaixo, encapsule seus métodos e crie mecanismos públicos para acessar estas características. Crie mais um atributo na classe do tipo boolean – estadoMotor Crie métodos ligarMotor() e desligarMotor(), atualizando o valor de estadoMotor. Crie uma classe de teste para instanciar Automóvel Automovel.java public class Automovel { String modelo, cor; int ano; } Exercício * * * * * * * * * * AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1 AULA 1 * AULA 1
Compartilhar