Progamação OO com Java

Propaganda
Membros estáticos,passagem de
parâmetros e arrays
Membros estáticos
Uma classe possui dois tipos de membros:
campos e métodos.
Um membro estático é um membro que é
apenas um por classe.
Um método estático é usado fora do
contexto de qualquer instância.
Declara-se esses métodos como static.
Membros estáticos
Exemplos de métodos estáticos:
 public static void main(String args[ ]){
 Math.pow(b, 2.0)
 Math.sqrt(delta - 4*a*c)
 System.out.println(“x1=“ + x)
Membros estáticos
Variáveis estáticas levam a uma
declaração de variáveis globais.
Variáveis estáticas de uma classe são
inicializadas antes de qualquer variável
estática ser utilizada ou qualquer método
ser executado.
Blocos de inicialização estática
Necessário para configurar campos estáticos ou
outros estados necessários.
Um bloco estático é executado exatamente
uma vez, quando a classe é carregada pela
primeira vez.
A ordem da inicialização estática é da esquerda
para a direita e de cima para baixo.
Exemplo
class Estatica{
static int a = 3;
static int b;
static void metodo(int x){
System.out.println(“x = “ + x);
System.out.println(“a = “ + a);
System.out.println(“b = “ + b);
}
static {
System.out.println(“bloco estatico inicializado”);
b = a * 4;
}
public static void main(String args[ ]) {
metodo(42);
}
}
Métodos estáticos
Um método estático é chamado em nome de
uma classe inteira, e não de um objeto
específico.
Também conhecidos como métodos de classe.
Um método estático pode ter acesso apenas a
variáveis estáticas.
Um membro estático é geralmente acessado
usando-se o nome da classe, em vez da
referência a um objeto.
Exemplo
class ClasseEstatica {
static int a = 42;
static int b = 99;
static void chameme( ) {
System.out.printl(“a = “ + a);
}
}
class EstaticaPorNome {
public static void main (String args[ ]) {
ClasseEstatica.chameme( );
System.out.println(“b = “ + ClasseEstatica.b);
}
}
Valores de parâmetros
Todos os parâmetros a métodos Java são
passados por valor.
Os valores de parâmetros variáveis em
um método são cópias de valores
especificados por quem os chamou.
Um método poderá alterá-lo sem afetar
os valores no código que chama tal
método.
Valores de parâmetros
class PassagemPorValor{
public static void main(String[ ] args){
double um = 1.0;
System.out.println(um);
metade(um);
System.out.println(um);
}
public static void metade(double arg){
arg /= 2.0;
System.out.println(arg);
}
}
Valores de parâmetros
Em caso de objeto, é a referência que é
passada por valor e não o objeto
propriamente dito.
Pode-se alterar o objeto que o parâmetro
se refere dentro de um método sem
afetar a referência que foi passada.
Arrays
Um array (vetor ou matriz) é um grupo de
variáveis de mesmo tipo que são referidas
por um nome comum.
Os arrays podem ser declarados para
conter quaquer tipo.
Os colchetes, [], são usados para declarar
um tipo de array.
int dias_mês[];
Arrays
O valor de dias_mês é definido como um
valor padrão zerado.
Um operador new é usado para alocar o
espaço de um array.
dias_mês = new int[12];
Arrays
Class Array {
public static void main(String args[ ]){
int dias_mês[ ];
dias_mês = new int [12];
dias_mês[0] = 31;
dias_mês[1] = 28;
dias_mês[2] = 31;
dias_mês[3] = 30;
dias_mês[4] = 31;
dias_mês[5] = 30;
dias_mês[6] = 31;
dias_mês[7] = 31;
dias_mês[8] = 30;
dias_mês[9] = 31;
dias_mês[10] = 30;
dias_mês[11] = 31;
System.out.println(“Abril tem “ + dias_mês[3] + “dias.”);
}
}
Arrays
Pode-se inicializar os arrays
automaticamente, da mesma forma como
a inicialização dos tipos simples.
int dias_mês[ ] = {31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};
O array será criado com tamanho
suficiente para conter o número de
elementos especificados na inicialização.
Arrays multidimensionais
Em Java existem arrays de arrays, que se
parecem com os arrays
multidimensionais.
Os arrays multidimensionais tradicionais
são alocados em blocos.
Em Java, declara-se uma variável com
tendo mais de uma dimensão.
Arrays multidimensionais
double matrix [ ] [ ] = new double [4][4];
double matrix [ ] [ ] = new double [4] [ ];
matrix[0] = new double [4];
matrix[1] = new double [4];
matrix[2] = new double [4];
matrix[3] = {0, 1, 2, 3};
Download