Programação Java III. Prof. Vinicius Rosalen
|
|
- Gabriel Barreiro Camelo
- 7 Há anos
- Visualizações:
Transcrição
1 Programação Java III Prof. Vinicius Rosalen
2 Parte III
3 Métodos e Classes Abstratas Resumo da aula anterior... Ao criarmos uma classe para ser estendida, Às vezes codificamos alguns métodos para os quais não sabemos dar uma implementação, ou seja, Um método que só subclasses saberão implementar Uma classe deste tipo não pode ser instanciada pois sua funcionalidade está incompleta. É como se tentássemos andar de carro sem ter as rodas construídas... Tal classe é dita abstrata.
4 Métodos e Classes Abstratas Resumo da aula anterior... Uma classe abstrata é utilizada quando desejase: Fornecer uma interface comum a diversos membros de uma hierarquia de classes. Não se preocupar COMO, apenas QUAL o contrato que deve ser obedecido...
5 Java Métodos e Classes Abstratas Resumo da aula anterior... Classes Abstratas Método sem corpo { } Características - Abstração : suprimir detalhes para melhor compreensão - Classe abstrata - possui métodos abstratos - Força a implementação para que possa ser instanciada Todos os veículos possuem a ação de abastecer, mas a forma de abastecer (álcool, gasolina ou diesel) só é conhecida pelas filhas da herança
6 Upcasting e Downcasting Resumo da aula anterior... Outro dois conceitos bastante importantes é sobre: A conversão de tipos na relação das classes em herança. Os conceitos são de o polimorfismo de : Downcasting e Upcasting
7 Upcasting e Downcasting Em Java, Upcasting é automático A conversão de tipos para o topo da hierarquia é automático Ampliação (upcasting) é a conversão implícita de uma subclasse para uma superclasse Se tenho o tipo Pai e instancio o Filho é automático. O contrário não. Mas Downcasting deve ser explícito A conversão de tipos para as folhas da hierarquia deve ser explicitado. - O Pai está contido no filho. - Mas o filho não está contido no pai - Questão de reserva de memória.
8 Upcasting e Downcasting Vamos analisar um exemplo... Máscara de visualização Área efetiva alocada Ponto pt = new PontoColorido(0,0,1); PontoColorido px = (PontoColorido)pt; Ponto PontoColorido pt = px // UpCasting (Pai recebe o filho) px = pt; // Erro, filho não recebe o pai diretamente px = (PontoColorido)pt; // Downcast Mas só enxerga as áreas em comum a ambos Ponto pt2 = new Ponto(); PontoColorido py = (PontoColorido)pt2; System.out.println(py.cor); //ERRO de execução espaços de memórias diferentes cor é um atributo de PontoColorido, mas só foi alocado a área de Ponto
9 Java Métodos e Classes Abstratas e Casting Pra que usar isso...exemplo das figuras e classe Composta: Os atributos F1 e F2 da classe Composta pertencem à classe Pai Figura E no exemplo, eles recebem valores pertencentes às classes Filhas Circulo, Quadrado e Composta: class Composta extends Figura { Figura F1, F2;. void Composta(Figura f1,f2) { F1 = f1; F2 = f2; }.. }... Composta comp1 = new Composta(c1,q); Composta comp2 = new Composta(comp1,c2);... Olha que legal, ele pode inclusive receber uma figura composta qualquer, não importa o formato, afinal ela também é uma Figura Isso é possível graças conversão implícita de tipo (upcasting), que é uma propriedade inerente aos objetos com relação de herança.
10 Métodos e Classes Abstratas Hoje nós vamos ampliar o nosso conhecimento em OO, conversando sobre: A palavra reservada SUPER Herança Múltipla e Interfaces Exercícios Vamos lá. Primeiramente vamos falar sobre a palavra reservada super...
11 Palavra reservada super Super pode ser utilizado explicitamente para: Referenciar o construtor da superclasse Para se referir ao construtor da classe pai, basta usar o operador super( ). Referenciar um outro método ou atributo da classe pai Para se referir a elementos da classe pai, basta usar o operador super
12 Construtores de subclasse Chamada Explícita ao construtor base 1: public class Circle 2: { 3: public double x,y,r; 4: public Circle(double x, double y, double r) { 5: this.x = x; 6: this.y = y; 7: this.r = r; 8: } 9: public Circle(double r){ 10: this(0.0,0.0,r); 11: } 12: } 1: public class GraphicCircle extends Circle 2: { 3: Color color; 2: public GraphicCircle 2b: (double x, double y, double r, Color color) { 3: super(x,y,r); 4: this.color = color; 5: } 6: }
13 Herança em Java Livro possui autor e paginas (definidos na própria classe); Livro possui nome e preço (definidos na superclasse); Livro pode receber mensagens ehgrande() (definida na própria classe); Livro pode receber mensagens ehcaro() (definida na superclasse). O que será impresso?
14 Construtores de subclasse No caso de uma hierarquia de classes, O que acontece se não chamar explicitamente o construtor da classe pai???
15 Ordem de construção Relembrando... Quando construímos um novo objeto, os seguintes passos são efetuados: 1º: Os atributos da classe são zerados inicializados com seus valores default: 0, false ou null; 2º: Se a classe participa de alguma hierarquia, o construtor da superclasse é chamado; Primeiro constrói o pai, depois o filho» Você existiria sem seus pais 3º: Os atributos da classe recebem os seus valores iniciais (se especificados), na ordem em que foram definidos na classe; 4º: O corpo do construtor da classe é chamado.
16 Ordem de construção No caso de não haver chamada explícita, A linguagem Java chama o construtor padrão da superclasse. Característica intrínseca de herança Java chama implicitamente o construtor default da superclasse. Se não existir um construtor default na superclasse, haverá um erro de compilação No entanto, o finalizador da superclasse não é invocado. Deve ser feito de forma explícita
17 Construtores de subclasse Chamada Implícita ao construtor base O que será impresso?
18 O que será impresso? Construtores de subclasse
19 IMPORTANTE... Pode-se redeclarar um atributo ou método de mesmo nome numa classe derivada. Apesar do atributo ou método oculto ainda ser acessível, essa construção gera confusão sem trazer nenhum benefício. Evite essa prática Atributos e Métodos Ocultos
20 class Super { Super() { Chamada Explícita e Implícita System.out.println("Construtor Super"); } O que será impresso? } void teste() { System.out.println("Metodo Superclasse");} class Subclasse extends Super { Subclasse() { System.out.println("Construtor Subclasse"); } void teste() { super.teste(); System.out.println("Metodo Subclasse"); } } class ProgramaSuperExplicito { public static void main (String arg[]) { System.out.println( Heranca 2 ); Subclasse sub = new Subclasse(); sub.teste(); } } Métodos sobrescritos podem chamar sua versão na superclasse usando a palavra super < (super.método() >
21 O que será impresso? Atributos Ocultos
22 Herança Múltipla Em algumas linguagens de programação OO: As classes podem ter mais de um superclasse, Herdando variáveis e métodos combinados de todas essas superclasses Isto é chamado de herança múltipla Herança Múltipla fornece margem para praticamente qualquer comportamento imaginável Contudo complica bastante as definições de classes e o código para produzi-la, além do entendimento
23 Herança Múltipla Exemplo de utilização de herança múltipla ObjetoColorido obtemcor() mudacor() liga() acelera() Carro CarroEsporteColorido
24 Herança Múltipla Outro exemplo de utilização herança múltipla extends extends
25 Herança Múltipla Outro exemplo de utilização de herança múltipla Um gerente de banco pode assumir características de: Funcionário, Acionista e Cliente em diferentes instantes.
26 Herança Múltipla Java simplifica a herança Permitindo diretamente apenas a herança simples ou única das classes Java NÃO permite múltipla herança de classe, Pois foi verificado em outras linguagens que sua implementação é muito confusa Um dos problemas que podem surgir... É o conflito de nomes de atributos ou métodos herdados desse tipo de herança, além de heranças repetidas Problemas de códigos
27 Herança Múltipla Herança múltipla de classe não é permitida em Java ObjetoColorido obtemcor() mudacor() liga() acelera() Carro extends extends CarroEsporteColorido Como construir então essa característica em Java?
28 Interfaces Em Java, os objetos podem implementar uma interface... As interfaces são como classes, mas não têm nenhuma implementação. Define apenas as assinaturas de operações externamente visíveis que uma classe pode implementar, sem conter nenhuma especificação ou estrutura interna Interfaces não possuem implementação, somente assinaturas de operações (100% abstratas); Interfaces suportam herança, mesmo herança múltipla. Interfaces podem herdar de outras interfaces, e suportam herança múltipla (enquanto classes suportam herança simples); Mecanismo para prover flexibilidade devido à ausência de herança múltipla de classes; Interfaces definem subtipos, enquanto a herança define as subclasses.
29 Java Herança Múltipla Solução para herança múltipla Escolha uma das classes para herdar; Para as demais, crie interfaces e implemente-as; Use composição ou agregação para fazer reuso. extends extends extends implements
30 Interfaces Características Gerais Importantes Estabelece a interface (o contrato) de um conjunto de classes; Permite a construção de código genérico: Trabalha com qualquer objeto que implemente a interface; Obriga programadores a implementar determinados métodos em suas classes para usar seu código. São públicas (mesma regra das classes); Classes utilizam implements ao invés de extends para implementar uma interface. Todos os métodos são public & abstract; Todos as variáveis são final & static, inicializados isto é, apenas constantes
31 Java - Class x Interface Sintaxe para Classe e Interface em Java Interfaces não permitem declaração de atributos variantes (somente estáticos), enquanto que classes permitem outros. Interfaces estão mais ligadas a comportamento, enquanto que classes estão mais ligadas a implementação.
32 Java - Interface Resumindo: Membros da Interface Métodos definidos na interface são automaticamente públicos e abstratos; Atributos definidos na interface são automaticamente públicos e estáticos. Método sem corpo { }
33 Interface ou classe abstrata? Importante: Classes Abstratas X Interfaces Você deve estar achando que classes abstratas e interfaces são conceitos parecidos e que podem ser usados com objetivos semelhantes. Cuidado! Uma classe pode estender uma única classe (que pode ser abstrata ou não), mas pode implementar várias interfaces. Além disso, interfaces não permitem declaração de atributos variáveis (somente estáticos), enquanto que classes abstratas permitem. Interfaces estão mais ligadas a comportamento, enquanto que classes abstratas estão mais ligadas a implementação. Sempre que possível, use interfaces
34 Blz, Interface ou classe abstrata? Tudo isso é bonito e legal, mas pra que eu tenho que ver isso...?? Vamos analisar um exemplo para entender melhor porque a gente deve entender e usar interfaces
35 Interface ou classe abstrata? Imagine que temos um Hierarquia dos animais, e devemos simular animais em um ambiente. Se analisarmos as relações ao lado, a classe Dog para um programa de ciências está OK..... Mas e para programa que simule um Pet Shop???
36 Interface ou classe abstrata? 1ª Opção: Métodos que simulam os comportamentos de um Pet (Animal de Estimação) implementados em Animal. Prós: Todas as subclasses possuirão esses comportamentos. Uso do polimorfismo. Contras: Existem subclasses de Animal que não precisam desses comportamentos (Hippo, Lion, Tiger, Wolf)
37 Interface ou classe abstrata? 2ª Opção: Métodos abstratos que simulam os comportamentos de um Pet (Animal de Estimação) implementados em Animal. Prós: Todas as subclasses possuirão esses comportamentos; Uso do polimorfismo; Cada subclasse com seu próprio comportamento. Contras: Todas as subclasses concretas devem implementar os métodos abstratos.
38 Interface ou classe abstrata? 3ª Opção: Comportamentos de animais de estimação nas subclasses Dog e Cat. Prós: Comportamento de animal de estimação somente onde necessário; Cada subclasse implementa o comportamento que quiser. Contras: Pode não haver uma padronização dos comportamentos Pet em uma subclasse. Ex.: Se as classes forem implementadas por programadores diferentes. Não pode usar polimorfismo para os comportamentos (métodos) dos animais de estimação.
39 Interface ou classe abstrata? 4ª Opção: Nova classe com comportamentos de animais de estimação Prós: Garante que todos os animais de estimação terão as mesmas definições de métodos; Polimorfismo
40 Interface ou classe abstrata? 4ª Opção: Nova classe com comportamentos de animais de estimação Contras: Duas Superclasses; Java NÃO implementa herança múltipla.
41 Solução: INTERFACE Interface ou classe abstrata? É como uma classe abstrata, mas só tem: Métodos abstratos, públicos Campos finais estáticos, públicos
42 Interfaces Outra coisa legal que a gente pode fazer com interfaces está ligado ao polimorfismo... Interfaces permitem a construção de código genérico Ou seja trabalhar com qualquer objeto que implemente a interface; Em outras palavras... Posso passar qualquer objeto que implementa essa interface Imagine as possibilidades...
43 Interfaces Lembram do nosso exemplo... Com a utilização de interface para herança múltipla em Java, ele ficaria assim.. <<interface>> ObjetoColorido Color obtemcor() void mudacor(color cor) liga() acelera() Carro implements extends CarroEsporteColorido Color cor
44 Java Herança Múltipla Implementação do Carro e Objeto Colorido Métodos sem corpo { } A implementação do método não está na interface mas sim na classe que a implements
45 O que será impresso? AplicacaoDeCor Java - Herança Múltipla Interface (utilização) Posso passar qualquer objeto que implementa essa interface.. Imagine as possibilidades... Como o parâmetro da função ehazul é uma interface... O mail legal é que interface permitem a construção de código genérico: Trabalha com qualquer objeto que implemente a interface;...qualquer classe que implementa esta interface pode ser passada como parâmetro
46 Interfaces e Heranças Outro conceito importante é que Interfaces suportam herança, mesmo herança múltipla. Interfaces podem herdar de outras interfaces, e suportam herança múltipla (enquanto classes suportam herança simples); Mecanismo para prover flexibilidade devido à ausência de herança múltipla de classes;
47 Java - Interface Hierarquias de interfaces Uma interface pode estender outra Uma classe pode implementar várias interfaces Pessoa é uma outra interface Método Pedala é abstract O método Pedala deve ser implementado nesta classe
48 Java - Interface Hierarquias de interfaces Uma interface pode estender outra:
49 Java - Interface Importante: Uma interface pode implementar uma classe abstrata A implementação dos métodos abstratos da interface e da classe fica para os filhos
50 Java - Interface O que o código está fazendo? Mensuravel.java Compara.java Interface - Permitindo a compatibilidade entre duas classes diferentes MainCompara.java
51 Exercícios Blz... Agora é hora de exercitar... Tente resolver ou analisar os seguintes problemas... Em dupla Apresentar ao professor no final da aula Pontuação em Atividades em sala de aula... Faça o JAVADOC de todos os exercícios!!!
52 8. Sempre podemos optar por herança simples ou implements? Exercício 1. Crie um projeto e copie o conteúdo da classe do próximo slide para um arquivo chamado Mostra.java; 2. Compile e execute o código; 3. Analise os resultados; 4. Retire os marcadores de comentários //, e compile; 5. Por que o código não compila? 6. Utilizando implements, o que pode ser feito para que o método Nome das classes Cicrano e Beltrano sejam evocadas? 7. Utilizando herança simples, o que pode ser feito para que o método Nome das classes Cicrano e Beltrano sejam evocadas?
53 class Fulano { } public String Nome() { return "Fulano da Silva"; } class Cicrano { public String Nome() { return "Cicrano da Veiga"; } } class Beltrano { public String Nome() { return "Beltrano da Slovinsky"; } } class Mostra { static void MostraNome(Fulano r) { System.out.println("***> "+r.nome()+" <***"); } public static void main(string[] arg) { Fulano f=new Fulano(); Cicrano c=new Cicrano(); Beltrano b=new Beltrano(); MostraNome(f); //MostraNome(c); //MostraNome(b); } }
54 Exercício O que o código está fazendo? Analise o código, modifique, veja o que acontece.. Aplique as ideias que vimos... Musica.java Exercicio6.java
55 Exercício 1/2 Implemente o cenário abaixo Definir atributos, métodos, etc...
56 Exercício 2/2 Utiliza e implementa uma interface para um robô Exemplo: abstract class RoboCop extends Pessoa implements Robo Faça com que esse robô também implemente a interface Relógio
57 Exercício Implementar Hierarquia abaixo, com métodos simplificados Definir atributos, métodos, etc... Olhar nos slides anteriores da aula... Interface Classes
58 Exercício Considere o diagrama de classes do slide seguinte: a) Crie uma interface de nome Motorizado onde são declarados os métodos void ligarmotor() e void abastecer(int numlitros). b) Implemente a interface Motorizado nas classes Aviao e Carro. c) Escreva um pequeno programa de teste capaz de verificar a implementação anterior. d) Crie uma interface de nome Conduzivel onde é declarado o método void curvar(float angulo). e) Implemente a interface Conduzivel nas classes Aviao, Carro e Bicicleta. f) Complete o programa de teste efetuado anteriormente por forma a testar estas últimas implementações.
59 Exercício
60 Exercício Crie a seguinte hierarquia de classes: Uma interface para representar qualquer forma geométrica, definindo métodos para cálculo do perímetro e cálculo da área da forma; Uma classe abstrata para representar quadriláteros. Seu construtor deve receber os tamanhos dos 4 lados e o método de cálculo do perímetro já pode ser implementado; Classes para representar retângulos e quadrados. A primeira deve receber o tamanho da base e da altura no construtor, enquanto a segunda deve receber apenas o tamanho do lado; Uma classe para representar um círculo. Seu construtor deve receber o tamanho do raio. No programa principal, crie quadrados, retângulos e círculos com tamanhos diferentes e armazene num vetor. Em seguida, imprima os dados (lados ou raio), os perímetros e as áreas de todas as formas.
61 Exercício Implementar classes Pessoa, Liquido e classes filhas desta; Pessoa deve implementar o método beber(liquido); Criar outros atributos e métodos que se julgue necessários; Imprimir estado da pessoa ao beber diferentes tipos de líquido;
62 Exercício
63 Exercício Desenvolva as classes ao lado. Crie uma classe ExemploBanco que faça operações nesse banco. Pegue as informações via teclado ContaDeBanco saldo contadebanco() deposito() retirada() mostrasaldo() ContaPoupança diaaniversário correção contapoupança() corrigesaldo() mostrasaldo() ContaEspecial limite contaespecial() mostrasaldo()
64 Exercício
65 Exercício
66 Exercício
67 Exercício Identifique e explique o(s) erro(s) na classe a seguir. Implemente as correções Implemente uma classe que cria uma instância de EntradaNaAgenda e acesse o método tostring()
68 Exercício
69 Exercício Identifique e explique o(s) erro(s) na classe a seguir. Implemente as correções Implemente uma classe que cria uma instância de DiscoOtico e acesse os métodos tostring() e capacidadeemmegabytes()
70 Exercício
71 Exercício O que o código está fazendo?
72 Exercício O que o código está fazendo?
73 Exercício O que o código está fazendo? Exercicio5.java
74 O que será impresso? Exercício
75 O que será impresso? Exercício
76 Exercício Considere o diagrama de classes do slide seguinte: Crie as relações... Escreva um pequeno programa de teste capaz de verificar a implementação anterior.
77
Java 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 maisAula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU
Aula 10 POO 1 Classes Abstratas Profa. Elaine Faria UFU - 2019 Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos
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 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 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 maisInterfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.
Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em
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 e Polimorfismo
Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais
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 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 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 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 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 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 maisPOO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo
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 maisHerança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos
e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
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 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 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 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 mais6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza
Desenvolvimento OO com Java 6 Polimorfismo Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
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 maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisPolimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica
Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos Ligação Dinamica Polimorfismo Verificação Dinâmica de Tipos 2 Introdução A vinculação ou ligação
Leia maisPOO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo
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 maisImplementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias
Leia maisAULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos
Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema
Leia maisLinguagem de Programação. Diagrama de classes
Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um
Leia maisInterfaces e polimorfismo
Java 2 Standard Edition Interfaces e polimorfismo Helder da Rocha (helder@acm.org) argonavis.com.br 1 O que é polimorfismo Polimorfismo (poli=muitos, morfo=forma) é uma característica essencial de linguagens
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 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 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 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 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 maisHerança e Propriedades
Herança e Propriedades 2013 O que veremos hoje? Herança e Propriedades Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Herança em POO Herança Herança
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 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 maisPOO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Herança Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo 11 de setembro
Leia maisComo exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.
HERANÇA E POLIMORFISMO Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 7 A herança é um importante recurso da programação orientada a objeto que
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Editor Gráfico Vamos usar nosso framework do Motor, com pequenas mudanças (para permitir interação com
Leia maisAvançando em Java com
Avançando em Java com Polimorfismo (Interfaces) Prof.: Hugo Barros Interfaces Como já foi dito, java não permite que uma classe herde recurso de mais de uma classe. Herança múltiplipa é um recurso muito
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 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 IV Introdução
Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação
Leia maisProgramação Orientada a Objetos II
Programação Orientada a Objetos II Prof. Walter Gima walter.gima@anhanguera.com 1 Interfaces Polimorfismo 2 Agenda Interfaces Interfaces x Classes Abstratas Polimorfismo Herança Múltipla 3 Interfaces São
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 maisLinguagem de programação Programação Orientada a objetos
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de
Leia maisProf. Vicente Paulo de Camargo UML - INTRODUÇÃO UML = Unified Modeling Language = linguagem de modelagem de sistemas Permite especificar, visualizar e documentar modelos de software orientados a objetos
Leia mais[Desenvolvimento OO com Java] Classes abstratas e interfaces
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Classes abstratas e interfaces Este obra está licenciada com uma
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 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 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 maisHerança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1
Herança Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman 1 1 1 Motivação Você está desenvolvendo um sistema de gerenciamento de pessoal para a USP Precisa fazer: Cadastro de alunos e professores
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual
Leia maisp Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco
1 Expandindo o Sistema p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco class Diretor extends Funcionario { public boolean autentica(int senha)
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 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 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 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 maisOrientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento
Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes
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 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
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 maisJava First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.
Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:
Leia maisLição 11 Herança, polimorfismo e interfaces
Lição 11 Herança, polimorfismo e interfaces 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Definir superclasses e subclasses Criar Override de métodos de superclasses Criar métodos e classes
Leia maisOrientação a Objetos Classes Abstratas
Orientação a Objetos Classes Abstratas Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisAvançando em Java com Polimorfismo. Prof.: Hugo Barros
Avançando em Java com Polimorfismo Prof.: Hugo Barros Tópicos da Aula Polimorfismo: Exemplos de polimorfismo Vantagens do polimorfismo Tipos de polimorfismo Métodos Abstratos Classes Abstratas Vinculação
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 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 maisLista de exercícios 2
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Disciplina: Programação II Professora: Juliana Pinheiro Campos Data: 19/10/2012 Lista de exercícios
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Leia maisIntrodução. Extends e Super. Exercício Prático 5 Herança. Nome:
Universidade Estadual da Paraíba Campus VII Gov. Antônio Mariz CCEA Centro de Ciências Exatas e Sociais Aplicadas Licenciatura em Computação Java - Noturno Exercício Prático 5 Herança Nome: Introdução
Leia maisInterfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Leia maisFundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
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 maisProgramação Orientada a Objetos. Prof. Diemesleno Souza Carvalho
Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Herança Programação Orientada
Leia mais