Java na Prática. Célio Silva Aula 3



Documentos relacionados
Classe Abstrata e Interface

Java Standard Edition (JSE)

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

Linguagem de Programação III

4 Conceito de Herança

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Palavras Reservadas da Linguagem Java

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Desenvolvimento Web TCC Turma A-1

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Classes e Objetos. Sintaxe de classe em Java

Collections Framework

Notas de Aula 04: Herança e polimorfismo.

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

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

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

Interfaces POO. Prof. Marcio Delamaro

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

Conceitos de Programação Orientada a Objetos

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

Sistema Futebol - Java

Linguagem Java - Introdução

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

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Análise de Programação

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

Linguagem de Programação II Implementação

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

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

Linguagens de Programação Aula 12

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

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

Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010

POO29004 Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos

Estruturas de Condição, Iteração, Arrays e Enumareção

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Sobrecarga, Sobreposição e Polimorfismo

extendsé usado para indicar herança em JAVA

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Linguagem de Programação IV Introdução

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Programação de Computadores - I. Profª Beatriz Profº Israel

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Programação Orientada a Objetos

Aula 9 POO 1 Polimorfismo. Profa. Elaine Faria UFU

COMPORTAMENTOS - Observações

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação

POO29004 Programação Orientada a Objetos

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Notas de Aula 09: Tratamento de exceções

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Interfaces e Classes Abstratas

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

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

Programação Orientada a Objetos

Herança (parte 2) Redefinição de métodos AULA 11

Polimorfismo. O que é polimorfismo?

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

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Transcrição:

Java na Prática Célio Silva Aula 3

Java na Prática Collections List List são listas de coisa ordenadas/não ordenadas, com duplicações permitidas e com um índice Servem para encapsular código de tratamento de dados e alocação dinâmica Disponibiliza os métodos funcionais. add(object); addall(object); clear(); contains(); remove(object);... Especializações de List Exercício java.util.vector - ArrayList mais lento, possui métodos sincronizados java.util.arraylist - Rápida iteração e acesso aleatório java.util.linkedlist Controla ordem elementos adicionados java.util.priorityqueue Ordena os itens de acordo com prioridades Substituir array de agências por lista de agências Lista não genérica GFT Group 8 April 2010 Page 2/XX

