[Desenvolvimento OO com Java] Classes abstratas e interfaces
|
|
|
- Ana Sabala
- 7 Há anos
- Visualizações:
Transcrição
1 Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza [Desenvolvimento OO com Java] Classes abstratas e interfaces Este obra está licenciada com uma licença Creative Commons Atribuição- CompartilhaIgual 4.0 Internacional:
2 Conteúdo do curso O que é Java; Variáveis primitivas e controle de fluxo; Orientação a objetos básica; Um pouco de vetores; Modificadores de acesso e atributos de classe; Herança, reescrita e polimorfismo; Classes abstratas e interfaces; Exceções e controle de erros; Organizando suas classes; Utilitários da API Java. Estes slides foram baseados na apostila do curso FJ-11: Java e Orientação a Objetos da Caelum e na apostila Programação Orientada a Objetos em Java do prof. Flávio Miguel Varejão. Abril 2019 Programação III - Classes abstratas e interfaces 2
3 Exemplo: um aplicativo de desenho Abril 2019 Programação III - Classes abstratas e interfaces 3
4 Classes e métodos abstratos Classes no topo da hierarquia podem ser muito gerais: o O que é uma forma? o Como se desenha uma forma? o Como se aumenta uma forma? Tais operações não fazem sentido. Queremos apenas definir que elas existam, mas não implementá-las; A solução: métodos abstratos. Abril 2019 Programação III - Classes abstratas e interfaces 4
5 Classes e métodos abstratos Uma classe que possui métodos abstratos deve ser declarada como abstrata: abstract class Forma { public abstract void desenhar(); class Circulo extends Forma public void desenhar() { System.out.println("Círculo"); Abril 2019 Programação III - Classes abstratas e interfaces 5
6 Classes abstratas Não permitem criação de instâncias (objetos): o Um método abstrato não possui implementação, portanto não pode ser chamado. Para ser útil, deve ser estendida: o Suas subclasses devem implementar o método ou declararem-se como abstratas. Servem para definir interfaces e prover algumas implementações comuns. Polimorfismo! Abril 2019 Programação III - Classes abstratas e interfaces 6
7 Construindo a hierarquia de formas Forma Decl. desenhar() Círculo Triângulo Retângulo Decl. desenhar() Decl. desenhar() Decl. desenhar() Impl. desenhar() Impl. desenhar() Impl. desenhar() Quadrado Decl. desenhar() Abril 2019 Programação III - Classes abstratas e interfaces 7
8 Classes e métodos abstratos - Quiz Métodos estáticos podemser abstratos? Construtores podemser abstratos? Classes abstratas podemter construtores? Não Não Sim Lembre-se: construtores são chamados pelas subclasses! Métodos abstratos podemser privativos? Uma classe abstratapodemestender umanormal? Posso ter uma classe abstrata sem nenhum método abstrato? Não Sim Sim Abril 2019 Programação III - Classes abstratas e interfaces 8
9 Classes abstratas (puras) e concretas // Classe abstrata pura. abstract class Forma { public abstract void desenhar(); public abstract void aumentar(int t); // Classe abstrata. abstract class Poligono extends Forma { private int lados; public Poligono(int lados) { this.lados = lados; public int getlados() { return lados; public abstract void pintar(int cor); Abril 2019 Programação III - Classes abstratas e interfaces 9
10 Classes abstratas (puras) e concretas // Classe concreta. class Retangulo extends Poligono { public Retangulo() { public void desenhar() { public void aumentar(int t) { public void pintar(int cor) { System.out.println("Retangulo.pintar"); Abril 2019 Programação III - Classes abstratas e interfaces 10
11 Interfaces Uma classe abstrata é pura quando: o Possui métodos abstratos; o Não possui métodos concretos; o Não possui atributos (não-static). Java oferece a palavra reservada interface: o Cria uma classe abstrata pura; o Chamaremos pelo nome de interface; o Ao conversar com outros programadores, cuidado para não confundir com interface com o usuário. Abril 2019 Programação III - Classes abstratas e interfaces 11
12 Interfaces interface Forma { void desenhar(); void aumentar(int t); abstract class Poligono implements Forma { private int lados; public Poligono(int lados) { this.lados = lados; public int getlados() { return lados; public abstract void pintar(int cor); Abril 2019 Programação III - Classes abstratas e interfaces 12
13 Interfaces class Linha implements Forma { private double x1, y1, x2, public void desenhar() { /*... public void aumentar(int t) { /*... */ Abril 2019 Programação III - Classes abstratas e interfaces 13
14 Tudo é público na interface Métodos definidos na interface são automaticamente públicos e abstratos; Exceção: default methods (Java 8) Atributos definidos na interface são automaticamente públicos e estáticos. interface Forma { int x = 10; void desenhar(); Definições equivalentes interface Forma { public static int x = 10; public abstract void desenhar(); Abril 2019 Programação III - Classes abstratas e interfaces 14
15 Por isso, cuidado com erros interface Forma { void desenhar(); void aumentar(int t); class Linha implements Forma { // Erro: reduziu de público para priv. ao pacote! void desenhar() { /*... */ // Erro: reduziu de público para privativo! private void aumentar(int t) { /*... */ Abril 2019 Programação III - Classes abstratas e interfaces 15
16 Motivação Texto não é forma, OK! Como fica o método que carrega meu desenho do arquivo que eu salvei no HD? Abril 2019 Programação III - Classes abstratas e interfaces 16
17 Não-solução 1 public class AplicativoDesenho { private static void desenhar(forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); Texto não é forma! Esse método não serve Abril 2019 Programação III - Classes abstratas e interfaces 17
18 Não-solução 2 public class AplicativoDesenho { private static void desenhar(forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); private static void desenhar(texto[] ts) { for (int i = 0; i < ts.length; i++) ts[i].escrever(); Já vimos, com polimorfismo, que essa não é a solução Abril 2019 Programação III - Classes abstratas e interfaces 18
19 Não-solução 3 Já sei! Abril 2019 Programação III - Classes abstratas e interfaces 19
20 Solução: interfaces Abril 2019 Programação III - Classes abstratas e interfaces 20
21 Solução: interfaces abstract class Forma implements Renderizavel { /*... public void renderizar() { desenhar(); class Texto implements Renderizavel { /*... public void renderizar() { escrever(); Abril 2019 Programação III - Classes abstratas e interfaces 21
22 Solução: interfaces (alternativa) interface Forma extends Renderizavel { /*... */ // As diferentes implementações de forma agora tem // que implementar renderizar() e não desenhar(). class Texto implements Renderizavel { /*... public void renderizar() { escrever(); Abril 2019 Programação III - Classes abstratas e interfaces 22
23 Solução: interfaces O polimorfismo se amplia: mais um modo de referenciar uma forma: Renderizavel; AplicativoDesenho não precisa saber a classe real do objeto, apenas que ele implementa a interface; o Se implementa a interface, ele implementa o método renderizar()! Novas classes podem ser renderizáveis! public class AplicativoDesenho { private static void desenhar(renderizavel[] fs) { for (int i = 0; i < fs.length; i++) fs[i].renderizar(); Abril 2019 Programação III - Classes abstratas e interfaces 23
24 Interface = contrato Renderizavel define que todas as classes que a implementam saibam se renderizar() o que ; o A implementação define o como ; Define um contrato: quem desejar ser renderizável precisa saber se renderizar() ; o A classe que quiser, assina o contrato e se responsabiliza a cumpri-lo; Programe voltado a interfaces e não a implementações (mas sem exageros). Abril 2019 Programação III - Classes abstratas e interfaces 24
25 Herança múltipla em Java Pode isso, Arnaldo? Abril 2019 Programação III - Classes abstratas e interfaces 25
26 Herança múltipla em Java A regra é clara Abril 2019 Programação III - Classes abstratas e interfaces 26
27 Herança múltipla em Java class CaixaDeTexto extends Texto implements Forma { private Retangulo caixa; /*... */ public CaixaDeTexto() { // Parâmetros foram omitidos para simplificar... caixa = new Retangulo(); public void renderizar() { // Desenha a caixa. caixa.renderizar(); // Escreve o texto. escrever(); Abril 2019 Programação III - Classes abstratas e interfaces 27
28 A interface Comparable Um exemplo de interface na API Java é a interface Comparable; Define o método compareto(object obj): o Compara o objeto atual (this) com o objeto informado (obj); o Retorna 0 se this = obj; o Retorna um número negativo se this < obj; o Retorna um número positivo se this > obj. Métodos genéricos a utilizam para ordenar coleções de elementos. Abril 2019 Programação III - Classes abstratas e interfaces 28
29 A interface Comparable class Valor implements Comparable { int valor; public Valor(int v) { valor = public int compareto(object obj) { return valor - public String tostring() { return "" + valor; Abril 2019 Programação III - Classes abstratas e interfaces 29
30 A interface Comparable public class Teste { static void imprimir(object[] vetor) { for (int i = 0; i < vetor.length; i++) System.out.print(vetor[i] + "; "); System.out.println(); public static void main(string[] args) { Valor[] vetor = new Valor[] { new Valor(10), new Valor(3), new Valor(15), new Valor(7) ; imprimir(vetor); // 10; 3; 15; 7; Arrays.sort(vetor); imprimir(vetor); // 3; 7; 10; 15; Abril 2019 Programação III - Classes abstratas e interfaces 30
31 O mecanismo de RTTI
32 Polimorfismo e extensão Com polimorfismo, podemos esquecer a classe de um objeto e trabalhar com a superclasse: o A interface de ambas é a mesma; o A amarração dinâmica garante que o método da classe correta será executado. O que acontece se a subclasse estende a superclasse (adiciona mais funcionalidade)? Se a superclasse não possui aquela funcionalidade, não podemos chamá-la! Abril 2019 Programação III - Classes abstratas e interfaces 32
33 Polimorfismo e extensão interface Animal { void comer(); class Cachorro implements Animal public void comer() { System.out.println("Comendo um osso..."); public void latir() { System.out.println("Au Au!"); Abril 2019 Programação III - Classes abstratas e interfaces 33
34 Polimorfismo e extensão class Gato implements Animal public void comer() { System.out.println("Comendo um peixe..."); public void miar() { System.out.println("Miau!"); Abril 2019 Programação III - Classes abstratas e interfaces 34
35 Polimorfismo e extensão public class Teste { public static void main(string[] args) { Animal[] vet = new Animal[] { new Cachorro(), new Gato(), new Gato(), new Cachorro() ; for (int i = 0; i < vet.length; i++) { vet[i].comer(); // Erro: vet[i].latir(); #comofas? Abril 2019 Programação III - Classes abstratas e interfaces 35
36 Estreitamento (downcast) Precisamos relembrar a classe específica do objeto para chamarmos métodos que não estão na interface da superclasse; Para isso faremos estreitamento: Ampliação (upcast) int para long float para double Cachorro para Animal Gato para Animal Estreitamento (downcast) long para int double para float Animal para Cachorro Animal para Gato Abril 2019 Programação III - Classes abstratas e interfaces 36
37 Upcast vs. downcast Ampliação é automática e livre de erros: o A classe base não pode possuir uma interface maior do que a classe derivada; o Não é necessário explicitar o upcast. Estreitamento é manual e pode causar erros: o A classe base pode ter várias subclasses e você está convertendo para a classe errada; o É necessário explicitar o downcast; o Pode lançar um erro (ClassCastException); o Pode haver perda de informação (tipos primitivos). Abril 2019 Programação III - Classes abstratas e interfaces 37
38 Upcast vs. downcast public class Teste { public static void main(string[] args) { Animal a = new Cachorro(); Cachorro c = (Cachorro)a; Upcast c.latir(); // Forma resumida: a = new Gato(); ((Gato)a).miar(); Downcast Abril 2019 Programação III - Classes abstratas e interfaces 38
39 RTTI: Run-Time Type Identification O mecanismo que verifica o tipo de um objeto em tempo de execução chama-se RTTI; RTTI = Run-Time Type Identification ou Identificação de Tipos em Tempo de Execução; Este mecanismo garante que as conversões são sempre seguras; Não permite que um objeto seja convertido para uma classe inválida: o Fora da hierarquia: erro de compilação; o Dentro da hierarquia: erro de execução. Abril 2019 Programação III - Classes abstratas e interfaces 39
40 RTTI: Run-Time Type Identification public class Teste { public static void main(string[] args) { Animal a = new Cachorro(); // Sem erro nenhum: Cachorro c = (Cachorro)a; // Erro de execução (ClassCastException): Gato g = (Gato)a; // Erro de compilação: String s = (String)a; Abril 2019 Programação III - Classes abstratas e interfaces 40
41 O operador instanceof O mecanismo de RTTI permite que você consulte se um objeto é de uma determinada classe; Operador instanceof: o Sintaxe: <objeto> instanceof <Classe> o Retorna true se o objeto for instância (direta ou indireta) da classe especificada; o Retorna false caso contrário. Abril 2019 Programação III - Classes abstratas e interfaces 41
42 O operador instanceof public class Teste { public static void main(string[] args) { Animal[] vet = new Animal[] { new Cachorro(), new Gato(), new Gato(), new Cachorro() ; for (int i = 0; i < vet.length; i++) { if (vet[i] instanceof Cachorro) ((Cachorro)vet[i]).latir(); else if (vet[i] instanceof Gato) ((Gato)vet[i]).miar(); Abril 2019 Programação III - Classes abstratas e interfaces 42
43 O uso de instanceof deve ser raro Não é uma boa prática usar instanceof: o Use polimorfismo; o Use classes genéricas (veremos adiante). Use instanceof apenas quando não há outra solução. Abril 2019 Programação III - Classes abstratas e interfaces 43
44 Trocando instanceof por polimorfismo interface Animal { void comer(); void falar(); class Cachorro extends Animal public void comer() { /*... public void falar() { /*... */ class Gato extends Animal public void comer() { /*... public void falar() { /*... */ Abril 2019 Programação III - Classes abstratas e interfaces 44
45 Trocando instanceof por genéricos public class Teste { public static void main(string[] args) { Cachorro c; List lista = new ArrayList(); lista.add(new Cachorro()); Object o = lista.get(0); if (o instanceof Cachorro) c = (Cachorro)o; // Com genéricos. List<Cachorro> listagen; listagen = new ArrayList<Cachorro>(); listagen.add(new Cachorro()); c = listagen.get(0); Abril 2019 Programação III - Classes abstratas e interfaces 45
46 Exercitar é fundamental Apostila FJ-11 da Caelum Classes Abstratas: o Seção 9.6, página 121 (conta corrente); o Seção 9.7, página 123 (desafios); Apostila FJ-11 da Caelum Interfaces: o Seção 10.5, página 134 (formas, conta corrente); o Seção 10.6, página 138 (exercícios avançados); o Seção 10.7, página 139 (discussão). Abril 2019 Programação III - Classes abstratas e interfaces 46
Desenvolvimento OO com Java Classes abstratas e interfaces
Desenvolvimento OO com Java Classes abstratas e interfaces Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza
Desenvolvimento OO com Java 6 Polimorfismo Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais).
Disciplina: Programação Orientada à Objetos AULA 08 Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais). Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio
Recapitulando. 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
Lista 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
Programaçã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(){
Heranç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 [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Interfaces 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
POO29004 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é [email protected] http://docente.ifsc.edu.br/mello/poo
Classe Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite [email protected] 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
Computaçã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
Linguagem 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
Ex: 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
[Desenvolvimento OO com Java] Modificadores de acesso e atributos de classe
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza Este obra está licenciada com uma licença Creative Commons Atribuição- CompartilhaIgual 4.0
A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas
Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas
Heranç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 [email protected] Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:
Desenvolvimento OO com Java Herança, reescrita e polimorfismo
Desenvolvimento OO com Java Herança, reescrita e polimorfismo Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Paradigmas 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
Classes 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
POO29004 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é [email protected] http://docente.ifsc.edu.br/mello/poo
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Heranç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
Linguagem 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
Polimorfismo. 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
Programaçã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?
Fundamentos 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
Programaçã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
Programaçã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
Vejamos 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
Interfaces. 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 [email protected] Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em
4 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
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes [email protected] 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Programaçã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
9 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
Programaçã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
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)
Linguagem 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
Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático
Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos
POO29004 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é [email protected] http://docente.ifsc.edu.br/mello/poo 11 de setembro
[Desenvolvimento OO com Java] Exceções e controle de erros
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Exceções e controle de erros Este obra está licenciada com uma
Programaçã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
Orientaçã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
Programaçã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
Linguagem 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
Liçã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
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva [email protected] br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
Heranç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
Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza
Desenvolvimento OO com Java 5 Reuso de Classes Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Palavras 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
Rafael B. Pereira (http://www.rbper.com)
Nesse caso a cláusula this() serve para chamar o construtor da própria classe. Agora vamos supor que fosse desejado chamar um construtor da classe pai. Como isso poderia ser feito? Bastaria usar a cláusula
Aula 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
Java 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
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
Programação Orientada a Objetos com Java. Prof. Júlio Machado
Programação Orientada a Objetos com Java Prof. Júlio Machado [email protected] HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que
Polimorfismo. 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
Interfaces 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
Linguagem 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
UNIVERSIDADE 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
Programação Orientada por Objetos
PPROG Paradigmas da Programação Programação Orientada por Objetos Herança de Classes Polimorfismo Classes Abstratas (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/72
extendsé usado para indicar herança em JAVA
Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando extendsé usado para indicar herança em JAVA class ClasseA{ protected int a; public int geta()
Aula 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
Conceitos 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
Programaçã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
Programação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
Programação Orientada a Objetos
Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida [email protected] www3.ifrn.edu.br/~andrealmeida Aula VIII Herança e Interface Roteiro Herança Classes Abstratas Interface
Java 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
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo
