1 / 11

Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre. Elementos de Classe, class wrappers. Classes. Classes : podem ser vistas como objectos especiais. Isto é, podemos enviar mensagens às classes e fazer uso das suas variáveis (de classe).

Download Presentation

Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Métodos de Programação II(Mestrado Integrado em Engenharia de Comunicações)1º Ano, 2º Semestre Elementos de Classe, class wrappers Métodos Programação II

  2. Classes • Classes: podem ser vistas como objectos especiais. Isto é, podemos enviar mensagens às classes e fazer uso das suas variáveis (de classe). • Estas facilidades fornecem um mecanismo de broadcasting, comunicação com todas as instâncias da classe. • Na definição de classe aparece agora espaço para a definição de variáveis e métodos de classe. • Todas as instâncias têm acesso à estrutura privada da classe. • As variáveis e métodos de classe existem sempre, mesmo quando não existem instâncias dessa classe! Métodos Programação II

  3. Classes como Objectos • Variáveis de classe: visíveis a todas as instâncias da classe, • Métodos de classe: são activados por mensagens enviadas à classe. • Podemos manter os mesmos princípios de encapsulamento: há métodos de classe para aceder às variáveis de classe. • A keyword static é usada para declarar os elementos privados à classe. Métodos Programação II

  4. Variáveis de classe • Constantes especificas de uma classe. Não é razoável ter uma constante repetida em todas as instâncias de uma classe! • Exemplo: valor de π na classe Circulo. • Exemplo clássico: contador de instâncias criadas para uma determinada classe. Métodos Programação II

  5. Exemplo Variável contador public class Circulo { private static int num = 0; public static int getnum() { return num;} //constructor Circulo(double x, double y, double r) { this.centro = new Ponto(x,y); this.raio = r; num++;} } // usar os métodos de classe enviando uma msg à própria classe. System.out.println(“Número de Circulos=“+Circulo.getnum()); Método de classe de acesso ao contador Neste constructor incrementa-se o contador sempre que se o invoca! Métodos Programação II

  6. Outros exemplos • Métodos de classe que funcionam como inicializadores: public class ex1 { static int a[] = new int[100]; static { double x; for(int i=0;i < 100; i++;x+=i) a[i] = x; } } // Use de outras classes double a = Math.pow(raio,2); int x = Integer.MAX_VALUE; // constante da classe Integer Métodos Programação II

  7. Classes sem instâncias • Class Arrays • int a[] = {3,6,1,2,0,9,7,8,4}; • Arrays.sort(a); Arrays.binarySearch(a,2); • ClassMath • Double d =Math.sqrt(2.3); d = Math.pow(d,2); • d = Math.log(d); Métodos Programação II

  8. Class Wrappers • O java contém classes que são imagens dos tipos primitivos • Exemplos: • Integer  int • Double  double • Long  long • etc. • Produzem objectos imutáveis. • São wrappers porque “embrulham” os tipos primitivos em objectos. Métodos Programação II

  9. Class Wrappers (cont) • Possuem sempre constantes de classe que especificam o valor max e min. Exemplo Integer.MIN_VALUE • Servem para conversão de Strings em valores numéricos: • String s=“8”; • int i = Integer.parseInt(s); • ou String s = “12.45”; double d = new Double(s); • Há o processamento automático do boxing e unboxing entre os dois níveis: • Integer i = new Integer(12); int x = i; • Double d = new Double(3.14); int x = d.intValue(); Métodos Programação II

  10. Arrays de Objectos • Podemos representar colecções de objectos usando arrays. Exemplo: Circulo c[] = new Circulo[10]; c[0] = new Circulo(0,0,10); c[1] = new Circulo(1,6,18); …. // encontra circulo com maior área. double max = c[0].area(); Circulo m = null; for(Circulo x:c) { double temp = x.area(); if(temp> max) { max = temp; m = x; } } A var m vai conter a referência para o circulo de maior área. Métodos Programação II

  11. Exercícios • Definir a classe Conta Bancária • Um conta é representada por um: • Titular • Número da conta e saldo • Uma lista de movimentos • Criar várias contas. Criar classe Banco. Esta classe guarda todas as contas num array. • Implementar métodos para débitos e créditos de movimentos • Deve ser possível contabilizar o número de contas bem como o montante de capital depositado no banco (total de saldos das contas). • Implementar um método para debitar despesas bancárias em todas as contas. Métodos Programação II

More Related