Java na Prática Requisitos Requisito Projeto Desenvolver funções para Consultar, Ativar e Desativar Agências. Exercícios Implementar método consultaragencia(int codigoagencia); for(int i = 0; i < agencias.size(); i++){ Agencia aux = agencias.get(i); //algum código aqui } Utilizar método mostrarbeanagencia(agencia agencia); If (agencia == null) return; //evitar NullPointerException Utilizar For com índice numérico Implementar método reativaragencia(agencia agencia); Implementar método desativaragencia(agencia agencia); GFT Group 8 April 2010 Page 3/XX

Java na Prática Requisitos Requisito Projeto Desenvolver funções para Consultar, Ativar e Desativar Agências. Exercícios Implementar método consultaragencia(int codigoagencia); Implementar método reativaragencia(agencia agencia); for(iterator i = agencias.iterator(); i.hasnext();){ Agencia aux = (Agencia) i.next(); //algum código de tratamento aqui } Equals() Instanceof Cast Utilizar String.format para formatar a mensagem Implementar método desativaragencia(agencia agencia); GFT Group 8 April 2010 Page 4/XX

Java na Prática Requisitos Requisito Projeto Desenvolver funções para Consultar, Ativar e Desativar Agências. Exercícios Implementar método consultaragencia(int codigoagencia); Implementar método reativaragencia(agencia agencia); Implementar método desativaragencia(agencia agencia); for (Agencia a: agencias){ //algum código aqui } For com enhanced-for-loop Uma sentença for enhanced [a partir do Java 5], tem duas partes, a declaração e a expressão. Isto é usado na maioria das vezes para iterar entre arrays e collections Com um enhanced for, a expressão é o array ou collection através do qual você pode iterar GFT Group 8 April 2010 Page 5/XX

Java na Prática For índice, For iterador, Enhanced For Loop for(int i = 0; i < agencias.size(); i++){ Agencia aux = agencias.get(i); //algum código aqui } for(iterator i = agencias.iterator(); i.hasnext();){ Agencia aux = (Agencia) i.next(); //algum código de tratamento aqui } for (Agencia a: agencias){ } //algum código aqui for (;;){ } //algum código aqui GFT Group 8 April 2010 Page 6/XX

Java na Prática Requisitos Desenvolver Cadastro de Clientes Salvar Consultar Bloquear Reativar Cancelar GFT Group 8 April 2010 Page 7/XX

Java na Prática Requisitos Desenvolver Cadastro de Clientes Salvar Consultar Bloquear Reativar Cancelar GFT Group 8 April 2010 Page 8/XX

Java na Prática JavaBean Cliente Modelo de Dados Integer codigo String nome String sobrenome {NomeCompleto} Endereco String logradouro String cidade? unidade Federativa String telefone String email? estadocliente String CPF ou CNPJ? Cliente - codigo: Integer - nome: String - sobrenome: String - logradouro: String - cidade: String - unidadefederativa:? - telefone: String - email: String - estadocliente:? //getters e setters GFT Group 8 April 2010 Page 9/XX

Java na Prática Estruturas Condicionais Switch Sintaxe switch(valor){ } case CONSTANTE_1: //fazer alguma coisa; break; case CONSTANTE_2: //fazer outra coisa; break; default: //fazer alguma outra coisa; Lembretes: beak; Cafeteira + PEQUENO: int [1] + MEDIO: int [2] + GRANDE: int [3] + fazercafe(int tamanho): void Os valores dentro de case devem ser sempre constantes, literais ou não Se não houver break o codigo continuará executando até sair do switch ou encontrar um break; GFT Group 8 April 2010 Page 10/XX

Java na Prática Tipos de Classe Enum Enums são classes Possuem constantes Contém variáveis Contém método construtor Contém métodos GFT Group 8 April 2010 Page 11/XX

Java na Prática Tipos de Classe Enum Comparado com ==, pode ser utilizado no switch Especifica uma lista de constantes que podem ser atribuídas à um tipo particular Enum não é String nem um int; o tipo da constante de um Enum é o tipo da Enum; Enum pode ser declarada fora ou dentro de uma classe, mas nunca em um método. Enums podem conter construtores, métodos, variáveis e constantes no corpo da classe Construtores enum podem ter argumentos, e podem ser sobrecarregados Construtores enum nunca podem ser invocados diretamente no código. Eles são sempre chamados automaticamente quando uma enum é inicializada. O ponto e virgula no final da declaração de uma enum é opcional. Ambos são permitidos: Exercício enum Teste { TESTE1, TESTE2, TESTE3} enum Teste { TESTE1, TESTE2, TESTE3}; Implementar enums EstadoCliente [ATIVO, BLOQUEADO, CANCELADO] com descrição UnidadeFederativa [SP, RJ, MG, PR] com descrição por extenso GFT Group 8 April 2010 Page 12/XX

Java na Prática Herança e Classes Abstratas Herança É-um refere-se a herança É expressado através da palavra chave extends Herdar de outra classe significa receber todas as informações e operações desta Sub-Classe e Super-Classe Generalização e especialização Sobrecarga e Sobreposição/sobrescrita Classes Abstratas abstract class e métodos abstratos Classe não pode ser instanciada Método não pode ser ignorado Exercício Criar ClienteFisico ClienteJuridico herdando de Cliente Tornar Cliente uma classe abstrata Implementar método abstrato public abstract String getnomecompleto(); Especializar Clientes com cpf e cnpj; GFT Group 8 April 2010 Page 13/XX

Java na Prática Herança e Polimorfismo instanceof Polimorfismo significa muitas formas Uma variável de referência é sempre de um único tipo, imutável, mas que pode se referir à um subtipo Um simples objeto pode ser referenciado por variáveis de referência de muitos tipos [diferentes] desde que elas sejam do mesmo tipo ou supertipo do objeto O tipo da variável de referência [não o tipo do objeto], determina quais métodos podem ser chamados. Invocações de métodos por polimorfismo se aplicam somente para métodos de instância sobrescritos Exercício Utilizar instanceof em hierarquia ClienteFisico Cliente Object Criar ClienteBusiness public void cadastrarcliente(cliente cliente) public Cliente consultarclienteporcodigo(integer codcliente) Criar em SistemaView private void mostrarview(component c); GFT Group 8 April 2010 Page 14/XX

Java na Prática Herança e Modificadores de Classe Abstract VS final Um membro protected herdado por classe em outro pacote é acessível somente para esta classe e suas subclasses Classes também podem ser marcadas com os modificadores final ou abstract Uma classe não pode ser final e abstract ao mesmo tempo Uma classe final não pode ser herdada [extends] Uma classe abstrata não pode ser instanciada Uma classe abstrata pode conter ambos os métodos abstratos e não abstratos A primeira classe concreta que herdar de uma classe abstrata deve implementar todos os seus métodos abstratos. Exercício Implementar modificador final em ClienteFisico e ClienteJuridico GFT Group 8 April 2010 Page 15/XX

Referências Bibliográficas: Certificação Sun para programador Java 5: guia de estudo (exame 310-055) / Kathy Sierra, Bert Bates Effective Java: Second Edition/First Edition / Joshua Bloch Sugestões, dicas ou reclamações: celio@celiosilva.com Obrigado! GFT Group 8 April 2010 Page 16/XX

GFT Technologies AG Av. São Francisco, 98 - STA Rosália, CEP 18095-450. celio.da-silva@gft.com T +55 15 3332-0762 Célio Batista da Silva celio@celiosilva.com Copyright Célio Batista da Silva, 2010 GFT Group 8 April 2010 Page 17/XX