More Related Content
Similar to POO Atributos e Métodos Estáticos
Similar to POO Atributos e Métodos Estáticos (20)
More from Ludimila Monjardim Casagrande
More from Ludimila Monjardim Casagrande (15)
POO Atributos e Métodos Estáticos
- 2. Instâncias e Classes
Objetos são instâncias de uma classe. Sendo
assim, vários objetos de um mesmo “tipo” ou classe
podem ser criados e cada instância terá uma cópia
de todos os atributos declarados na classe.
As instâncias de uma classe são, portanto,
independentes entre si:
a modificação do campo saldo de uma instância da
classe Conta não afeta o valor do mesmo campo em
outra instância da classe.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 2
- 3. Atributos Estáticos
Sendo assim, como seria possível compartilhar uma
informação entre todas as instâncias de uma classe?
Uma forma de promover o compartilhamento de uma
mesma variável e de seu valor entre as várias instâncias
de uma classe é declarando essa variável de classe
como estática (static).
Em outras palavras, atributos ou campos estáticos de
uma classe são compartilhados por todas as instâncias
dessa classe e se o valor de um campo estático for
modificado por uma das instâncias, a modificação será
refletida em todas as instâncias da mesma classe.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 3
- 4. Atributos Estáticos
Atributos estáticos são declarados com o
modificador static, que deve ser posicionado antes
do tipo do atributo e pode ser combinado com os
modificadores de acesso public, private ou
protected.
Atributos estáticos são também conhecidos como
atributos de classe, por poderem ser acessados
diretamente usando o nome da classe, isto é, sem
que uma instância tenha sido criada.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 4
- 5. Atributos Não-Estáticos
Ao contrário dos atributos estáticos, os atributos
que podem ter diferentes valores para cada
instância da mesma classe são conhecidos
como atributos de instância.
Para a manipulação desses campos é
necessária a criação de uma instância da classe
e a existência de uma referência para tal
instância.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 5
- 6. Ciclo de Vida de Atributos Estáticos
As variáveis correspondentes a atributos
estáticos são criadas no momento da carga da
classe e são destruídas ao término da execução
da aplicação.
A carga ocorre na primeira vez em que a classe
é utilizada.
Exemplo:
System.out.println("Número de participantes: "
+ Participante.contador);
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 6
- 7. Exemplo
public class Participante {
public static int contador; Atributo declarado como estático
public Participante(){
contador++;
}
public static int getContador() { A variável contador deve armazenar
return contador; o número de participantes existentes,
} isto é, o número de objetos desta
} classe que foram criados.
Ela deve funcionar como uma variável
global, cujo valor é compartilhado entre
todas as instâncias.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 7
- 8. Exemplo
public class Principal {
public static void main(String[] args) {
System.out.println("Número de participantes: "
+ Participante.contador);
Participante p1 = new Participante();
Participante p2 = new Participante();
System.out.println("Número de participantes: "
+ Participante.contador);
}
}
Atributo sendo acessado diretamente pelo nome da classe
Isso é possivel quando os atributos ou métodos são estáticos
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 8
- 9. Métodos Estáticos
Devem ser declarados como estáticos métodos:
que somente manipulam variáveis estáticas ou
que implementam rotinas que sejam
independentes de dados armazenados em
instâncias, ou seja, métodos que só necessitem
dos dados passados como argumentos para
efetuar a tarefa requerida e que produzem o
mesmo resultado independentemente de qual
instância da classe tenha sido usada para sua
chamada.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 9
- 10. Métodos Estáticos
Métodos estáticos também são declarados pelo uso
do modificador static, que deve preceder o tipo de
retorno do método e que pode ser combinado com os
modificadores aplicáveis ao método.
Os métodos estáticos (também conhecidos como
métodos de classe) também podem ser chamados
sem a necessidade de criação de uma instância da
classe à qual pertencem.
Isso é o que os diferenciam dos métodos não-
estáticos.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 10
- 11. Métodos Estáticos
O método main é um método estático, que permite
que uma classe seja executada como uma
aplicação ou programa.
Não é necessário criar uma instância da classe que
contém o método main para que ele seja
executado.
Métodos estáticos podem ser usados em classes
que contenham o método main para servirem como
sub-rotinas deste.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 11
- 12. Métodos e Atributos Estáticos
Métodos estáticos só podem acessar ou chamar
diretamente (sem uma instância) variáveis ou
métodos também estáticos.
Sendo assim:
Se um método for chamado diretamente a partir do
método main, este método deverá ser obrigatoriamente
declarado como estático.
Se o método main for acessar campos declarados na sua
classe mas fora do método main, estes campos também
deverão ser declarados como estáticos.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 12
- 13. Exemplo
public class ConversorDeUnidades {
public static double milhasParaQuilometros(double milhas) {
double quilometros = milhas*1.609;
return quilometros;
}
public static void main(String[] args){
double milhas = 100;
double quilometros = milhasParaQuilometros(milhas);
System.out.println(milhas + " milhas correspondem a " +
quilometros + " quilômetros.");
}
}
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 13
- 14. O Modificador: final
O modificador final pode ser aplicado a
variáveis, métodos e classes.
O significado de final varia de acordo com o
elemento ao qual ele é aplicado.
Porém a idéia essencial é sempre a mesma:
elementos declarados como final não podem ser
modificados.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 14
- 15. O Modificador: final
Sendo assim:
Variáveis declaradas como final correspondem a
constantes, pois seu valor inicial não pode ser
alterado.
Um método final não pode ser sobrescrito (pelas
subclasses).
Uma classe final não pode ter subclasses.
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 15
- 16. Exemplo
public class ConstantesMatematicas {
// Declaração dos campos da classe
// raiz quadrada de 2
public static final double RAIZ_DE_2 = 1.4142135623730950488;
// raiz quadrada de 3
public static final double RAIZ_DE_3 = 1.7320508075688772935;
// raiz quadrada de 5
final static public double RAIZ_DE_5 = 2.2360679774997896964;
// raiz quadrada de 6: podemos usar as constantes já definidas
static final public double RAIZ_DE_6 = RAIZ_DE_2 * RAIZ_DE_3;
}
Elementos Estáticos ©2012 Ludimila Monjardim Casagrande 16