Herança vs Composição

Tamanho: px
Começar a partir da página:

Download "Herança vs Composição"

Transcrição

1 Herança vs Composição Herança: class B extends A B is a A Composição: class B { A a;... B uses a A ou B has a A A is a component of B 94 Herança vs Composição Apesar da herança ser uma forma poderosa de conseguir reutilizar código, nem sempre é a forma mais apropriada para o conseguir O uso de herança inapropriadamente conduz a programas frágeis relativamente a mudanças! A herança viola o princípio da encapsulação, o que pode ser perigoso! Ao herdar a implementação de uma classe, a subclasse fica dependente de detalhes de implementação dessa classe para funcionar apropriadamente e portanto sujeita a deixar de funcionar se a super-classe for alterada 95

2 Herança vs Composição A utilização da herança deve se reduzir essencialmente a! classes na mesma package e portanto sob o controlo dos mesmos programadores! a classes especificamente desenhadas para serem estendidas, nomeadamente com documentação preparada para esse fim, como acontece com as classes abstractas e classes de frameworks OO Não usar herança se as condições seguintes não se aplicarem todas:! A subclasse expressa "is a special kind of" e não "is a role played by a.! Uma instância da subclasse nunca necessita de se tornar um objecto de uma outra classe.! A subclasse apenas estende as responsabilidades das suas superclasses. 96 Herança vs Composição Exemplo Pretende-se uma versão de um HashSet que além de tudo o que tem o HashSet disponibilize um método que informa quantas tentativas de inserção de elementos no conjunto foram realizadas. Qual o mecanismo mais apropriado? 97

3 Solução com Herança public class InstrumentedHashSet<T> extends HashSet<T> { // The number of attempted element insertions private int addcount = 0; public InstrumentedHashSet() { public InstrumentedHashSet(Collection<T> c) { super(c); public InstrumentedHashSet(int initcap, float loadfactor) { super(initcap, loadfactor); public boolean add(t o) { addcount++; return super.add(o); public boolean addall(collection<? extends T> c) { addcount += c.size(); return super.addall(c); public int getaddcount() { return addcount; 98 Solução com Herança O uso da herança neste caso é inapropriado. O que acontece por exemplo se executarmos InstrumentedHashSet<String> s = new InstrumentedHashSet<String> (); s.addall(arrays.aslist(snap","crackle","pop"); O método addall na classe HashSet invoca add mas a classe HashSet não documenta este detalhe de implementação. Uma opção bastante razoável dado que é uma opção de implementação que pode haver interesse em vir a modificar no futuro O que acontece se eliminássemos a redefinição do addall? O que acontece se numa nova release a classe HashSet suportar a inserção de elementos no conjunto através de novos métodos? 99

4 Solução com Composição Conhecida como Wrapper Class! public class InstrumentedSet<E> implements Set<E> { private final Set<E> s; private int addcount = 0; public InstrumentedSet(Set<E> s) { this.s = s; public boolean add(e o) { addcount++; return s.add(o); public boolean addall(collection<? extends E> c) { addcount += c.size(); return s.addall(c); public int getaddcount() {return addcount; Solução Correcta: Uso de Composição // Forwarding methods Além public da correcção void clear() que { s.clear(); outras vantagens tem esta solução? public boolean contains(object o) { return s.contains(o); public boolean isempty() { return s.isempty(); public int size() { return s.size(); public Iterator<E> iterator() { return s.iterator(); public boolean remove(object o) { return s.remove(o); public boolean containsall(collection<?> c){ return s.containsall(c); public boolean removeall(collection<?> c){ return s.removeall(c); public boolean retainall(collection<?> c){ return s.retainall(c); public Object[] toarray() { return s.toarray(); public <T> T[] toarray(t[] a) { return s.toarray(a); public boolean equals(object o) { return s.equals(o); public int hashcode() { return s.hashcode(); public String tostring() { return s.tostring(); 100 Desenvolvimento C. Objectos 11/12 Herança vs Composição Em geral deve-se preferir a composição à herança Classes desenhadas para ser estendidas devem ter documentação apropriada, nomeadamente devem documentar de que forma usam os métodos que podem ser redefinidos public boolean remove(object o) Exemplo AbstractCollection Removes a single instance of the specified element from this collection, if it is present (optional operation). ( ) This implementation iterates over the collection looking for the specified element. If it finds the element, it removes the element from the collection using the iterator s remove method. Note that this implementation throws an UnsupportedOperationException if the iterator returned by this collection s iterator method does not implement the remove method. Se classe não foi desenhada e documentada para ser estendida de forma segura, proibir que sejam definidas sub-classes 101

5 Conhecer e utilizar bibliotecas e frameworks standard Existem muitas vantagens na utilização de bibliotecas e frameworks standard o tirar partido do conhecimento dos peritos que as escreveram e a experiência daqueles que já a usaram exemplo: gerar num aleatório entre 0 e n o não perder tempo na escrita de soluções adhoc só marginalmente relacionadas com a aplicação em desenvolvimento o desempenho do código disponível tipicamente melhora com o tempo, sem esforço da nossa parte No caso do Java, é recomendável o conhecimento do java.util e java.lang Nomeadamente, a framework das Collections é um dos elementos fundamentais na base de conhecimento de qualquer programador 102 Collections Framework É uma arquitectura unificada para representar e manipular colecções As principais vantagens da utilização desta framework são: Reduz esforço de programação fornecendo estruturas de dados e algoritmos que desta forma não necessitam de ser programados. Melhora o desempenho fornecendo implementações eficientes de estruturas de dados e algoritmos úteis. Uma vez que as várias implementações de cada interface podem ser trocadas umas pelas outras, os programas podem facilmente ser ajustados modificando as implementações usadas. Fornece a interoperabilidade entre APIs não relacionados estabelecendo uma linguagem comum para passar e receber colecções. Reduz o esforço requerido para aprender APIs eliminando a necessidade de aprender múltiplas APIs. Promove a reutilização de software fornecendo um interface standard para colecções e algoritmos para manipulá-las. 103

6 Collections Framework Interfaces - Representa diferentes tipos de colecções tais como conjuntos, listas e maps. Estes interfaces formam a base deste framework. Collection, Set, List, Queue, Deque SortedSet, NavigableSet, BlockingQueue, BlockingDeque Map, SortedMap, NavigableMap, ConcurrentMap, ConcurrentNavigableMap 104 Collections Framework Implementações Genéricas Outras Implementações Set : EnumSet Queue: PriorityQueue Map: EnumMap, WeakHashMap 105

7 Collections Framework Implementações Abstractas Implementações parciais de interfaces da framework que facilitam o desenvolvimento de implementações específicas. o AbstractCollection a Collection that is neither a Set nor a List. At a minimum, you must provide the iterator and the size methods. o AbstractSet a Set; use is identical to AbstractCollection. o AbstractList a List backed up by a random-access data store, such as an array. At a minimum, you must provide the positional access methods (get,set, remove, and add) and the size method. The abstract class takes care of listiterator (and iterator). o AbstractSequentialList a List backed up by a sequential-access data store, such as a linked list. At a minimum, you must provide the listiterator and size methods. The abstract class takes care of the positional access methods. (This is the opposite of AbstractList.) o AbstractQueue at a minimum, you must provide the offer, peek, poll, and size methods and an iterator supporting remove. o AbstractMap a Map. At a minimum you must provide the entryset view. This is typically implemented with the AbstractSet class. If the Map is modifiable, you must also provide the put method. 106 Collections Framework Porquê programar outras implementações dos interfaces das Collections?! Persistência! Específico da Aplicação: Um Map não modificável contendo valores lidos de sensores, sendo as chaves as localizações (em resposta a um get)! Melhor Desempenho em utilização específica: Uma List contendo muitos elementos repetidos (ocorrem por exemplo no processamento de texto).! Funcionalidade melhorada.! Conveniência: Se são precisas com frequência instâncias de List apenas com Integers consecutivos. 107

8 Collections Framework Algorithms Métodos de classe que executam funções úteis sobre as colecções. Exemplos: Sorting static T extends Comparable<? super T>> Collections.sort(List<T>) Shuffling static Collections.shuffle(List<?>) Routine Data Manipulation Collections.reverse reverses the order of the elements in a List. Collections.fill overwrites every element in a List with the specified value. Collections.copy takes two arguments, a destination List and a source List, and copies the elements of the source into the destination, overwriting its contents. The destination List must be at least as long as the source. If it is longer, the remaining elements in the destination List are unaffected. Collections.swap swaps the elements at the specified positions in a List. Collections.addAll adds all the specified elements to a Collection. The elements to be added may be specified individually or as an array. 108 Collections Framework Searching <T> int Collections.binarySearch(List<? extends Comparable<? super T>> col, T key) Finding Extreme Values... Collections.min(Collection<? extends T>)...Collections.max(Collection<? extends T>) Composition Collections.frequency (Collection<?>,Object) counts the number of times the specified element occurs in the specified collection Collections.disjoint (Collection<?>,Collection<?>) determines whether two Collections are disjoint; that is, whether they contain no elements in common 109

Java Util Collections - Interfaces Interfaces definidas

Java Util Collections - Interfaces Interfaces definidas Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação

Leia mais

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira API e Coleções Java Sérgio Luiz Ruivace Cerqueira [email protected] Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de

Leia mais

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho Coleções em Java Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Introdução O que é uma coleção? Um objeto que agrupa múltiplos elementos em uma única unidade

Leia mais

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Collections Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira ([email protected]) Coleções em Java As coleções agrupam vários

Leia mais

JAVA COLLECTIONS API: LISTAS

JAVA COLLECTIONS API: LISTAS COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA COLLECTIONS API: LISTAS FOZ DO IGUAÇU 2013 LISTA DE QUADROS QUADRO 1 EXEMPLO DE LIST,

Leia mais

Coleções POO. Prof. Marcio Delamaro

Coleções POO. Prof. Marcio Delamaro Coleções POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/54 Definição Interface Collection E - the type of elements in this collection The root interface in

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Iteradores. 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 mais

BSI UFRPE Prof. Gustavo Callou [email protected]

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou [email protected] Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

Leia mais

Coleções. Prof. Marcelo Roberto Zorzan

Coleçõ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 mais

COLECÇÕES DE OBJECTOS EM JAVA6

COLECÇÕES DE OBJECTOS EM JAVA6 COLECÇÕES DE OBJECTOS EM JAVA6 ESTUDO DO JAVA COLLECTIONS FRAMEWORK 5.0 PARTE I F. Mário Martins DI/Universidade do Minho 2007/2008 F. Mário Martins 2007/2008 Colecções de JAVA6 (Parte I) 1 COMPOSIÇÃO/AGREGAÇÃO

Leia mais

Lista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior

Lista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior Coleções Retirado do Tutorial Java class Lista { No inicio = null; Lista encadeada class No { void insereinicio(object obj) { No n = new No(obj, inicio); inicio = n; Object obj; No prox; No(Object obj,

Leia mais

TIPOS PARAMETRIZADOS CLASSES GENÉRICAS PARTE II

TIPOS 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 mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

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

Leia mais

Interfaces POO. Prof. Marcio Delamaro

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

Leia mais

Atividade 08 - Utilizando Collections - List

Atividade 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 mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)

Leia mais

Tabelas de Dispersão. Tabela de Dispersão

Tabelas de Dispersão. Tabela de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão aberta e dispersão fechada. Teste quadrático. Desempenho de tabelas de dispersão. Interface de tabela de dispersão.

Leia mais

Introdução. Coleção HashMap Classe Java. Interesse

Introdução. Coleção HashMap Classe Java. Interesse Coleção Classe Java Introdução Interesse Modelar correspondências unívocas (1 para 1) entre objetos, do tipo chave-valor. Associações entre: um elemento de um conjunto de chaves um elemento de uma coleção

Leia mais

ArrayList. null. null. null ... ArrayList<Ponto2D>

ArrayList. null. null. null ... ArrayList<Ponto2D> FICHA PRÁTICA 4 SÍNTESE TEÓRICA LABORATÓRIO DE COLECÇÕES I ARRAYLIST Em JAVA5, tal como em algumas outras linguagens de programação por objectos, certas estruturações de objectos (colecções) são parametrizadas,

Leia mais

9 Classes Abstractas e Interfaces

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

Leia mais

Lista Ligada. Nó de Lista Ligada

Lista Ligada. Nó de Lista Ligada Lista Ligada Estrutura com nós que armazenam elementos manter referências para elementos do início e fim da lista Operações Inserir: a seguir à posição corrente Remover: na posição corrente Pesquisar:

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

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

Leia mais

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: 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 mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

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

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

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(){

Leia mais

Collections Framework

Collections Framework Collections Framework 1 Arrays p Manipular array é bastante trabalhoso. p Dificuldades aparecem em diversos momentos: n não podemos redimensionar um array em Java; n é impossível buscar diretamente por

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

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

Leia mais

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio Algoritmos e Programação II Baseado no material do Prof. Julio Coleções Java disponibiliza classes que facilitam o agrupamento e processamento de objetos em conjuntos: Coleções (Java Collections Framework).

Leia mais

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) [email protected]

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introduçã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 mais

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Nome: LISTA DE EXERCÍCIO 1 Collections Framework 1. Criem um projeto que

Leia mais

Linguagem de Programação III

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

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

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

Leia mais

Aula 9 Herança. Prof. Jefersson Alex dos Santos

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

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

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

Leia mais

Capítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 21 Coleções Objetivos do Capítulo Analisar o conceito de coleção e sua relação com as estruturas de dados. Apresentar a arquitetura do framework de coleções do Java. Indicar as classes e interfaces

Leia mais

Palavras Reservadas da Linguagem Java

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

Leia mais

Análise e Projeto Orientados por Objetos

Aná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 mais

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU Aula 11 POO 1 Coleções e Arquivos Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem

Leia mais

Linguagem de Programação II Herança

Linguagem de Programação II Herança Linguagem de Programação II Herança Prof. Alessandro Borges 2 Tópicos Reutilização de classes Delegação Herança Definição Superclasse e Subclasse A palavra reservada extends Método construtor com herança

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade [email protected] Coleções, Propriedades, Resources e Strings (Parte 2) Coleções É comum usarmos um objeto que armazena vários outros

Leia mais

Paradigmas da Programação PPROG. Tipos de Dados. Enumerados Genéricos Coleções. Nelson Freire (ISEP DEI-PPROG 2012/13) 1/64

Paradigmas da Programação PPROG. Tipos de Dados. Enumerados Genéricos Coleções. Nelson Freire (ISEP DEI-PPROG 2012/13) 1/64 PPROG Paradigmas da Programação Tipos de Dados Enumerados Genéricos Coleções Nelson Freire (ISEP DEI-PPROG 2012/13) 1/64 PPROG Sumário Geral Tipos Enumerados Tipos Genéricos Tipos Coleção Nelson Freire

Leia mais

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 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 mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

Computação II Orientação a Objetos

Computaçã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 mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

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

Leia mais

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 PPROG Paradigmas da Programação Tipos Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 Sumário Interesse Definição Implementação Declaração Valor de um Tipo Enumerado Variável de Tipo Enumerado Métodos Automáticos

Leia mais

4 Conceito de Herança

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

Leia mais

Java API. Giuliana Silva Bezerra

Java API. Giuliana Silva Bezerra Java API Giuliana Silva Bezerra Leitura e escrita de arquivos Java.io.file Escrita de arquivos Java.io.PrintWriter 1. Criar instância de Java.io.PrintWriter PrintWriter saida = new PrintWriter( Diretorio

Leia mais

Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave

Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave Capítulo VIII Tipo Abstracto de Dados Dicionário Acesso por Chave Margarida Mamede, DI FCT/UNL AED, 2009/10, Capítulo VIII 1 Interface Dicionário (K,V) (1) package datastructures; public interface Dictionary

Leia mais

Algoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas

Algoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas Algoritmos e Estruturas de Dados Lição n.º 3 Coleções: sacos, pilhas e filas Coleções: sacos, pilhas e filas Especificação das coleções Classes iteráveis Sacos (em inglês bags) Implementação com arrays

Leia mais

Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo [email protected]

Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo [email protected] Conteúdo: Coleções Material elaborado com contribuição do Professor Luiz André Coleções Uma

Leia mais

Programação Orientada a Objetos. Collections - Java

Programação Orientada a Objetos. Collections - Java 1 Programação Orientada a Objetos Collections - Java Coleções Conceito Geral Uma coleção é uma estrutura de dados que permite armazenar vários objetos. Em Java, a coleção também é um objeto. As operações

Leia mais