Reutilização de Classes Cap. 8 Introdução à Programação OO Rafael Santos
|
|
- José Sá Lemos
- 6 Há anos
- Visualizações:
Transcrição
1 Cap. 8 Introdução à Programação OO Rafael Santos Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho
2 Um dos maiores benefícios que a Programação Orientada a Objeto nos proporciona é a reutilização de código. A reutilização se caracteriza pelo aproveitamento de classes e seus métodos que já estejam escritos e que já tenham o seu funcionamento testado e comprovado. A Reutilização de código diminui a necessidade de escrever novos métodos e classes gerando economia de tempo e segurança. 2 2
3 Mecanismo de Reuso: Diminui a necessidade de reescrever código: menos trabalho para o programador. Permite o aproveitamento de código pré-existente (livre de erro e otimizado): menos chances de cometer erros Em linguagens convencionais: biblioteca de funções e procedimentos 3
4 Existem duas maneiras de conseguir esse reaproveitamento: Através de Composição ou através de. 4
5 Delegação ou composição O primeiro mecanismo de reaproveitamento de classes em Java é conhecido como delegação composição ou composição. Novas classes estendem uma outra classe base se uma instância da classe base for incluída como um dos campos (atributos) da nova classe, que será então composta de campos específicos e de uma instância de uma classe base. Os métodos da classe base podem ser executados, se escrevermos métodos correspondentes na classe nova que chamam os da classe base, desta forma delegando a execução dos métodos. 5
6 Delegação ou composição Consideremos como exemplo as classes Data, que representa uma data, e a classe Hora, que representa uma hora (incluindo segundos) ~dia: byte ~mês: byte ~ano: short Data <<create>>+data(d: byte, m: byte, a: short) +tostring(): String ~hora: byte ~minuto: byte ~segundo: byte Hora <<create>>+hora(h: byte, m: byte, s: byte) +tostring(): String Com estas classes, podemos criar a classe DataHora, que representa simultaneamente uma data e uma hora, sem que seja necessário reescrever os campos e métodos contidos nas classes Data e Hora. 6
7 Delegação ou composição A classe DataHora, que reusa as classes Data e Hora através de delegação. A data e hora são representadas por instâncias das respectivas classes que estão embutidas na classe DataHora, e toda a interação entre esta classe e as embutidas é feita através da chamada de métodos das classes embutidas. Data Hora ~dia: byte ~mês: byte ~ano: short <<create>>+data(d: byte, m: byte, a: short) +tostring(): String ~hora: byte ~minuto: byte ~segundo: byte <<create>>+hora(h: byte, m: byte, s: byte) +tostring(): String DataHora ~estadata: Data ~estahora: Hora <<create>>+datahora(h: byte, min: byte, s: byte, d: byte, m: byte, a: short) +tostring(): String 7
8 Delegação ou composição: Classe DataHora 8
9 Delegação ou composição: Classe DataHora Algumas características interessantes da classe DataHora são: Não existem campos na classe DataHora a não ser uma instância da classe Data e uma da classe Hora O construtor completo da classe DataHora recebe seis argumentos, correspondentes ao dia, mês, ano, hora, minuto e segundo que devem ser representados pela classe DataHora, e repassa estes argumentos para os construtores que inicializarão as instâncias das classes Data e Hora. O construtor da classe DataHora delega aos outros construtores a inicialização dos campos. O mesmo acontece com o construtor parcial, exceto que este considera que a hora é, por default, meia-noite. 9
10 Delegação ou composição: Classe DataHora O método tostring também delega o seu funcionamento aos métodos tostring das classes Data e Hora, que retornarão Strings que são concatenadas para criar o resultado da chamada do método tostring da classe DataHora. Uma das vantagens da reutilização de classes pode ser vista com o exemplo da classe DataHora: a nova classe é capaz de representar simultaneamente uma data e hora sem ser muito complexa. A complexidade (capacidade de verificar se a data ou hora estão corretas, etc.) é implementada pelos métodos das classes Data e Hora, que são simplesmente reutilizados. 10
11 Delegação ou composição Um outro exemplo de reaproveitamento de classes existentes usando o mecanismo de delegação pode ser visto na classe RegistroAcademicoDeGraduacao: A classe RegistroAcademicoDeGraduacao, que reusa a classe Data através de delegação. 11
12 Delegação ou composição Alguns pontos interessantes da classe RegistroAcademicoDeGraduacao são: A classe RegistroAcademicoDeGraduacao contém campos para representação dos dados de um aluno regularmente matriculado em um curso de graduação. Um dos campos (datadenascimento) é uma instância da classe Data, que deve ser construída e manipulada usando métodos dela mesma. O método tostring da classe RegistroAcademicoDeGraduacao cria uma String com os valores dos campos da classe concatenados. Para obter os valores formatados do campo datadenascimento, o método tostring da classe Data é chamado implicitamente. Este é mais um exemplo de delegação: a classe RegistroAcademicoDeGraduacao delega à classe Data a formatação de seus campos em uma String, usando esta String como resultado parcial. A classe DemoRegistroAcademicoDeGraduacao, demonstra o uso de instâncias da classe RegistroAcademicoDeGraduacao. 12
13 O mecanismo de reaproveitamento por delegação ou composição permite o reuso de classes já existentes como instâncias de novas classes. As classes originais ficam assim contidas na nova classe. Reuso de classes via o mecanismo de delegação é útil quando consideramos que a classe que reusa instâncias de outras é composta das outras classes. Um bom exemplo é o da classe DataHora, que é composta das classes Data e Hora. Outros exemplos seriam dados pelas classes que simplesmente utilizam uma ou mais instâncias da classe Data juntamente com outros dados. 13
14 Nem sempre o mecanismo de delegação é o mais natural para reutilização de classes já existentes, embora seja simples. Em especial, quando queremos usar uma classe para servir de base à criação de outra mais especializada; A relação de composição imposta pelo uso do mecanismo de delegação acaba por criar soluções pouco naturais, ou comuns, ferindo o conceito de mapeamento direto. 14
15 Todas as classes de Java descendem de uma classe chamada Object - mesmo que a declaração extends Object seja omitida de classes criadas pelo usuário, elas implicitamente herdarão da classe Object; Esta classe por si não contém campos ou métodos úteis, não devendo ser usada diretamente, servindo mais para declarar métodos genéricos (como, por exemplo, tostring) que todas as classes devem implementar através da sobreposição; 15
16 Como exemplo consideremos as classes Pessoa e Funcionario: Uma instância de Pessoa pode ser declarada dentro da classe Funcionario para representar os dados da pessoa/funcionário. Se criássemos uma classe ChefeDeDepartamento considerando que um chefe de departamento é um funcionário que é responsável por um departamento, poderíamos declarar uma instância de Funcionario dentro da classe ChefeDeDepartamento e acrescentar alguns campos que diferenciam ChefeDeDepartamento de Funcionario. 16
17 A relação entre as classes ChefeDeDepartamento, Funcionario e Pessoa seria, então, de composição: pela declaração dos seus campos veríamos que um ChefeDeDepartamento contém um Funcionario, que por sua vez contém uma Pessoa. Apesar de ser possível descrever as classes assim, a solução é pouco natural: embora possamos dizer que a classe DataHora contém uma data e uma hora, declarar que a classe ChefeDeDepartamento contém um funcionário soa artificial. Na verdade, um chefe de departamento é um tipo de funcionário, que deve ter campos adicionais para representar dados que são específicos de um chefe de departamento, e métodos para manipular estes campos. 17
18 O mecanismo de herança permite que criemos uma classe usando outra como base e descrevendo ou implementando as diferenças e adições da classe usada como base, reutilizando os campos e métodos não-privados da classe-base. O mecanismo de herança é o mais apropriado para criar relações é- um-tipo-de entre classes. Com o mecanismo de herança, podemos declarar a classe Funcionario como sendo um tipo de Pessoa, e a classe Funcionario herdará todos os campos e métodos da classe Pessoa, não sendo necessária a sua re-declaração. Evidentemente uma classe herdeira pode acrescentar campos e métodos à classe original. 18
19 Exemplo: Pessoa, Funcionario e ChefedeDepartamento 19
20 20
21 Alguns dos pontos interessantes da classe Funcionario são: A classe Funcionario, na sua declaração, contém a palavra-chave extends, seguida de um nome de classe, no caso, Pessoa. A declaração com extends significa que a classe Funcionario conterá todos os campos e métodos da classe Pessoa mais os declarados dentro da própria classe Funcionario. Curiosamente, como os campos da classe Pessoa foram declarados como sendo privados da classe Pessoa, eles somente poderão ser acessados por métodos da classe Pessoa (que tenham sido declarados como public). 21
22 Continuação... Pelo mecanismo de herança, estes métodos estarão disponíveis para uso na classe Funcionario - desta forma os métodos herdados da classe Pessoa para a classe Funcionario podem acessar os campos da classe Pessoa que não poderiam ser acessados diretamente por métodos escritos na classe Funcionario. 22
23 Continuação... A classe Funcionario tem um método qualsalário que retorna o salário do funcionário, e é um marco da diferença entre as classes Funcionario e Pessoa -consideramos que somente Pessoas que são Funcionarios tem o dado salário e um método para acessar o campo correspondente a esse dado. Este método é declarado como final, fazendo com que classes herdeiras não possam sobrepô-lo. 23
24 Continuação... Uma classe pode reusar outras usando ao mesmo tempo o mecanismo de herança e o de delegação: a classe Funcionario herda da classe Pessoa e ao mesmo tempo usa uma instância da classe Data. É importante, ao criar uma classe com o mecanismo de herança, considerar de qual classe ela deve herdar -não faria muito sentido, por exemplo, declarar Funcionario herdando da classe Data e contendo uma instância da classe Pessoa. A classe Funcionario pode ser considerada um tipo de Pessoa, mas definitivamente não é um tipo de Data. 24
25 Alguns pontos de interesse da classe ChefeDeDepartamento são: Consideramos que a classe ChefeDeDepartamento é um tipo de Funcionario e declaramos a classe como herdando da classe Funcionario. É perfeitamente possível (e, em muitos casos, necessário) declarar classes que descendem de classes que já descendem de outras. A classe herdeira terá acesso (direta ou indiretamente) a todos os campos e métodos das classes ancestrais, exceto em situações que serão discutidas adiante. 25
26 Alguns pontos de interesse da classe ChefeDeDepartamento são: O construtor da classe ChefeDeDepartamento recebe como argumentos dados necessários para inicializar uma instância da classe Funcionario, além de dados para inicializar os campos que são específicos da classe. Novamente, os dados necessários para inicializar uma instância da classe Funcionario são passados como argumentos para o construtor da classe Funcionario através da palavra-chave super. Já sabemos que o construtor da classe Funcionario fará o mesmo, chamando o construtor da classe Pessoa, que é a sua ancestral. 26
27 Alguns pontos de interesse da classe ChefeDeDepartamento são: De forma similar, o método tostring da classe ChefeDeDepartamento executa explicitamente o método tostring da classe ancestral (Funcionario), concatenando seu resultado com o dos métodos tostring das classes String e Data, que serão chamados implicitamente. A classe ChefeDeDepartamento tem um método qualdepartamento que retorna o departamento chefiado, que marca a diferença entre as classes ChefeDeDepartamento e Funcionario. 27
28 A palavra-chave super Nos exemplos mostrados nas classes Funcionario e ChefeDeDepartamento vimos que classes derivadas ou subclasses podem ter acesso a métodos das superclasses, usando a palavra-chave super. O acesso a métodos de classes ancestrais é útil para aumentar a reutilização de código: Se existem métodos na classe ancestral que podem efetuar parte do processamento necessário, devemos usar o código que já existe (e, esperançosamente, funciona) em vez de reescrevê-lo. 28
29 A palavra-chave super Existem duas maneiras de se reutilizar métodos de classes ancestrais que não tenham sido declarados como private: Se a execução do método for a mesma para a superclasse e a subclasse, então instâncias da subclasse podem chamar diretamente o método como se fosse delas mesmas; É o caso do método qualsalário, que é declarado na classe. Como o método não teve que ser reescrito ou mesmo declarado na classe ChefeDeDepartamento, houve uma economia no desenvolvimento da classe descendente. 29
30 A palavra-chave super A segunda maneira de executar métodos da classe ancestral é mais complexa: partimos do pressuposto que não existe na classe ancestral um método que faça, para a classe descendente, exatamente o que queremos, mas existem métodos que executam parte da tarefa ou resolvem parte do problema. Desta maneira, uma classe descendente poderia executar a parte que resolve o problema parcial chamando o método correspondente da classe ancestral e depois executar comandos que completassem a função desejada. 30
31 Sobreposição e ocultação Quando criamos classes estendidas através do mecanismo de herança, podemos definir novos campos e métodos que são específicos da classe herdeira Também redeclarar campos e métodos que tem a mesma assinatura de métodos declarados em classes ancestrais, mas com funcionalidade diferente. 31
32 Sobreposição e ocultação A declaração de métodos com a mesma assinatura que métodos de classes ancestrais chama-se sobreposição ou superposição. A razão de sobrepormos métodos é que métodos de classes herdeiras geralmente executam tarefas adicionais que os mesmos métodos das classes ancestrais não executam. Exemplo de sobreposição: métodos que fazem a impressão de campos: a classe ancestral somente imprime os campos que contém, então se adicionamos campos à classe descendente, o método de impressão desta não poderá ser o herdado, que não imprimirá os campos adicionais. 32
33 Sobreposição e ocultação A declaração de campos em uma classe descendente com o mesmo nome de campos declarados na classe ancestral chamase ocultação. Ao contrário da sobreposição de métodos, que é bastante útil e comum em classes herdeiras, a ocultação de campos não oferece muitas vantagens, e as poucas oferecidas podem facilmente ser implementadas através de métodos que retornam valores e são superpostos de acordo com a necessidade. 33
34 Sobreposição e ocultação Exemplo: Automovel, AutomovelBasico e AutomovelDeLuxo 34
35 35
36 Sobreposição e ocultação A O campo NUMEROMÁXIMODEPRESTAÇÕES e o método quantasprestações, que retorna o valor deste campo foram declarados na classe Automovel e herdados pela classe AutomovelBasico; O campo é redeclarado (oculto) pela classe AutomovelDeLuxo, que redeclara também o método quantasprestações; Se este método não fosse redeclarado, sobrepondo o da classe ancestral, seria herdado, mas retornaria o valor do campo declarado na superclasse, já que métodos herdados não podem acessar campos declarados em subclasses. 36
37 Sobreposição e ocultação As principais regras de sobreposição de métodos e ocultação de campos, e regras de uso de modificadores de acesso em classes herdadas são: A sobreposição de um método em uma subclasse não elimina o acesso ao método de mesma assinatura na classe ancestral - este pode ser acessado, de dentro da classe herdeira, com a palavra-chave super, contanto que não tenha sido declarado como private. Veja, como exemplo, os vários métodos tostring de classes herdeiras mostradas. 37
38 Sobreposição e ocultação Continua... Métodos declarados em uma subclasse com o mesmo nome mas assinaturas diferentes (por exemplo, número de argumentos diferentes) dos métodos da superclasse não sobrepõem estes métodos. Métodos podem ser sobrepostos com diferentes modificadores de acesso, contanto que os métodos sobrepostos tenham modificadores de acesso menos restritivos. Em outras palavras, podemos declarar um método na superclasse com o modificador de acesso private e sobrepor este método em uma subclasse com o modificador de acesso public, mas não 38 podemos fazer o contrário.
39 Sobreposição e ocultação Continua... Métodos estáticos declarados em classes ancestrais não podem ser sobrepostos em classes descendentes, nem mesmo se não forem declarados como estáticos. Se um campo é declarado em uma superclasse e oculto em subclasses, e métodos que acessam este campo são herdados, estes métodos farão referência ao campo da classe onde foram declarados. 39
40 Sobreposição e ocultação Continua... Qualquer método da classe herdeira pode chamar qualquer método da classe ancestral que tenha sido declarado como public, protected ou sem declaração explícita de modificador. Métodos declarados como private não são acessíveis diretamente, mas podem ser chamados indiretamente a partir de métodos que não sejam private na classe ancestral; 40
41 Sobreposição e ocultação Por exemplo, a classe ComputadorDeBordo, que encapsula os campos e métodos necessários para implementar um computador de bordo de automóveis. Esta classe poderia ter o método privado calculaquilometragemrodada e o método público mostraestatísticasdeconsumo, com o método mostraestatísticasdeconsumo executando o método calculaquilometragemrodada como parte de seu processamento. 41
42 Sobreposição e ocultação Se a classe ComputadorDeBordoDeCaminhao for criada como sendo herdeira da classe ComputadorDeBordo, ela não poderá executar o método calculaquilometragemrodada diretamente pois este foi declarado como sendo privado da classe ComputadorDeBordo, mas o método será executado indiretamente através da chamada ao método público herdado mostraestatísticasdeconsumo. 42
43 Sobreposição e ocultação 43
44 Sobreposição e ocultação Continua... Métodos declarados como final são herdados por subclasses, mas não podem ser sobrepostos (a não ser que a sua assinatura seja diferente). Por exemplo, a classe ChefeDeDepartamento não pode declarar um método qualsalário pois este foi declarado como final na classe ancestral Funcionario. Classes inteiras podem ser declaradas como finais, na forma final class... Se uma classe é declaradas declarada como final, todos os seus métodos serão finais, mas não os seus campos. A declaração de uma classe como final efetivamente impede o mecanismo de herança - o compilador não compilará uma classe declarada como herdeira de uma classe final. 44
45 Polimorfismo O mecanismo de herança permite a criação de classes a partir de outras já existentes com relações é-um-tipo-de, de forma que a partir de uma classe genérica, classes mais especializadas possam ser criadas. Vimos alguns exemplos de classes que seguem esta regra: Funcionario é-um-tipo-de Pessoa,e AutomovelDeLuxo é-umtipo-de AutomovelBasico, que por sua vez é-um-tipo-de Automovel. 45
46 Polimorfismo A relação é-um-tipo-de entre classes permite a existência de outra característica fundamental de linguagens de programação orientadas a objetos: polimorfismo. Polimorfismo ( muitas formas ) permite a manipulação de instâncias de classes que herdam de uma mesma classe ancestral de forma unificada: podemos escrever métodos que recebam instâncias de uma classe C, e os mesmos métodos serão capazes de processar instâncias de qualquer classe que herde da classe C, já que qualquer classe que herde de C é-um-tipo-de C. Um exemplo prático de polimorfismo é ConcessionariaDeAutomoveis. dado pela classe 46
47 Polimorfismo A classe ConcessionariaDeAutomoveis tem um método (imprime) que recebe uma instância da classe Automovel como argumento, e imprime os dados desta instância, usando os métodos tostring, quantocusta e quantasprestacoes da classe. Este mesmo método pode receber, como argumentos, instâncias das classes AutomovelBasico, AutomovelDeLuxo e de qualquer outra classe que herde da classe Automovel ou de suas herdeiras, uma vez que estas terão os métodos necessários para a execução do método imprime. 47
48 Polimorfismo Vale a pena notar que é possível implementarmos, em uma classe, métodos polimórficos e sobrecarregados simultaneamente. Poderíamos, por exemplo, criar métodos para processamento de instâncias de uma classe genérica e outros que processariam instâncias de classes mais especializadas (subclasses) de forma diferenciada. A classe EmprestimoBancario demonstra uma aplicação desta técnica. 48
49 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: O interpretador Java decidirá, em tempo de execução, qual dos dois métodos será chamado para cada instância criada no método main. Se a instância passada como argumento for da classe ChefeDeDepartamento ou da classe Funcionario, o segundo método será chamado: apesar das classes ChefeDeDepartamento e Funcionario serem um-tipo-de Pessoa, elas são mais próximas da classe Funcionario do que da classe Pessoa. 49
50 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: Em outras palavras, se houverem vários métodos sobrecarregados que tratam de classes herdeiras de uma classe ancestral, o interpretador Java tentará sempre chamar o método mais adequado para cada instância, sendo que o método mais adequado será o que receber como argumentos a classe mais próxima em termos de herança (A classe ChefeDeDepartamento é mais próxima da classe Funcionario do que da classe Pessoa). 50
51 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: O primeiro método calculaempréstimo recebe como argumento uma instância da classe Pessoa ou de qualquer classe herdeira desta que não seja herdeira da classe Funcionario (já que instâncias de classes herdeiras de Funcionario serão processadas pelo segundo método calculaempréstimo). Este método retorna um valor constante, assumindo que qualquer pessoa (que não um funcionário) possa ter um empréstimo de mil reais. 51
52 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: Se uma instância da classe Aluno, que herdasse da classe Pessoa, fosse passada como argumento para o método calculaempréstimo, a primeira versão seria chamada. Se por outro lado, uma instância da classe PresidenteDaEmpresa, que fosse herdeira da classe ChefeDeDepartamento fosse passada para o método, a segunda versão seria executada. 52
53 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: O segundo método calculaempréstimo, que calculará o empréstimo para qualquer instância de qualquer classe que herde da classe Funcionario, verifica internamente se a instância passada como argumento é uma instância da classe ChefeDeDepartamento ou da própria classe Funcionario. Isto é feito com a palavra-chave instanceof, em expressões como referência-à-instância instanceof nome-da-classe, que retorna true se referência-à-instância for uma instância de nome-da-classe e false se não o for. 53
54 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: É importante notar que o método primeiramente verifica se a instância passada é uma instância da classe ChefeDeDepartamento (mais específica) para depois verificar se a instância é da classe Funcionario (mais genérica). A ordem de verificação é essencial, pois uma instância da classe ChefeDeDepartamento também é uma instância da classe Funcionario - se esta fosse verificada primeiro, a condição marcada com o else no método nunca seria verificada. 54
55 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: O método qualsalário é definido na classe Funcionario e nas suas herdeiras, mas não na classe Pessoa, ancestral de Funcionario. Por causa disso, não é possível chamar o método qualsalário a partir de uma instância da classe Pessoa - no primeiro método calculaempréstimo, que recebe um argumento que é uma instância da classe Pessoa, não podemos testar instâncias e chamar o método qualsalário se a instância for de Funcionario ou ChefeDeDepartamento, a não ser que efetuemos a conversão explícita (cast) das instâncias das classes. 55
56 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: Assim como tipos nativos podem ser convertidos explicitamente para outros tipos seguindo certas regras, instâncias de classes também podem ser convertidas para outras, contanto que a conversão seja da classe mais específica para a mais genérica, ou seja, da classe descendente para a classe ancestral. Por exemplo, podemos fazer a conversão explícita de uma instância da classe Funcionario para a classe Pessoa, já que Funcionario é-um-tipo-depessoa. Similarmente, também podemos converter da classe ChefeDeDepartamento para a classe Pessoa. 56
57 Polimorfismo Os pontos interessantes da classe EmprestimoBancario são: As regras de cast entre instâncias de classes não permitem a conversão de classes mais genéricas para classes mais específicas, nem de classes que não estejam em uma hierarquia de herança: não podemos converter da classe Funcionario para ChefeDeDepartamento, pois Funcionario não é-um-tipode ChefeDeDepartamento, nem da classe Pessoa para String. A classe EmprestimoBancarioComCast demonstra o uso de conversão explícita entre as classes Pessoa, Funcionario e ChefeDeDepartamento. 57
Programação Orientada a Objetos SANTOS, Rafael
Programação Orientada a Objetos SANTOS, Rafael Neste capítulo e nos seguintes serão usados intensamente os conceitos básicos de OO e da linguagem estudados até agora, com ênfase para os de número 1, 2
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-6 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando
Leia maisLinguagem de Programação II Herança
Linguagem de Programação II Herança Prof. Alessandro Borges 2 Tópicos Reutilização de classes Delegação Herança Definição Superclasse e Subclasse A palavra reservada extends Método construtor com herança
Leia maisProgramação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
Leia maisLista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,
Leia maisProgramação Orientada a Objetos JAVA - NETBEANS
Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento
Leia maisLinguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces
Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas
Leia maisHerança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Leia maisHerança Tiago Eugenio de Melo
Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características
Leia maisAula 9 Herança. Prof. Jefersson Alex dos Santos
Aula 9 Herança Prof. Jefersson Alex dos Santos Roteiro Introdução Conversão de tipo explícita (Cast) Acesso Protegido A classe Object A classe Class Reflexão Recomendações de Projeto Herança Técnica necessária
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisLaboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Leia maisIntrodução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
Leia maisConceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisC com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Leia maisOrientação a Objetos AULA 06
Orientação a Objetos AULA 06 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Herança ü Sobrescrita e reescrita de métodos ü Sobrecarga ü Efeitos de Herança ü Polimorfismo 2 Um dos principais recursos
Leia maisProf. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1
INE5603 Introdução à POO Prof. A. G. Silva 30 de outubro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de 2017 1 / 1 Especialização de classes (I) (Cap. 6) Operações de abstração como
Leia maisLinguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos
Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisProgramação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Leia maisProgramação Orientada a Objetos
Herança Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Herança 1 Reutilização / Reuso São palavras-chave no conceito de herança; Reutilizar um código que já tenha sido escrito, e que já esteja
Leia maisProfessor Leonardo Cabral da Rocha Soares Lattes:
Professor Leonardo Cabral da Rocha Soares Lattes: http://lattes.cnpq.br/3184602538494393 A Herança, em programação orientada a objetos (POO), é a possibilidade de escrever novas classes partindo de classes
Leia maisProgramação Java (nível intermediário) 4. Polimorfismo
Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisA B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas
Herança e Polimorfismo Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Herança É um princípio da Programação Orientada a Objetos que permite que as classes compartilhem atributos e métodos
Leia maisHerança e Polimorfismo - Parte II -
Herança e Polimorfismo - Parte II - Programação Orientada a Objetos Java Prof. Geraldo Braz Junior A hierarquia do exemplo DoME 2 Saída incompleta O que queremos CD: A Swingin' Affair (64 mins)* Frank
Leia maisProgramação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -
Programação Java - Herança e Polimorfismo - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes relacionadas entre
Leia maisJava First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração
Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisProgramação Orienta a Objetos
Programação Orienta a Objetos Linguagem de Programação 1 Os atores principais do paradigma de projetos orientados a objetos são chamados de objetos. Um objeto se origina de uma classe, que é uma especificação
Leia maisProgramação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos
Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Sobrecarga de operadores
Leia maisNotas de Aula 04: Herança e polimorfismo.
Notas de Aula 04: Herança e polimorfismo. Objetivos da aula: Introduzir o conceito de Heranças Criar uma hierarquia de classes Rever o uso de modificadores de acesso. Apresentar o conceito de polimorfismo
Leia mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos
Leia maisPOO e C++: Herança e Polimorfismo
POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes
Leia maisProgramação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Herança Herança Criação de uma nova classe de uma
Leia maisUnidade: sobrecarga, construtores e herança
Unidade: sobrecarga, construtores e herança 0 Unidade: sobrecarga, construtores e herança Sobrecarga Sobrecarregar (do inglês overload) um método é criar mais métodos com o mesmo nome, porém com assinaturas
Leia maisHerança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.
Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:
Leia maisTÉCNICAS DE ORIENTAÇÃO A OBJETOS
TÉCNICAS DE ORIENTAÇÃO A OBJETOS APLICAÇÃO EM: C# E JAVA Sumário INTRODUÇÃO... 4 PARADIGMAS DE PROGRAMAÇÃO... 5 PROGRAMAÇÃO PROCEDURAL... 5 PROGRAMAÇÃO ESTRUTURADA... 5 PROGRAMAÇÃO ORIENTADA A OBJETOS...
Leia maisProgramação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos
Leia maisUNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos
UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos Objetivo da Unidade*: Conhecer e aplicar os conceitos mais importantes associados a orientação a objetos. 5.1 Métodos e atributos estáticos Atributos
Leia maisClasses, Métodos e Propriedades
Ambiente de Programação Visual Classes, Métodos e Propriedades Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos apresentar de
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos
Leia maisFundamentos de Orientação à objetos
Fundamentos de Orientação à objetos Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Objeto Um objeto, como um substantivo, pode ser uma pessoa, local ou
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 5 Conversão de Tipos Polimorfismo O Modificador final O Modificador
Leia maisLaboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP088 Laboratório de Programação Aula 2 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Aula 2 Orientação a Objetos 1) Discussão 2) Encapsulamento 3) Herança 4) Polimorfismo 5) Sobrescrita
Leia maisRecapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisVejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa
Palavra reservada this Em Java podemos ter um parâmetro de um método e um atributo de uma classe com o mesmo nome. Caso façamos uma referência a esta variável, pelo princípio da localidade estaremos referenciando
Leia maisLinguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Leia maisHerança e Polimorfismo -Parte II -
Herança e Polimorfismo -Parte II - Mário Meireles Teixeira mario@deinf.ufma.br A hierarquia do exemplo DoME 2 1 Saída incompleta O que queremos CD: A Swingin' Affair (64 mins)* Frank Sinatra tracks: 16
Leia maisModelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
Leia maisDeclaração de Construtores em Java
Programando com Java Artigo http://mballem.wordpress.com/ Declaração de Construtores em Java Para que serve e como usar um Construtor em Java Autor Marcio Ballem: é formado em Sistemas de Informação e
Leia maisNamespaces, Classes e Métodos.
. Linguagem de Programação III Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Linguagem
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisHerança Sendo uma linguagem orientada a objetos Java oferece mecanismos para definir classes derivadas a partir de classes existentes; As classes deri
Herança Forma de reutilização de software Encapsular estrutura e comportamento em um tipo não é um conceito exclusivo da orientação a objetos, pois já era usado na programação de tipos abstratos. O que
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisEx: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)
Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo
Leia maisProgramação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert
Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert Há situações em que não deve haver instâncias de determinadas classes Há modelos incompletos que
Leia maisJava para Desktop. Programação Orientada à Objetos 2 JSE
Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona
Leia maisVisibilidade e Encapsulamento
Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo
Leia maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisUnidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces
Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces 0 Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Classes Abstratas À medida que você sobe na hierarquia de herança,
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br www3.ifrn.edu.br/~andrealmeida Aula VIII Herança e Interface Roteiro Herança Classes Abstratas Interface
Leia maisIntrodução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
Leia maisPolimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo
Polimorfismo: aprendendo a prever o futuro BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Sumário Definições Tipos de Polimorfismo Dicas para o Polimorfismo Eficaz Armadilhas
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de
Leia maisProgramação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno
Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Revisão Classes e Objetos Classes são uma das unidades básicas de um programa Java Usamos as classes para
Leia maisOrientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)
Orientação a Objetos Parte I Introdução a POO (Programação Orientada a Objetos) Histórico Gerações de Linguagens de Programação Primeira Geração: Linguagem de máquina Segunda Geração: Linguagem de montagem
Leia maisClasses e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
Leia maisProgramação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:
Programação I Curso: Sistemas de Informação Prof.: José Ronaldo Leles Júnior Email.: juniorleles80@gmail.com 1º semestre - 2017 POO Paradigma Orientado a Objetos O que é um Paradigma? É um ponto de vista
Leia maisProgramação Orientada a Objetos Flávio de Oliveira Silva 144
HERANÇA Herança é a capacidade de uma subclasse de ter acesso as propriedades da superclasse(também chamada classe base) relacionada a esta subclasse. Dessa forma os atributos e métodos de uma classe são
Leia maisInstituto de Informática Estrutura de Dados II
Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O
Leia maisComputação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27
1. Defina os sequintes termos: (a) (1 Ponto) Polimorfismo Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 (b) (1 Ponto) Sobrescrita de funções (c) (1 Ponto) Sobrecarga
Leia maisEsta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisEntender o princípio do Polimorfismo; Conhecer Polimorfismo de Sobreposição e de Inclusão;
POLIMORFISMO POLIMORFISMO É o último princípio que serve de base para a Programação Orientada a Objeto. Esse princípio também aposta na ideia da reutilização para facilitar o dia a dia da programação.
Leia maisAula 7 POO 1 Herança. Profa. Elaine Faria UFU
Aula 7 POO 1 Herança Profa. Elaine Faria UFU - 2019 Problema Problema As classes Funcionário e Estudante compartilham alguns atributos, mas não todos Não é possível utilizar uma classe para representar
Leia maisTelevisao tamanho tela emitirsom. conectarperifericos
1 - Introdução a Programação Orientada a Objeto Para tentar solucionar o problema do baixo reaproveitamento de código, surgiu a idéia da Programação Orientada a Objeto (POO). A POO não é nova, sua formulação
Leia maisPolimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo
PARTE II: Java e OO Interface Herança Herança e polimorfismo Classes e métodos abstratos : muitas formas de implementação de uma operação Permite esconder diferentes implementações atrás da mesma interface
Leia maisHerança (parte 2) Redefinição de métodos AULA 11
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Herança (parte 2) Redefinição de métodos AULA 11 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Na aula passada
Leia mais[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]
[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] Objetivos Revisar conceitos de Orientação a Objetos Classes Objetos Encapsulamento Herança Sobrescrita de métodos Sobrecarga de métodos
Leia maisClasse Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite byron.leite@gmail.com 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
Leia maisInterfaces e Classes Abstratas
Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos
Leia maisAuto-Referenciamento e Herança
Auto-Referenciamento e Herança José Gustavo de Souza Paiva Auto-Referenciamento Ao criarmos o código de uma classe, ainda não sabemos quais serão seus objetos, e por isso não há como referenciá-los Utilizando
Leia maisAula 9 POO 1 Polimorfismo. Profa. Elaine Faria UFU
Aula 9 POO 1 Polimorfismo Profa. Elaine Faria UFU - 2019 Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de parâmetros
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato
Leia mais