08 modificadores static

artodeschini1 150 views 18 slides Aug 18, 2019
Slide 1
Slide 1 of 18
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18

About This Presentation

modificador static


Slide Content

Modificadores O modificador static Prof. Artur Todeschini Crestani

Modificador static

O que pode ser static ? Variáveis Métodos Uma classe aninhada dentro de outra, mas não dentro de um método. Blocos de inicialização (SIERRA, 2006, p. 35).

O que não pode ser static ? Construtores (não faz sentido; os construtores somente são usado para criar instâncias de objetos). Classes (a não ser que estejam aninhadas) Interfaces Classes internas locais de métodos Métodos de classes internas e variáveis de instância Variáveis locais (SIERRA, 2006, p. 35).

Atributo static Quando temos um atributo estático em uma classe, este atributo será único para todos os objetos instanciados a partir desta classe; Atributos estáticos são inicializados com os mesmos valores de inicialização de atributos não estáticos; (SIERRA, 2006, p. 85).

Atributo static Os atributos estáticos podem ser acessados diretamente a partir da classe e são alocados na memória na primeira vez que a classe for referenciada. Portanto, não é preciso criar um instância. Sintaxe: NomeClasse . nomeAtributo Exemplo: Math .PI, Maht .E (SIERRA, 2006, p. 85).

Atributo static O clico de vida do atributo estático de uma classe, que é o mesmo da aplicação, isto é, enquanto a aplicação estiver rodando o atributo não será eliminado pelo GarbageCollector . O modificador static pode ser combinado com os modificadores de acesso (como * private , public ) em qualquer ordem, produzindo sempre o mesmo efeito. ( HORSTMANN, 2008, p. 64). * Veremos os modificadores private e public , mais adiante

Quando utilizar atributos estáticos? Atributos estáticos devem ser utilizados quando for necessário compartilhar um valor entre todas as instancias da classe. Desta forma, a variável será alocada apenas uma vez na memória.

Quando utilizar atributos estáticos? Vamos imaginar a classe Carro, contendo os seguintes atributos: fabricante: ? placa: ? velocidade: ? velocidadeMaximaPermitida : todos os carros devem obedecer a mesma velocidade máxima permitida esta característica se aplica a todas as instancias e pode ser definida como um atributo estático.

Quando utilizar atributos estáticos? Analisar exemplo Carro. java Executar TestaCarro . java

Métodos static Um método static tem o mesmo objetivo de um atributo estático, podendo ser chamado sem a necessidade de criação de um objeto. São denominados métodos de classe, em vez de métodos de instância. Exemplo: double p = Math . pow (2.0, 3.0);

Métodos static Um método static pode acessar somente membros (atributos e métodos) static porque, como já vimos, podem ser chamados sem a necessidade de criação de uma instancia da classe. São criados em classes para definir bibliotecas de funções que independem de atributos e métodos de instância. O exemplo mais comum de métodos estáticos é o main , porque a JVM não instancia um objeto da classe indicada para execução, ao invés disto, apenas chama seu método main . (SIERRA, 2006, p. 86).

Exemplo Logger . java Como podemos perceber, o valor de qdtLogs está sendo incrementado, mesmo quando utilizamos diferentes instancias de Logger para fazer as chamadas ao método logIt (). Isto acontece porque este atributo é estático e, portanto, compartilhado por todas as instancias classe.

Laboratório Conta - numero: String - saldo: double - acumuladorCPMF : double - taxaCPMF : double = 0.038d + deposito(valor: double ) : void + saque(valor: double ) : void + getSaldo (): double + imprimeDados () : void + getTaxaCPMF () : void + setTaxaCPMF (taxa: double ) : void acumularCPMF ( valorSaque : double ) : void + getCPMFAcumulado () : double

Laboratório Todas as contas bancárias estão sujeitas à incidência do imposto CPMF. Trata-se do mesmo imposto para todas as contas. Vamos representar este imposto como um atributo estático da classe Conta Faca as seguintes modificações na classe Conta: a) acrescente um atributo: private static double taxaCPMF = 0.038d b) crie métodos get e set estáticos para o atributo taxaCPMF

Laboratório Agora vamos modificar a classe Conta para registrar individualmente em cada instância o CPMF acumulado nas operações de saque: a) acrescente o atributo private double acumuladorCPMF b) acrescente um método para acumular o CPMF private void acumuladorCPMF ( double valorSaque ) { acumuladorCPMF += taxaCPMF * valorSaque ; } c) modifique o método saque para que seja invocada a operação acumularCPMF d)crie o método público getCPMFAcumulado para retornar o acumuladorCPMF de uma Conta Execute o método main da classe TestaCPMF para testar as funcionalidade adicionadas.

Referencias Bibliográficas HORSTMANN, Cay; CORNEL, Gary Core Java Fundamentals v.1 , Sun Microsystem Press ed. 8 2008. SIERRA, Kathy. Certificação Sun para programador Java 5 Guia de estudo SCJP. e d. Alta Books, Rio de Janeiro, RJ 2006.