Programação Orientada a Objetos Atributos e Métodos Estáticos Ludimila Monjardim Casagrande ...
Instâncias e Classes  Objetos são instâncias de uma classe. Sendo assim, vários objetos de um mesmo “tipo” o...
Atributos Estáticos  Sendo assim, como seria possível compartilhar uma informação entre todas as instâncias ...
Atributos Estáticos  Atributos estáticos são declarados com o modificador static, que deve ser posicionado a...
Atributos Não-Estáticos  Ao contrário dos atributos estáticos, os atributos que podem ter diferentes valores...
Ciclo de Vida de Atributos Estáticos  As variáveis correspondentes a atributos estáticos são criadas no mome...
Exemplo public class Participante { public static int contador; Atributo declarado como estático...
Exemplo public class Principal { public static void main(String[] args) { System.out.println("Número ...
Métodos Estáticos  Devem ser declarados como estáticos métodos:  que somente manipulam variáveis estática...
Métodos Estáticos  Métodos estáticos também são declarados pelo uso do modificador static, que deve preceder...
Métodos Estáticos  O método main é um método estático, que permite que uma classe seja executada como uma ...
Métodos e Atributos Estáticos  Métodos estáticos só podem acessar ou chamar diretamente (sem uma instância) ...
Exemplo public class ConversorDeUnidades { public static double milhasParaQuilometros(double milhas) { double...
O Modificador: final  O modificador final pode ser aplicado a variáveis, métodos e classes.  O signific...
O Modificador: final  Sendo assim:  Variáveis declaradas como final correspondem a constante...
Exemplo public class ConstantesMatematicas { // Declaração dos campos da classe // raiz quadrada de 2 publi...
of 16

POO - 19 - Elementos Estáticos

Published on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - POO - 19 - Elementos Estáticos

  • 1. Programação Orientada a Objetos Atributos e Métodos Estáticos Ludimila Monjardim Casagrande 2012
  • 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áticosElementos 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

Related Documents