métodos de programação ii (mestrado integrado em engenharia de comunicações) 1º ano, 2º...

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

Upload: alden-barrera

Post on 30-Dec-2015

29 views

Category:

Documents


1 download

DESCRIPTION

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). - PowerPoint PPT Presentation

TRANSCRIPT

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

Métodos Programação II 1

Métodos de Programação II(Mestrado Integrado em Engenharia de Comunicações)

1º Ano, 2º Semestre

Elementos de Classe, class wrappers

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

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!

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

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.

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

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.

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

Métodos Programação II 5

Exemplopublic 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());

Variável contador

Método de classe de acesso ao contador

Neste constructor incrementa-se o contador sempre que se o

invoca!

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

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 classesdouble a = Math.pow(raio,2);int x = Integer.MAX_VALUE; // constante da classe Integer

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

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);

• Class Math– Double d =Math.sqrt(2.3); d = Math.pow(d,2);

– d = Math.log(d);

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

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.

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

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

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

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.

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

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.