Tipos genéricos (cont)
|
|
- Larissa Sá Guimarães
- 7 Há anos
- Visualizações:
Transcrição
1 Tipos genéricos (cont) Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. Gilad Bracha, Generics in the Java Programming Language a.k.a The Generics Tutorial, Julho de 2004 cf. José Valente de Oliveira 18-1 Aula de substituíção da próxima semana José Valente de Oliveira
2 Sumário Noções chave Definição e utilização de tipos genéricos Hierarquias de subtipos Tipos com limites Especificação UML Métodos genéricos Desenvolvimento de tipos genéricos: O quicksort revisitado Rasura Polimorfismo revisitado jvo@ualg.pt José Valente de Oliveira 18-3 Tipos com limites Limite superior: <? extends T> Aceita T e todos os seus descendentes Ex: se T for Number, aceita também Integer, Float, Double Limite inferior: <? super T> Aceita T e todos os seus ascendentes Ex: se T for Integer, aceita também Number e Object jvo@ualg.pt José Valente de Oliveira
3 Generic type hierachy Desenvolvimento de tipos genéricos José Valente de Oliveira
4 class Point class Point { private int x, y; public Point(int ax, int ay) { class Point { x=ax; private double x, y; y=ay; public Point(double ax, double ay) { x=ax; public int getx() { return x; y=ay; public int gety() { return y; public double getx() { return x; public double dist(point p) { public double gety() { return y; int dx = x p.getx(); int dy = y p.gety(); public double dist(point p) { return Math.sqrt(dx*dx+dy*dy); double dx = x p.getx(); double dy = y p.gety(); return Math.sqrt(dx*dx+dy*dy); O que nós gostaríamos: Point<Integer> pi = new Point<Integer>(1, 2); Point<Double> pd = new Point<Double>(1.3, 2.4); jvo@ualg.pt José Valente de Oliveira
5 class Point como um tipo genérico class Point<T extends Number> { private T x, y; public Point(T ax, T ay) { x=ax; y=ay; public T getx() { return x; public T gety() { return y; public double dist(point p) { T dx = x p.getx(); T dy = y p.gety(); return Math.sqrt(dx*dx+dy*dy); Recalling quicksort jvo@ualg.pt José Valente de Oliveira
6 unchecked ) abstract class Quicksort { private Comparable[] data; /** pré-generics **/ interface Comparable { int compareto(object o); public final void quicksort(comparable[] d) { data = d; quicksort(0, data.length-1); /** quicksort method as the template method */ private final void quicksort(int left, int right) { if (right <= left) return; int i = partition(left, right); quicksort(left, i-1); quicksort(i+1, right); jvo@ualg.pt José Valente de Oliveira O que gostaríamos public class Main { public static void main(string[] args) { List<Fraction> lst = new ArrayList<Fraction>(); lst.add(new Fraction(1, 7)); lst.add(new Fraction(5, 2)); lst.add(new Fraction(1, 2)); GQuicksort<Fraction> qs = new ProbQuickSort<Fraction>(); qs.quicksort(lst); for(fraction f: lst) System.out.println (f); jvo@ualg.pt José Valente de Oliveira
7 O quicksort revisitado public abstract class GQuicksort<T extends Comparable<T>> { private List<T> data; public final void quicksort(list<t> d) { data = d; quicksort(0, data.size()-1); private final void quicksort(int left, int right) { if (right <= left) return; int i = partition(left, right); quicksort(left, i-1); quicksort(i+1, right); jvo@ualg.pt José Valente de Oliveira Anteriormente /** Call this in a subclass for swaping elements i and j */ protected final void exchange(int i, int j) { Comparable tmp = data[i]; data[i] = data[j]; data[j] = tmp; /** Use this in subclasses to compare elements x.compareto(y) answer 0 if x ==y; -1 if x < y; 1 se x>y */ protected final boolean less(int i, int j) { return (data[i].compareto(data[j]) < 0); jvo@ualg.pt José Valente de Oliveira
8 O quicksort revisitado protected final void exchange(int i, int j) { T tmp = data.get(i); data.set(i, data.get(j)); data.set(j, tmp); protected final boolean less(int i, int j) { T di = data.get(i); T dj = data.get(j); return (di.compareto(dj) < 0); jvo@ualg.pt José Valente de Oliveira Antes class ProbQuickSort extends Quicksort protected int partition(int left, int right) { int last=left; int pp = left + (int) (Math.random() * (right-left)); // pivot position exchange(left, pp); for(int i=left+1; i <= right; i++) if (less(i, left)) exchange(i, ++last); exchange(left, last); return last; jvo@ualg.pt José Valente de Oliveira
9 O quicksort revisitado class GProbQuickort<T extends Comparable<T>> extends GQuicksort<T> { protected int partition(int left, int right) { int last=left; int pp = left + (int) (Math.random() * (right-left)); // pivot position exchange(left, pp); for(int i=left+1; i <= right; i++) if (less(i, left)) exchange(i, ++last); exchange(left, last); return last; jvo@ualg.pt José Valente de Oliveira Será que podemos usar esta classe antiga /** a pre-generics version */ class Fraction implements Comparable { private int num, den; // public int compareto (Object o) { // /** pré-generics **/ interface Comparable { int compareto(object o); jvo@ualg.pt José Valente de Oliveira
10 neste cliente? public class Main { public static void main(string[] args) { List<Fraction> lst = new ArrayList<Fraction>(); lst.add(new Fraction(1, 7)); lst.add(new Fraction(5, 2)); lst.add(new Fraction(1, 2)); GQuicksort<Fraction> qs = new ProbQuickSort<Fraction>(); qs.quicksort(lst); for(fraction f: lst) System.out.println (f); jvo@ualg.pt José Valente de Oliveira Vejamos public abstract class GQuicksort<T extends Comparable<T>> { private List<T> data; // protected final boolean less(int i, int j) { T di = data.get(i); T dj = data.get(j); return (di.compareto(dj) < 0); jvo@ualg.pt José Valente de Oliveira
11 Recorda-se que /** pré-generics **/ interface Comparable { int compareto(object o); /** actualmente **/ interface Comparable<T> { int compareto(t t); jvo@ualg.pt José Valente de Oliveira Relembremos /** a pre-generics version */ class Fraction implements Comparable { private int num, den; // public int compareto (Object o) { // jvo@ualg.pt José Valente de Oliveira
12 e se fizermos estas alterações? public abstract class GQuicksort<T extends Comparable<? super T>> { private List<T> data; // class GProbQuickort<T extends Comparable<? super T>> extends GQuicksort<T> { // jvo@ualg.pt José Valente de Oliveira Rasura (Erasure) jvo@ualg.pt José Valente de Oliveira
13 Rasura (erasure) O compilador rasura toda a informação relativa ao parâmetro formal de tipo na classe compilada A classe fonte ArrayList<T> é na classe compilada apenas ArrayList T é na classe compilada: Object, quando se encontra num contexto <T> (Object é a superclasse implícita de T). Number, quando se encontra num contexto <T extends Number>(Number é a superclasse explícita de T). jvo@ualg.pt José Valente de Oliveira Rasura (erasure) 13
14 Rasura (erasure) Rasura (erasure) A rasura faz com que, em tempo de execução, não se possa usar nada que necessite do conhecimento do parâmetro formal. 1. Não é possível usar o parâmetro tipo T para criar objectos nem para criar tabelas. 14
15 Rasura (erasure) José Valente de Oliveira Solução típica José Valente de Oliveira
16 Cliente José Valente de Oliveira Rasura (erasure) 2. Não é possível criar tabelas cujos elementos sejam tipos parametrizados. 16
17 Rasura (erasure) 3. Não é possível usar instanceof para verificar se um objecto é uma instância de um tipo parametrizado. Rasura (erasure) 4. Os casts envolvendo tipos genéricos ou parâmetros formais de tipo são substituídos por casts para as rasuras respectivas. 17
18 Rasura (erasure) 5. Não é possível aceder a membros estáticos de um tipo parametrizado: public class MyCollection<E> implements Collections<E> { //... public static int MAX_SIZE; MyCollection<Integer>.MAX_SIZE; // ERROR! MyCollection.MAX_SIZE; Polimorfismo revisitado jvo@ualg.pt José Valente de Oliveira
19 Polimorfismo revisitado José Valente de Oliveira Polimorfismo ad-hoc coercitivo José Valente de Oliveira
20 Polimorfismo ad-hoc sobrecarga José Valente de Oliveira Polimorfismo universal paramétrico José Valente de Oliveira
21 Polimorfismo universal de inclusão José Valente de Oliveira Check point Qual é o valor lógico escrito no ecrã? List<String> l1 = new ArrayList<String> (); List<Integer> l2 = new ArrayList<Integer> (); System.out.println(l1.getClass() == l2.getclass()); 21
22 Check point Serão válidas as expressões seguintes? List<Integer> l1 = new ArrayList<Integer> (); List<Number> l2 = new ArrayList<Number> (); l2 = l1; l2.add(1); Sumário Noções chave Definição e utilização de tipos genéricos Hierarquias de subtipos Tipos com limites Especificação UML Métodos genéricos O quicksort revisitado Rasura Polimorfismo revisitado jvo@ualg.pt José Valente de Oliveira
Tipos genéricos (cont)
Tipos geéricos (cot) Bruce Eckel, Thikig i Java, 4th editio, PreticeHall, New Jersey, cf. http://midview.et/books/tij4 Gilad Bracha, Geerics i the Java Programmig Laguage a.k.a The Geerics Tutorial, Julho
Leia maisTrabalhadorEstudante te(123, Ana, Faro, feminino, 100.0, 22); Estudante e=te; //ok Estudante *pe = &te; //ok Estudante &se = te; //ok
$ % & ' ( ) * * * +, -. / 0 1 2 / 1 34 5 637 38 9 1 / 4 : 3/ 0 9 0 ; < 39 1 = / 7 69 1 1 / 1 >?@ A?@ B o / 4 + C C D E < - F 2 / 1. 30 8 < 9 3 1 G = / 18< 3 =, 0 / 1. 30 8 < 9 3 1 G H = / - 8 3 I 37 9
Leia maisTIPOS PARAMETRIZADOS CLASSES GENÉRICAS PARTE II
TIPOS PARAMETRIZADOS CLASSES GENÉRICAS PARTE II JAVA5 Tiger JAVA6 - Mustang ARQUITECTURAS DE SOFTWARE F. Mário Martins 2011 1 CRIAÇÃO DE CLASSES GENÉRICAS ARQUITECTURAS DE SOFTWARE F. Mário Martins 2011
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 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 maisBruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4. jvo@ualg.pt José Valente de Oliveira 16-1
Streams III Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 jvo@ualg.pt José Valente de Oliveira 16-1 Previously: Serializing a collection public
Leia maisJava Collections Framework II
Java Collections Framework II Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 Gilad Bracha, Generics in the Java Programming Language a.k.a The
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 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 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 maisStreams II. Overview. The notion of stream Java I/O stream hierarchy Files, and file access using streams Serialization
Streams II Bruce Eckel, Thikig i Java, 4th editio, PreticeHall, New Jersey, cf. http://midview.et/books/tij4 jvo@ualg.pt José Valete de Oliveira 16-1 Overview The otio of stream Java I/O stream hierarchy
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 maisA Relação de Subtipo e Tipos Genéricos
O tipo List representa as listas que declaram ter elementos do tipo Object O tipo que representa as listas que declaram ter elementos de um tipo qualquer é List Este tipo é definido à custa
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 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 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 maisProfa. Thienne Johnson EACH/USP
Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro
Leia maisIntrodução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.
Java Parte I mleal@inf.puc-rio.br 1 Introdução LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++. Todos os programas Java são compilados e interpretados. O compilador
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 Objetos com Java. Prof. Júlio Machado
Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que
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. 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 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 Subtipagem e Coringas Lista é subtipo de Lista para qualquer T Não podemos chamar métodos em Lista
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 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 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 maisTipos, 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
Leia maisTipos, 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
Leia maisTécnicas de Programação Avançada TCC Prof.: Anselmo Montenegro Conteúdo: Polimorfismo
Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Polimorfismo Revisão... A classe provê a estrutura para a construção de objetos
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 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 maisRafael 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
Leia maisProgramação com genéricos
Programação com genéricos Laboratório de Programação Pedro Vasconcelos, DCC/FCUP Fevereiro 2015 Tipos genéricos tipos genéricos permitem definir classes ou interfaces que são parameterizadas por outras
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 maisJava Collections Framework III
Java Collectios Framework III Bruce Eckel, Thikig i Java, 4th editio, PreticeHall, New Jersey, cf. http://midview.et/books/tij4 Gilad Bracha, Geerics i the Java Programmig Laguage a.k.a The Geerics Tutorial,
Leia maisInterfaces e Classes Internas
e Classes Internas 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 maisEspecificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)
Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private
Leia maisMétodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci
Métodos Genéricos Prof.: Michele Nasu Tomiyama Bucci Introdução Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados
Leia maisProgramação Orientada a Objetos. Polimorfismo
Programação Orientada a Objetos Polimorfismo Cristiano Lehrer, M.Sc. Introdução (1/3) Polimorfismo significa ter muitas formas. Em termos de programação, muitas formas significa que um único nome pode
Leia maisHerança e Polimorfismo (Universal)
Herança e Polimorfismo (Universal) Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Polimorfismo Paramétrico Polimorfismo de Inclusão Vinculação dinâmica Herança Interfaces
Leia maisErrors and exceptions
Errors and exceptions Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 14-1 Overview Introdução Testes e Testes unitários Noção de Exceção A hierarquia
Leia mais12 Tipos Genéricos. Desenvolvimento OO com Java. Vítor E. Silva Souza
Desenvolvimento OO com Java 12 Tipos Genéricos 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
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 maisQuando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa
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 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. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III
Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços
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 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 maisPolimorfismo e Acoplamento Dinâmico
Polimorfismo e Acoplamento Dinâmico Adriano J. Holanda 15/5/2015 Polimorfismo Substituição ou redefinição de atributos e métodos da superclasse para adequação às características da subclasse. Métodos:
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido
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 maisHeranç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
Leia maisBinding and Casting. Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf.
Binding and Casting Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 Binding Intuitively, binding occours whenever a correspondence is stabilished
Leia maisINTERFACES DE JAVA. O JCF é uma arquitectura que se baseia em três entidades fundamentais:
INTERFACES DE JAVA O JCF é uma arquitectura que se baseia em três entidades fundamentais: a) Interfaces; b) Classes abstractas; c) Classes Concretas Implementações; Interfaces e Comparator 1 Interfaces
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 maisGenerics - Java. Fernando Santos. Programação Orientada a Objetos
- Java Fernando Santos Programação Orientada a Objetos Generics é uma funcionalidade incorporada ao Java a partir da versão 5.0 Permite aos programadores escreverem métodos genéricos Os parâmetros dos
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 maisAula 10 Polimorfismo. Prof. Jefersson Alex dos Santos. Baseado em: http://homepages.dcc.ufmg.br/~fernando/classes/dcc052/ementa/lesson8/
Aula 10 Polimorfismo Prof. Jefersson Alex dos Santos Baseado em: http://homepages.dcc.ufmg.br/~fernando/classes/dcc052/ementa/lesson8/ Polimorfismo Definição: É a capacidade de um objeto em decidir que
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 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 maisProgramação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011
Programação Orientada por Objectos 2010/11 2º Exame 28 de Junho de 2011 Instruções (leia com cuidado): Escreva de forma CLARA o seu nome e número em todas as folhas. O exame contém 8 páginas dividido em
Leia maisORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO HERANÇA A sintaxe de herança a para C++ e para Java são diferentes. Além m disso, em C++ é possível construir herança a múltipla...
Leia maisConceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas e Listas dinâmicas
Curso APOO Disciplina Linguagem de Programação II Curso Engenharia da Computação Conceitos de Interface; classes abstratas; Diagrama de sequencia, Diagrama de atividades, classes aninhadas e Listas dinâmicas
Leia maisParadigmas da Programação PPROG GENÉRICOS. (Livro Big Java, Late Objects Capítulo 18) Nelson Freire (ISEP DEI-PPROG 2014/15) 1/23
PPROG Paradigmas da Programação GENÉRICOS (Livro Big Java, Late Objects Capítulo 18) Nelson Freire (ISEP DEI-PPROG 2014/15) 1/23 Genéricos Sumário Noção de Genérico Interesse dos Genéricos Tipos Parametrizados
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 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 maisJava 2 Standard Edition Classes internas
Java 2 Standard Edition Classes internas Helder da Rocha www.argonavis.com.br 1 Classes internas Classes podem ser membros de classes, de objetos ou locais a métodos. Podem até serem criadas sem nome,
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. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package
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 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 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 maisGENÉRICOS EM JAVA. Java Generics
GENÉRICOS EM JAVA Java Generics Ana Laura KOKETSU Faculdade Politécnica de Campinas Peter JANDL JR Faculdade de Jaguariúna Faculdade Politécnica de Campinas Resumo: Os tipos genéricos foi a mais sofisticada
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 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 maisIteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções
Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach
Leia maisInterfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente
Classes abstratas que possuem apenas métodos abstratos Na Interface: Métodos são implicitamente abstract e public Campos são implicitamente static e final Não possuem construtores assim como as classes
Leia maisProf. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos
Coleções a Tipos Genéricos em Java 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
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
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 maispackage especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); }
package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); protected static void alphaprotected(){ System.out.println("Alpha protected!"); static
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 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 maisProgramação Orientada a Objetos
Programação Orientada a Objetos Programação com Tipos Genéricos www.comp.ita.br/~pauloac/ces22/ Tipos Genéricos Sumário A necessidade dos Genéricos Métodos Genéricos Classes Genéricas Utilização de wildcards
Leia maisAtividade 08 - Utilizando Collections - List
Atividade 08 - Utilizando Collections - List A Figura 1 mostra a árvore da hierarquia de interfaces e classes da Java Collections Framework que são derivadas da interface Collection. O diagrama usa a notação
Leia maisUniversidade 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
Leia maisColeções. Prof. Marcelo Roberto Zorzan
Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas
Leia maisDesenvolvimento OO com Java Classes abstratas e interfaces
Desenvolvimento OO com Java Classes abstratas e interfaces Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
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 mais// quando o estado do Sujeito muda
Padrão Observer No padrão Observer temos dois objectos: um, designado Sujeito (Subject) que possui uma dada informação que pode variar ao longo da execução do programa, e outro, designado Observador (Observer)
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype
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 mais