Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fernando Albuquerque - fernando@cic.unb.br Linguagem Java Fernando Albuquerque 061-2733589 fernando@cic.unb.br Fernando Albuquerque - fernando@cic.unb.br Java - Tópicos n Arquitetura n Orientação a objetos n Classes e Objetos n Hierarquias n Interfaces n Símbolos n Operadores n Controle de fluxo n Eventos n Exceções Fernando Albuquerque - fernando@cic.unb.br Java - Arquitetura n O modelo Java : • Cliente carregado por demanda • Código do cliente independe da plataforma • Código do cliente é interpretado por máquina virtual • Linguagem apropriada para aplicações complexas n Características da linguagem Java : • Multitarefa Orientada a Objetos • Distribuída Robusta • Segura Independente de arquitetura Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Elementos de uma classe : • Atributos- Dados • Métodos - Código para manipular os dados n Atributos : • Uma instância para cada objeto • Podem ser compartilhados via modificador static n Controle de acesso aos atributos e métodos : public private protected Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos palavra-chave nome da classe public class BemVindo { static String mensagem = "Bem Vindo" ; public static void main ( String [] args ) { System. out . println ( mensagem ); } } Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Objetos : • São instâncias de classes • Referências são inicialmente criadas • Objetos são posteriormente criados n Exemplo : criando o objeto Cliente jose = new Cliente ( ) ; classe referência para o objeto Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Métodos : • Contém o código que manipula o estado do objeto • Não podem ter um número variável de parâmetros • Tem um tipo de retorno • São chamados como operações sobre os objetos • Usado o operador ponto ( . ) Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos class BemVindo { static String mensagem = "Bem Vindo" ; public static void main ( String [ ] args ) { System. out . println (mensagem.substring (0, 4)); } } nome do objeto mensagem Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Valores de parâmetros : • Todos parâmetros são passados por valor • Valores são portanto copiados • Modificações no método não afetam valor original • Atenção na passagem de referências para objetos n Construtoras : • Usadas quando necessário mais que um valor inicial • Podem ter um ou mais argumentos • Quando não tem argumentos são chamados no-arg Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos • Tipo de retorno é implícito e uma instância da classe • Tem sempre o mesmo nome da classe • São chamadas após os campos serem inicializados • Podem ser explicitamente chamadas via this public class Circulo { public double x, y , r; public Circulo ( double x , double y , double r ) { this .x = x ; this .y = y ; this .r = r ; } } Circulo c = new Circulo ( 1.23 , -1 , .2 ); Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Finalizadoras : • Garbage collector libera memória automaticamente • Finalizadores executados antes de um objeto ser desalocado • Útil na desalocação de recursos como descritores e sockets • Finalizador pode nunca vir a ser executado • Não há garantia quando finalizadores serão executados • Não há garantia a respeito da ordem em que serão executados protected void finalize () throws IOException { : if ( fd != null ) close ( ); } Fernando Albuquerque - fernando@cic.unb.br Java - Classes e Objetos n Pacotes : • Classe podem ser agrupadas em pacotes • Possibilitam a organização do trabalho • Bibliotecas distribuídas em diversos pacotes • São organizados em hierarquias : • Classes podem ser usadas após importadas : java . lang java . awt. image import java . awt*; import java . util .Date; Fernando Albuquerque - fernando@cic.unb.br Java - Hierarquias n Possibilitam : • Aproveitamento de código • Herança simples • Métodos podem ser aproveitados ou redefinidos n Controle da herança via : • public - públicos • protected - protegidos no pacote • private - privados Fernando Albuquerque - fernando@cic.unb.br Java - Hierarquias nome da classe derivadanome da classe base class Point extends Object { variáveis privadas double x ; double y ; public void apresenta ( double x , double y ) { this . x = x ; this . y = y ; } } função-membro pública Fernando Albuquerque - fernando@cic.unb.br Java - Hierarquias n Métodos abstratos : • Compostos por uma assinatura sem implementação • Classes com métodos abstratos são abstratas • Não podem haver instâncias de uma classe abstrata • Sub-classes podem prover a implementação • Sub-classes sem implementação são abstratas • Usada a palavra-chave abstract public abstract class Circulo { public abstract double area (); public abstract double circunferencia (); } Fernando Albuquerque - fernando@cic.unb.br Java - Interfaces n Conceito : • Método para declarar um tipo composto apenas por métodos abstratos e constantes • Qualquer implementação pode ser posteriormente definida para os métodos • Uma classe pode implementar os métodos de uma interface da forma que o projetista da classe ache conveniente • Uma interface pode ter diferentes implementações em diferentes classes Fernando Albuquerque - fernando@cic.unb.br Java - Interfaces n Declarando uma interface : interface ContaBancaria { int AGENCIA = 592; void cadastrar ( String nomeCliente ); void remover ( String nomeCliente ); } n Implementando uma interface : class ContaCorrente implements ContaBancaria { : } Fernando Albuquerque - fernando@cic.unb.br Java - Caracteres e Comentários n Conjunto de caracteres : • Utilizado o Unicode • Conjunto de caracteres de 16 bits • Primeiros 256 caracteres são Latin-1 • Reconhecidas as seqüências de escape \udddd n Comentários : • / / comentário • /* comentário */ Fernando Albuquerque - fernando@cic.unb.br Java - Controle de Fluxo n if - else : if ( expressão- booleana ) enunciado_1; else enunciado_2; n switch : switch ( valor ) { case ‘ const _1’ : enunciado_1; ...... default : enunciado_n; } Executa se verdadeiro Executa se falso Testa condições Fernando Albuquerque - fernando@cic.unb.br Java - Controle de Fluxo n while : while ( expressão- booleana ) enunciado ; n do-while : do enunciado ; while ( expressão- booleana ); n for : for ( expr - inic ; expr - booleana ; expr - incr ) enunciado ; Executa enquanto verdadeiro Fernando Albuquerque - fernando@cic.unb.br Java - Controle de Fluxo n Labels : label : enunciado ; n break : break ; break label ; n continue : continue ; continue label ; n return : return ; Termina execução de um método Salta para o final do corpo do loop e calcula a expressão que controla o loop Abandona o bloco mais interno Abandona um bloco externo Fernando Albuquerque - fernando@cic.unb.br Java - Exceções n Erros que podem ocorrer : • Entrada incorreta de dados ou erros em dispositivos • Limitações físicas • Erros de codificação n Tipos de exceções : • Implícitas- não precisam ser tratadas • Explícitas- precisam ser tratadas n Responsabilidade do tratamento : • Transferir controle de onde erro ocorreu para código de tratamento Fernando Albuquerque - fernando@cic.unb.br Java - Exceções n Lançando uma exceção : String readData ( DataInput in ) throws EOFException { . . . . while ( . . . . ) { . . . . if ( n < len ) throw new EOFException ( ); } } Lança exceção Cria objeto da classe Informa classe da exceção Fernando Albuquerque - fernando@cic.unb.br Java - Exceções n Interceptando exceções : try { . . . . } catch ( TipoExceção e ) { . . . . } finally { . . . . } Código que lança Código que trata Código default
Compartilhar