Exemplos de Classes em Java: Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Exemplos de Classes ==
{{TOCright}}
 
== Exemplos de Classes Simples ==


=== Classe com atributo <code>static</code> ===
=== Classe com atributo <code>static</code> ===
Line 5: Line 7:
O atributo é partilhado por todas as instâncias da classe.
O atributo é partilhado por todas as instâncias da classe.


<source lang="java">
  class StaticInt {
  class StaticInt {
   '''static''' int i = 1;
   static int i = 1;
  }
  }
</source>


Utilização hipotética:
Utilização hipotética:


<source lang="java">
  StaticInt.i++;
  StaticInt.i++;
</source>


Utilização possível, mas não recomendada:
Utilização possível, mas não recomendada:


<source lang="java">
  StaticInt si = new StaticInt();
  StaticInt si = new StaticInt();
  '''si'''.i++;        // '''i''' é independente de '''si'''
  si.i++;        // "i" é independente de "si"
</source>


O mesmo fragmento, com o mesmo significado, mas melhor estilo (a referência a <code>i</code> faz-se através da classe e não de um objecto particular):
O mesmo fragmento, com o mesmo significado, mas melhor estilo (a referência a <code>i</code> faz-se através da classe e não de um objecto particular):


<source lang="java">
  StaticInt si = new StaticInt();
  StaticInt si = new StaticInt();
  StaticInt.i++;
  StaticInt.i++;
</source>


Ou seja, o facto de existirem objectos de uma classe não significa que sejam a forma preferencial para invocar métodos.
Ou seja, o facto de existirem objectos de uma classe não significa que sejam a forma preferencial para invocar métodos.
Line 27: Line 37:
=== Classe com método <code>static</code> ===
=== Classe com método <code>static</code> ===


O método pode ser invocado sem que seja necessária a existência de instâncias da classe. Isto quer dizer que o método se comporta, na realidade, como uma função (não necessita do contexto de nenhum objecto em particular).
O método pode ser invocado sem que seja necessária a existência de instâncias da classe. Isto quer dizer que o método se comporta, na realidade, como uma função (não necessita do contexto de nenhum objecto em particular).


Definição das classes:
Definição das classes:


  class StaticInt { '''static''' int i = 1; }  // exemplo anterior
<source lang="java">
  class StaticInt { static int i = 1; }  // exemplo anterior
  class StaticMeth {
  class StaticMeth {
   '''static''' void incr() { return StaticInt.i++; }
   static void incr() { return StaticInt.i++; }
  }
  }
</source>


Invocação do método:
Invocação do método:


  StaticMeth.incr();    // o valor de '''StaticInt.i''' é agora '''2'''
<source lang="java">
  StaticMeth.incr();    // o valor de "StaticInt.i" é agora "2"
</source>


Utilização possível, mas não recomendada (ver explicação acima):
Utilização possível, mas não recomendada (ver explicação acima):


<source lang="java">
  StaticMeth sm = new StaticMeth();
  StaticMeth sm = new StaticMeth();
  sm.incr();        // '''incr''' é independente do contexto de '''sm'''
  sm.incr();        // "incr" é independente do contexto de "sm"
</source>


== ''Hello World'' ==
== ''Hello World'' ==
Line 49: Line 65:
O tradicional programa, em versão Java:
O tradicional programa, em versão Java:


<source lang="java">
  public class Hello {
  public class Hello {
   public static void main(String[] args) {
   public static void main(String[] args) {
Line 54: Line 71:
   }
   }
  }
  }
</source>
[[category:PO]]
[[category:PO Exemplos]]
[[category:Java]]
[[category:Ensino]]

Latest revision as of 21:29, 3 December 2018

Exemplos de Classes Simples

Classe com atributo static

O atributo é partilhado por todas as instâncias da classe.

 class StaticInt {
   static int i = 1;
 }

Utilização hipotética:

 StaticInt.i++;

Utilização possível, mas não recomendada:

 StaticInt si = new StaticInt();
 si.i++;        // "i" é independente de "si"

O mesmo fragmento, com o mesmo significado, mas melhor estilo (a referência a i faz-se através da classe e não de um objecto particular):

 StaticInt si = new StaticInt();
 StaticInt.i++;

Ou seja, o facto de existirem objectos de uma classe não significa que sejam a forma preferencial para invocar métodos.

Classe com método static

O método pode ser invocado sem que seja necessária a existência de instâncias da classe. Isto quer dizer que o método se comporta, na realidade, como uma função (não necessita do contexto de nenhum objecto em particular).

Definição das classes:

 class StaticInt { static int i = 1; }  // exemplo anterior
 class StaticMeth {
   static void incr() { return StaticInt.i++; }
 }

Invocação do método:

 StaticMeth.incr();    // o valor de "StaticInt.i" é agora "2"

Utilização possível, mas não recomendada (ver explicação acima):

 StaticMeth sm = new StaticMeth();
 sm.incr();        // "incr" é independente do contexto de "sm"

Hello World

O tradicional programa, em versão Java:

 public class Hello {
   public static void main(String[] args) {
     System.out.println("Hello world!");
   }
 }