Programação Orientada a Objetos em
|
|
|
- Flávio Garrau Gentil
- 10 Há anos
- Visualizações:
Transcrição
1 Programação Orientada a Objetos em Flávio Miguel Varejão UFES
2 Utilidades Pacotes com várias classes amplamente utilizadas Exemplos Vector, ArrayList, Calendar, Currency, Random, Formatter, Scanner, Comparator, Iterator, Enumeration, Properties, StringTokenizer Utilidades 2
3 Coleções Uma coleção representa um grupo de objetos (chamados elementos) em um único objeto Também conhecidos como containers Infraestrutura de coleções incluem Interfaces Permitem a manipulação de diferentes coleções independentemente dos detalhes de representação Implementações Implementações de estruturas de dados amplamente utilizadas Algoritmos Utilidades Métodos úteis Departamento para várias de Informática coleções, como sort e search 3
4 Coleções Algumas Vantagens Redução no esforço de programação Programador pode se concentrar na funcionalidade desejada em vez de se preocupar com a implementação de estruturas de dados Melhoria do desempenho e qualidade Implementação das coleções têm alto desempenho e qualidade Aumenta interoperabilidade de programas Diferentes implementações de coleções podem ser usadas em um mesmo trecho Utilidades de código Departamento sem necessidade de Informática de código de adaptação ou conversão 4
5 Coleções Algumas das interfaces que fazem parte da infraestrutura de coleções Collection Grupo de objetos com ordem não especificada Duplicação permitida List Grupo de objetos ordenados Pode haver duplicação Set Grupo de objetos não ordenados Utilidades Sem duplicação 5
6 Coleções Algumas das interfaces que fazem parte da infraestrutura de coleções Map Grupo de pares (chave, valor) de objetos Mapeamentos podem ser heterogêneos Tanto chave quanto valor podem ser de tipo definido arbitrariamente Sem duplicação de chave Uma chave só pode ter um valor Mesmo valor pode ser associado a várias chaves Utilidades 6
7 Coleções Collection Map List Set HashMap TreeMap ArrayList LinkedList HashSet TreeSet Utilidades 7
8 Listas public class Listas { public static void main(string[] args) { ArrayList pares = new ArrayList(); LinkedList impares = new LinkedList(); for(int i = 0; i < 10; i = i + 2) pares.add(new Integer(i)); pares.add(new String("pares")); for(int i = 1; i < 10; i = i + 2) impares.add(new Integer(i)); impares.add(new Float(3.14)); for(int i = 0; i < pares.size(); i++) { System.out.println(pares.get(i)); Utilidades 8
9 Listas for(int i = 0; i < impares.size(); i++) { System.out.println(impares.get(i)); Integer j = (Integer) pares.get(0); //! Integer j = (Integer) pares.get(5); Integer k = (Integer) impares.get(0); //! Integer k = (Integer) impares.get(5); Utilidades 9
10 Listas class ListaInteiros { private ArrayList v = new ArrayList(); public void add(integer i) { v.add(i); public Integer get(int ind) { return (Integer)v.get(ind); public int size() { return v.size(); public static void main(string[] args) { ListaInteiros inteiros = new ListaInteiros (); for(int i = 0; i < 3; i++) inteiros.add(new Integer(i)); for(int i = 0; i < inteiros.size(); i++) System.out.println(inteiros.get(i)); Utilidades 10
11 Iteradores Iteração é o processo pelo qual uma coleção é percorrida e todos os seus elementos são acessados Iteração sobre conjuntos é não determinística Iteração sobre listas pode ser na sequência ou na sequência invertida Utilidades 11
12 Iteradores // Iterador.java import java.util.*; public class Iterador { static void imprimetodos(iterator e) { while(e.hasnext()) System.out.println(e.next()); public static void main(string[] args) { List inteiros = new ArrayList(); for(int i = 0; i < 7; i++) inteiros.add(new Integer(i)); Iterator iterador = inteiros.iterator(); imprimetodos(iterador); ///:~ Utilidades 12
13 Novo for no J2SE 5.0 Uso de iteradores se tornou amplo e disseminado Fazer iteração sobre uma coleção é pouco redigível Problema se agravaria com a inclusão de generics Solução foi criar uma nova alternativa de comando for Utilidades 13
14 Novo for no J2SE 5.0 ArrayList lista = new ArrayList(); Lista.add(new Integer(1)); Lista.add(new Integer(2)); Lista.add(new Integer(3)); for (Iterator i = lista.iterator(); i.hasnext();) { Integer value =(Integer)i.next(); for (Object i: lista) { Integer value = (Integer) i; Utilidades 14
15 Novo for no J2SE 5.0 int soma(int[] a) { int resultado = 0; for (int i : a){ resultado += i; return resultado; Utilidades 15
16 Conjuntos import java.util.*; class Colecao { public static Collection preenche(collection c) { for(int i = 0; i < 10; i++) c.add(integer.tostring(i)); return c; public static void imprime(collection c) { for(iterator x = c.iterator(); x.hasnext();) System.out.print(x.next() + " "); System.out.println(); Utilidades 16
17 Conjuntos public class Conjuntos { public static void testa(set a) { Colecao.preenche(a); Colecao.preenche(a); Colecao.preenche(a); Colecao.imprime(a); // Nao ha' duplicidade a.addall(a); a.add("um"); a.add("um"); a.add("um"); Colecao.imprime(a); System.out.println("a contém \"um\": " + a.contains("um")); public static void main(string[] args) { testa(new HashSet()); testa(new TreeSet()); Utilidades 17
18 Mapeamentos import java.util.*; public class Mapas { public static void main(string[] args) { Map conta_pal_mapa = new HashMap(); ArquivoTexto leitor = new Arquivotexto(args[0]); Iterator palavras = new IteradorPalavras(leitor); while ( palavras.hasnext() ) { String pal = (String) palavras.next(); String pal_min = pal.tolowercase(); // esta é a chave Integer freq = (Integer) cont_pal_mapa.get(pal_min); Utilidades 18
19 Mapeamentos if (freq == null) { freq = new Integer(1); else { int valor = freq.intvalue(); freq = new Integer(valor + 1); cont_pal_mapa.put(pal_min, freq); System.out.println(conta_pal_mapa); Utilidades 19
20 Propriedades É um mapeamento no qual chave e valor são Strings Muito usada com aplicações baseadas em XML Uso da classe Properties com um arquivo de configurações permite manter a aplicação sem a necessidade de recompilar o código fonte a cada mudança nas configurações Arquivos com extensão.properties Uso de método load() 20
21 Arquivo de Configuração #Configurações do arquivo mail.properties mail.pop3.host=pop.dot.com mail.debug=false mail.user=to_user mail.smtp.host=smtp.dot.com mail.store.protocol=pop3 Utilidades 21
22 Leitura do Arquivo File file = new File("mail.properties"); Properties props = new Properties(); FileInputStream fis = null; try { fis = new FileOutputStream(file); //lê os dados que estão no arquivo props.load(fis); fis.close(0; catch (IOException ex) { System.out.println(ex.getMessage()); ex.printstacktrace(); Utilidades 22
23 Manipulando Propriedades String user = props.getproperty("mail.user"); String from = props.getproperty("mail.from"); String smtp = props.getproperty("mail.smtp.host"); String pop3 = props.getproperty("mail.pop3.host"); String protocol = props.getproperty("mail.store.protocol"); String debug = props.getproperty("mail.debug"); String user = "guj"; props.setproperty("mail.user", user); Utilidades 23
24 Atualizando Arquivo File file = new File("mail.properties"); FileInputStream fos = null; try { fos = new FileOutputStream(file); //grava os dados no arquivo props.store(fos, "Configurações do arquivo mail.properties"); fos.close(); catch (IOException ex) { System.out.println(ex.getMessage()); ex.printstacktrace(); Utilidades 24
25 Propriedades do Sistema import java.util.*; public class TestaPropriedades { public static void main(string[] args) { Properties props = System.getProperties(); Enumeration nomes_prop = props.propertynames(); while (nomes_prop.hasmoreelements() ) { String nome_propriedade = (String) nomes_prop.nextelement(); String propriedade = props.getproperty(nome_propriedade); System.out.println( propriedade + nome_propriedade + é + propriedade + ); Utilidades 25
26 Enumerações no J2SE 5.0 Uso de constantes para a representação de tipos enumerados public static final int INVERNO = 0; public static final int PRIMAVERA = 1; public static final int VERAO = 2; public static final int OUTONO = 3; Problemas Não é seguro: é possível passar qualquer valor inteiro quando uma estação é necessária Os valores não são informativos: São impressos números, o que não diz nada a respeito do que representam ou do tipo que pertencem Utilidades 26
27 Enumerações no J2SE 5.0 Tipos enumerados foram incorporados a linguagem no J2SE Não pertencem a pacote util enum ESTACAO {INVERNO, PRIMAVERA, VERAO, OUTONO A declaração enum define uma nova classe É possível adicionar métodos e campos a um tipo enumerado e implementar interfaces Tipos enumerados possuem implementações dos métodos da classe Object e podem 27 ser Utilidades
28 Enumerações no J2SE 5.0 import java.util.*; public class Carteado { public enum Cartas { DOIS, TRÊS, QUATRO, CINCO, SEIS, SETE, OITO, NOVE, DEZ, VALETE, RAINHA, REI, AS public enum Naipes { PAUS, OUROS, COPAS, ESPADAS private final Cartas carta; private final Naipes naipe; private Carteado(Cartas carta, Naipes naipe) { this.carta = carta; this.naipe = naipe; public Cartas carta() { return carta; public Naipes naipe() { return naipe; Utilidades 28
29 Enumerações no J2SE 5.0 public String tostring() { return carta + " of " + naipe; private static final List baralho = new ArrayList(); static { for (Naipes naipe : Naipes.values()) for (Cartas carta : Cartas.values()) baralho.add(new Carteado(carta, naipe)); public static ArrayList novobaralho() { return new ArrayList (novobaralho); Utilidades 29
30 Enumerações no J2SE 5.0 public enum Planeta { MERCURIO (3.303e+23, e6), VENUS (4.869e+24, e6), TERRA (5.976e+24, e6), MARTE (6.421e+23, e6), JUPITER (1.9e+27, e7), SATURNO (5.688e+26, e7), URANO (8.686e+25, e7), NETUNO (1.024e+26, e7), PLUTAO (1.27e+22, 1.137e6); private final double massa; private final double raio; Planeta(double massa, double raio) { this.massa = massa; this.raio = raio; Utilidades 30
31 Enumerações no J2SE 5.0 public static final double G = E-11; double gravidadesuperficie() { return G * massa / (raio * raio); double pesosuperficie(double outramassa) { return outramassa * gravidadesuperficie(); Utilidades 31
32 Enumerações no J2SE 5.0 public class UsaEnum { public static void main(string[] args) { double pesoterra = double.parsedouble(args[0]); double massa = pesoterra/terra.gravidadesuperficie(); for (Planeta p: Planeta.values()){ System.out.printf("Seu peso em %s eh %f%n", p, p.pesosuperficie(massa)); Utilidades 32
33 Java Generics no J2SE 5.0 Polimorfismo paramétrico Código genérico que pode ser aplicado a diferentes tipos de dados Listas Tipos parametrizados Tipo é um parâmetro para o código Permite eliminar a necessidade de downcast na maior parte das situações Evita a inclusão de elementos de tipos inadequados na compilação Generics 33
34 Java Generics Sem tipos parametrizados List myintlist = new LinkedList(); myintlist.add(new Integer(0)); Integer x = (Integer) myintlist.iterator().next(); Com tipos parametrizados List<Integer> myintlist = new LinkedList<Integer>(); myintlist.add(new Integer(0)); Integer x = myintlist.iterator().next(); Generics 34
35 Definição de Generics public interface List<E> { void add(e x); Iterator<E> iterator(); public interface Iterator<E> { E next(); boolean hasnext(); Generics 35
36 Generics e Subtipos Tipo do elemento não é levado em conta na hierarquia de classes List<String> ls = new ArrayList<String>(); List<Object> lo = ls; // nao e permitido... lo.add(new Object()); String s = ls.get(0); Generics 36
37 Generics e Código Polimórfico Antes de J2SE 5.0 void printcollection(collection c) { Iterator i = c.iterator(); for (k = 0; k < c.size(); k++) { System.out.println(i.next()); Generics 37
38 Generics e Código Polimórfico Generics restringiria Deixa de ser polimórfico Só coleções de objetos void printcollection(collection<object> c) { for (Object e: c) { System.out.println(e); Generics 38
39 Generics e Código Polimórfico Generics com wildcards (coringas) Restaura polimorfismo void printcollection(collection<?> c) { for (Object e: c) { System.out.println(e); Código com wildcards não permitem a adição de elementos Collection<?> c = new ArrayList<String>(); c.add(new Object()); // erro em tempo de compilação Generics 39
40 Wildcards Wildcards podem ser muito amplos public abstract class Forma { public abstract void desenhar(); public class Circulo extends Forma { private int x, y, raio; public void desenhar() { System.out.println( Circulo ); public class Retangulo extends Forma { private int x, y, largura, altura; public void desenhar() { System.out.println( Forma ); Generics 40
41 Wildcards Limitados Sem wildcards não funciona como desejado public void desenhatudo(list<forma> formas) { for (Forma f: formas) { f.desenhar(); Com wildcards permite o uso com listas de qualquer tipo de elemento public void desenhatudo(list<?> formas) { for (Object f: formas) { ((Forma) f).desenhar(); Generics 41
42 Wildcards Limitados Só funciona com lista de forma ou suas subclasses public void desenhatudo(list<? extends Forma> formas){... Não é possível adicionar elementos public void addretangulo(list<? extends Forma> formas) { formas.add(0, new Retangulo()); // erro em // tempo de compilação poderia ser circulo Generics 42
43 Métodos Genéricos Não é possível adicionar elementos static void fromarraytocollection(object[] a, Collection<?> c) { for (Object o : a) { c.add(o); // erro de compilação Coleção de objetos pode ser usada, mas perde verificação em tempo de compilação static void fromarraytocollection(object[] a, Collection<Object> c) { for (Object o : a) { c.add(o); Generics 43
44 Métodos Genéricos Usar parâmetros tipo em métodos genéricos static <T> void fromarraytocollection(t[] a, for (T o : a) { c.add(o); // correto! Collection<T> c) { Generics 44
45 Métodos Genéricos Object[] oa = new Object[100]; Collection<Object> co = new ArrayList<Object>(); fromarraytocollection(oa, co);// T como Object String[] sa = new String[100]; Collection<String> cs = new ArrayList<String>(); fromarraytocollection(sa, cs);// T como String fromarraytocollection(sa, co);// T como Object Integer[] ia = new Integer[100]; Float[] fa = new Float[100]; Number[] na = new Number[100]; Collection<Number> cn = new ArrayList<Number>(); fromarraytocollection(ia, cn);// T como Number fromarraytocollection(fa, cn);// T como Number fromarraytocollection(na, cn);// T como Number fromarraytocollection(na, co);// T como Object fromarraytocollection(na, cs);// erro de compilação Generics 45
46 Métodos Genéricos e Wildcards Wildcards podem ser usados em métodos genéricos class Collections { public static <T> void copy(list<t> dest, List<? extends T> src){... Generics 46
47 Classes Genéricas public class Lista <E> { private class No <E> { E info; No<E> prox; No (E o) { info = o; prox = null; No <E> prim, marc; int tam; Generics 47
48 Classes Genéricas public Lista() { prim = marc = null; tam = 0; public void inicio() { marc = prim; public E proximo () { No<E> q = marc; if (marc!= null) marc = marc.prox; return q.info; Generics 48
49 Classes Genéricas public void inclui (E o) { No <E> p = prim, q = prim, n = new No<E>(o); while (p!= null) { q = p; p = p.prox; if (q == null) { prim = n; else { q.prox = n; tam++; Generics 49
50 Descarte de Tipo Implementação de código genérico T vira limite superior genérico Em geral vira Object Info adicional para compilação de código usuário Uso de código genérico Introdução de casts apropriados e métodos ponte Generics 50
51 Descarte de Tipo Implementação antes da compilação public class Pair<X,Y> { private X first; private Y second; public Pair(X x, Y y) { first = x; second = y; public X getfirst() { return first; public Y getsecond() { return second; public void setfirst(x x) { first = x; public void setsecond(y y) { second = y; Generics 51
52 Descarte de Tipo Implementação após a compilação public class Pair { private Object first; private Object second; public Pair (Object x, Object y) { first = x; second = y; public Object getfirst() { return first; public Object getsecond() { return second; public void setfirst (Object x) { first = x; public void setsecond (Object y) { second = Generics y; 52
53 Descarte de Tipo Uso antes da compilação public class Test { public static void main(string[] args) { Pair<String,Long> pair = new Pair<String,Long>("limit", 10000L); String s = pair.getfirst(); Long l = pair.getsecond(); Object o = pair.getsecond(); Generics 53
54 Descarte de Tipo Uso após a compilação public class Test { public static void main(string[] args) { Pair pair = new Pair("limit", 10000L); String s = (String) pair.getfirst(); Long l = (Long) pair.getseond(); Object o = pair.getsecond(); Generics 54
55 Descarte de Tipo Antes da compilação interface Comparable <A> { public int compareto( A that); final class NumericValue implements Comparable <NumericValue> { private byte value; public NumericValue (byte value) { this.value = value; public byte getvalue() { return value; public int compareto(numericvalue that) { return this.value - that.value; Generics 55
56 Descarte de Tipo Após compilação interface Comparable { public int compareto (Object that); final class NumericValue implements Comparable { private byte value; public NumericValue (byte value) { this.value = value; public byte getvalue() { return value; public int compareto( NumericValue that) { return this.value - that.value; public int compareto(object that) { //método ponte Generics return this.compareto((numericvalue)that); 56
57 Vetores e Generics Não é possível criar vetores genéricos public class Grupo <T> { private T [] p; private int tam = 0; private int marc = -1; Grupo () { p = new T [5]; Grupo (int n) {... Generics p = new T [n]; // erro de compilação // erro de compilação 57
58 Vetores e Generics Poderia provocar violação no sistema de tipos Object[] objarr = new String[10]; // permitido objarr[0] = new String(); objarr[1] = new Long(0L); // ArrayStoreException Pair<Integer,Integer>[] intpairarr = new Pair<Integer,Integer>[10]; // ilegal Object[] objarr = intpairarr; Generics objarr[0] = new Departamento Pair<String,String>("",""); de Informática // aceitaria 58
59 Generics e Código Legado Código legado package br.com.morteindolor.coisas; public interface Parte {... public class Inventario { public static void addinstrumento(string nome, Collection partes) {... public static Instrumento getinstrumento( String nome) {... public interface Instrumento { Collection getpartes(); //Retorna coleção de //partes Generics 59
60 Generics e Código Legado Código genérico usando código legado package br.com.minhaempresa.inventario; import br.com.morteindolor.coisas.*; public class Lamina implements Parte {... public class Suporte implements Parte {... public class Main { public static void main(string[] args) { Collection<Parte> c = new ArrayList<Parte>(); c.add(new Suporte()) ; c.add(new Lamina()); Inventario.addInstrumento( Guilhotina, c); Collection<Parte> k = Inventario.getInstrumento( Guilhotina ).getpartes(); Generics 60
61 Generics e Código Legado Gera alerta de operação não verificada na compilação Pode provocar erro em tempo de execução public String brecha(integer x) { List<String> ys = new LinkedList<String>(); List xs = ys; xs.add(x); // alerta não verificado return ys.iterator().next(); //ClassCastException Generics 61
62 Generics e Código Legado Código genérico package br.com.morteindolor.coisas; public interface Parte {... public class Inventario { public static void addinstrumento(string nome, Collection<Parte> partes) {... public static Instrumento getinstrumento( String nome) {... public interface Instrumento { Collection<Parte> getparts(); Generics 62
63 Generics e Código Legado Código legado usando código genérico package com.minhaempresa.inventario; import br.com.morteindolor.coisas.*; public class Lamina implements Parte {... public class Guilhotina implements Parte { public class Main { public static void main(string[] args) { Collection c = new ArrayList(); c.add(new Guilhotina()) ; c.add(new Lamina()); Inventario.addInstrumento( Guilhotina, c); // 1 Collection k = Inventario.getInstrumento( Guilhotina ).getpartes(); Generics 63 Alerta de operação Universidade não Federal verificada do em //1
64 Detalhes de Generics List <String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayList<Integer>(); System.out.println(l1.getClass() == l2.getclass()); Collection cs = new ArrayList<String>(); if (cs instanceof Collection<String>) {... // ilegal Collection<String> cstr = (Collection<String>) cs; // alerta de não verificado <T> T badcast(t t, Object o) { return (T) o; // alerta de não verificado Generics 64
Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade
Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do
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)
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
Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4. [email protected] José Valente de Oliveira 16-1
Streams III Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 [email protected] José Valente de Oliveira 16-1 Previously: Serializing a collection public
TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes. Conteúdo: Tipos Genéricos
Programação de Computadores II TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes Conteúdo: Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof.
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 [email protected] Conteúdo: Coleções Material elaborado com contribuição do Professor Luiz André Coleções Uma
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
BSI UFRPE Prof. Gustavo Callou [email protected]
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
Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
Rafael Santos. Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos. Rafael Santos - www.lac.inpe.br/ rafael.
Coleções e Aplicações Rafael Santos Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos Rafael Santos - www.lac.inpe.br/ rafael.santos 1 / 54 Tópicos 1 Sobre... 2 Revisão de Java 3
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 Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam
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 Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,
Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.
Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Java Coleções. Rodrigo C. de Azevedo
Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer
Exercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
5. Generics, Iterators e Comparable em Java. Tipos de Dados Abstractos Generics em Java
5. Generics, Iterators e Comparable em Java Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 5. Generics, Iterators e Comparable em Java Estruturas de Dados 1 / 12 Tipos de Dados Abstractos
Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.
Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso
Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.
Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados
Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp
Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define
Encapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.
Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java
Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.
Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística. package ProjetoIntegrador; import java.io.bufferedreader; import
5 Caso de estudo O cartão fidelidade
5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Módulo 06 Desenho de Classes
Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.
Interface Collection. Coleções em Java Collections Genéricos em Java - Generics. Interface Collection
1 Interface Collection 2 Coleções em Java Collections Genéricos em Java - Generics O trecho seguinte mostra a interface Collection. public interface Collection extends Iterable { // operações básicas
Guia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education
Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 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 ou, com
Curso Adonai QUESTÕES Disciplina Linguagem JAVA
1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String
Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares
Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e
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,
Programação Orientada a Objetos. Encapsulamento
Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências
Java. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Introdução à Programação. Interface, Polimorfismo e Dynamic Binding
Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)
ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.
PROGRAMAÇÃ ÇÃO COM OBJECTOS TUDO É UM OBJECTO Programação com Objectos ÍNDICE Introdução aos objectos Polimorfismo TUDO É UM OBJECTO Interface e classes internas Instruções de controlo Guardar os objectos
Curso Java Starter. www.t2ti.com 1
1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do
Programação Orientada a Objetos em java. Polimorfismo
Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
UNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
insfcanceof new public switch transient while byte continue extends for int null
Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public
Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }
Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver
Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Unidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
A Linguagem Java. Alberto Costa Neto DComp - UFS
A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão
public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.
import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
Construção de novas Classes em Java. Classes Atributos Métodos Herança...
Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(
8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.
Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
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
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
Técnicas de Programação II
Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.
Programação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro
Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo:Tipos Genéricos Baseado em http://docs.oracle.com/javase/tutorial/java/ generics/) Introdução É uma
2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Programação Orientada a Objetos em Java. Herança
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados
Programação II Java Streams. Christopher Burrows
Programação II Java Streams Christopher Burrows Java Streams - Introdução As aplicações informáticas consistem em trocas de dados entre duas ou mais fontes/destinos. As Streams servem para representar
Templates e Pilhas. 1. Introdução
Templates e Pilhas 1. Introdução Templates ou Generics é considerado uma forma de polimorfismo [1]. É uma forma de programar onde o tipo do dado não é considerado. Programa-se para um tipo de dado indefinido.
Reuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Sintaxe Básica de Java Parte 1
Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa
Prototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
BC0501 Linguagens de Programação
BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados
Java 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
Capítulo 4. Packages e interfaces
Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias
Programação Orientada por Objetos
PPROG Paradigmas da Programação Programação Orientada por Objetos Relações entre Dependência Agregação Composição Associação (Livro Big Java, Late Objects Capítulo 12) Nelson Freire (ISEP DEI-PPROG 2014/15)
Programação online em Java
Universidade Federal do ABC Disciplina: Processamento da Informação Assunto: Programação online em Java Programação online em Java Conteúdo Conteúdo...1 Introdução... 1 1.1.Programas necessários... 1 1.2.Visão
BC0505 Processamento da Informação
BC0505 Processamento da Informação Assunto: Modularização de código e passagem de parâmetros Aula Prática: 4 Versão: 0.2 Introdução Modularização No Java, como em outras linguagens de Programação Orientadas
Vetores. Professor Dr Francisco Isidro Massettto [email protected]
Professor Dr Francisco Isidro Massettto [email protected] Nem sempre os tipos básicos: (inteiro, real, caracter e lógico) são suficientes para implementar um algoritmo. Por exemplo: Considere
POO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Programação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
Módulo 07 Características Avançadas de Classes
Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado
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
AULA DE JAVA 1 - CONCEITOS BÁSICOS
AULA DE JAVA 1 - CONCEITOS BÁSICOS DAS 5316 Integração de Sistemas Corporativos Roque Oliveira Bezerra, M. Eng [email protected] Prof. Ricardo J. Rabelo ROTEIRO Introdução Fases de um programa Java Strings
Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação
Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de
3 Classes e instanciação de objectos (em Java)
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
Programação por Objectos. Java
Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Interfaces. Interfaces: Exemplo. ! São um mecanismo poderoso para ter bons desenhos pois permitem separar contratos das implementações
Interfaces! São um mecanismo poderoso para ter bons desenhos pois permitem separar contratos das implementações! Definem, tais como as classes, tipos mas não têm implementação! Podem declarar o constantes
Paradigmas de Programação
Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos
Algoritmos e Programação II. Sobrecarga
Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque
Roteiro 1: Dados, variáveis, operadores e precedência
1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta
JSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)
Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois
ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado
Padrão Básico de Projeto: Interfaces e Polimorfismo
Padrão Básico de Projeto: Interfaces e Polimorfismo Herança de implementação versus herança de interface Há uma diferença grande entre uma classe e seu tipo A classe define ambos um tipo e uma implementação
Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010
Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em
Orientação a Objetos e a Linguagem Java
Orientação a Objetos e a Linguagem Java Afrânio Assis [email protected] Novembro/2006 1 Reutilizição com Herança e Composição Novembro/2006 2 Introdução Separar as partes que podem mudar das partes que
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
