ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira - PDF
Download "ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira"
Matilde Monteiro Osório
1 ORIENTAÇÃO A OBJETOS 1 Professora Lucélia Oliveira
2 CONCEITOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 2
3 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 3
4 ABSTRAÇÃO - CONCEITOS Extrair tudo o que for essencial e nada mais (Aaron Walsh) A abstração é o processo de filtragem de detalhes sem importância do objeto, para que apenas as características apropriadas que o descrevem permaneçam (Peter Van Der Linden) Conceito aplicado a criação de software baseado em objetos, partindo do princípio que devemos considerar a essência de cada objeto e não pensar em todos os detalhes de implementação; 4
5 ABSTRAÇÃO Visão do mundo real: Estamos acostumados a sempre abstrair de objetos aquilo que nos interessa. placa cor númerochassi cor cilindrada velocidademax aplicarmulta() acelerar() 5
6 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 6
7 CLASSES As crianças aprendem conceitos simples como pessoa, carro e casa, por exemplo, e ao fazerem isso definem classes, ou seja: É um grupo de objetos, sendo que cada objeto é um exemplo de um determinado grupo. 7
8 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 8
9 OBJETOS É um exemplo de um determinado grupo. Exemplo: pessoa1 9
10 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 10
11 ATRIBUTOS São as características do objeto. Exemplos: pessoa1.nome = José ; pessoa1.idade = 21; pessoa1.endereco = QSA 10 ; 11
12 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 12
13 MÉTODOS São subprogramas com finalidades específicas, ou seja, são as operações ou ações realizadas dentro das classes. Para o nome do método, é padrão começar com letra minúscula. Exemplos: incluirpessoa(); PesquisarPeloNome(nome:String); 13
14 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 14
15 MÉTODO CONSTRUTOR OU CONSTRUTOR É um método especial, cuja finalidade é permitir a instanciação de um objeto a partir de uma classe. Possui assinatura diferente dos demais métodos. Possui o mesmo nome da classe. Exemplo: Pessoa(){ }; 15
16 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 16
17 HERANÇA - CONCEITOS Herança significa ser capaz de incorporar os atributos e métodos de uma outra classe previamente definida. Quando necessário, pode-se especializar métodos da classe ancestral e especificar novas operações e dados, para refinar, especializar, substituir ou estender a funcionalidade da classe progenitora. 17
18 HERANÇA - CONCEITOS Você pode fazer sempre com que um objeto mais geral armazene um objeto mais especializado, mas o contrário não é verdadeiro sem uma conversão explícita de tipos. Exemplo: Todos os cítricos são frutas, mas nem todas as frutas são cítricos! 18
19 HERANÇA Visão do mundo real: Estamos acostumados a lidar com classes agrupando-as em estruturas hierárquicas; Tem pêlos duas dentições amamentam filhotes Filo dos cordados Classe mamíferos Anfíbios... Possuem notocorda Ordem dos primatas Ordem dos roedores... Espécie homo sapiens Andam sobre dois pés 19
20 HERANÇA -TERMINOLOGIA Estender Criar uma nova classe que herda todo o conteúdo da classe existente Superclasse Uma classe progenitora ou base. Subclasse Uma classe filha que herda, ou estende, uma superclasse 20
21 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 21
22 POLIMORFISMO Ocorre quando uma classe possui um método com o mesmo nome e assinatura (número, tipo e ordem de parâmetros) de um método na sua superclasse, mas, diferencia-se pela lógica de implementação. Exemplo: EfetuarSaque em conta comum e EfetuarSaque em conta especial. 22
23 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 23
24 SOBRECARGA É semelhante ao polimorfismo, diferenciando-se pelo fato de possuir assinatura diferente, ao contrário do que ocorre no polimorfismo. Exemplo: calcularsalario(double salbruto, double impostos); calcularsalario(double salbruto, double impostos, double gratificacao); 24
25 ORIENTAÇÃO A OBJETOS Abstração Classes Objetos Atributos Métodos Método Construtor Herança Polimorfismo Sobrecarga Encapsulamento 25
26 ENCAPSULAMENTO - CONCEITOS Mecanismo utilizado visando obter segurança, modularidade e autonomia para objetos; Conseguido através da definição de visibilidade privada dos atributos, ganhando-se assim autonomia para definir o que o mundo externo ao objeto poderá visualizar e acessar, normalmente através de métodos públicos. 26
27 ENCAPSULAMENTO - CONCEITOS Dica: sempre defina os atributos de uma classe como privados, a não ser que tenha uma boa justificativa para não serem. 27
28 ENCAPSULAMENTO Sempre escondemos do mundo externo alguns atributos pessoais; Definimos, através de ações se iremos ou não externar estes atributos. A namoradinha O Cunhado Salário * 2 salário/10 Salário*0.3 O Leão do Imposto de Renda getsalário Salário 28
29 ENCAPSULAMENTO - EXEMPLO public class Pessoa { private double salario; public double getsalario(object quempergunta) { if (quempergunta instanceof Namorada) { return (salario * 2); } if (quempergunta instanceof Cunhado) { return (salario / 10); } if (quempergunta instanceof LeaoImpostoDeRenda) { return (salario * 0.3); } return (0.0); // esconde o salario do resto!!! } } 29
30 ENCAPSULAMENTO - MODIFICADORES DE VISIBILIDADE Public => Os atributos e métodos são sempre acessíveis em todos os métodos de todas as classes. Este é o nível menos rígido de encapsulamento, equivale a não encapsular. Protected => Os atributos e métodos são acessíveis no pacote, nos métodos da própria classe e suas subclasses. Default => Os atributos e métodos são acessíveis nas classes que pertencem ao mesmo pacote. Private => Os atributos e métodos são acessíveis somente nos métodos (todos) da própria classe. Este é o nível mais 30 rígido de encapsulamento.
31 ATRIBUTOS E MÉTODOS CONTROLE DE ACESSO Visibilidade dos membros de uma classe Especificador Classe Subclasse Package Mundo privado <branco> protegido publico 31