Difference between revisions of "Exemplos de Classes em Java"

From Wiki**3

Line 7: Line 7:
 
O atributo é partilhado por todas as instâncias da classe.
 
O atributo é partilhado por todas as instâncias da classe.
  
 +
<java5>
 
  class StaticInt {
 
  class StaticInt {
   '''static''' int i = 1;
+
   static int i = 1;
 
  }
 
  }
 +
</java5>
  
 
Utilização hipotética:
 
Utilização hipotética:
  
 +
<java5>
 
  StaticInt.i++;
 
  StaticInt.i++;
 +
</java5>
  
Utilização possível, mas não recomendada:
+
Utilização possível, mas não recomendada:
  
 +
<java5>
 
  StaticInt si = new StaticInt();
 
  StaticInt si = new StaticInt();
  '''si'''.i++;        // '''i''' é independente de '''si'''
+
  si.i++;        // "i" é independente de "si"
 +
</java5>
  
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):
  
 +
<java5>
 
  StaticInt si = new StaticInt();
 
  StaticInt si = new StaticInt();
 
  StaticInt.i++;
 
  StaticInt.i++;
 +
</java5>
  
 
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 29: 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
+
<java5>
 +
  class StaticInt { static int i = 1; }  // exemplo anterior
 
  class StaticMeth {
 
  class StaticMeth {
   '''static''' void incr() { return StaticInt.i++; }
+
   static void incr() { return StaticInt.i++; }
 
  }
 
  }
 +
</java5>
  
 
Invocação do método:
 
Invocação do método:
  
  StaticMeth.incr();    // o valor de '''StaticInt.i''' é agora '''2'''
+
<java5>
 +
  StaticMeth.incr();    // o valor de "StaticInt.i" é agora "2"
 +
</java5>
  
Utilização possível, mas não recomendada (ver explicação acima):
+
Utilização possível, mas não recomendada (ver explicação acima):
  
 +
<java5>
 
  StaticMeth sm = new StaticMeth();
 
  StaticMeth sm = new StaticMeth();
  sm.incr();        // '''incr''' é independente do contexto de '''sm'''
+
  sm.incr();        // "incr" é independente do contexto de "sm"
 +
</java5>
  
 
== ''Hello World'' ==
 
== ''Hello World'' ==
Line 51: Line 65:
 
O tradicional programa, em versão Java:
 
O tradicional programa, em versão Java:
  
 +
<java5>
 
  public class Hello {
 
  public class Hello {
 
   public static void main(String[] args) {
 
   public static void main(String[] args) {
Line 56: Line 71:
 
   }
 
   }
 
  }
 
  }
 +
</java5>
  
 
== Historial ==
 
== Historial ==
  
 
* PO 2005/2006: Aula 02.
 
* PO 2005/2006: Aula 02.

Revision as of 20:50, 20 September 2009

Exemplos de Classes Simples

Classe com atributo static

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

<java5>

class StaticInt {
  static int i = 1;
}

</java5>

Utilização hipotética:

<java5>

StaticInt.i++;

</java5>

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

<java5>

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

</java5>

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):

<java5>

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

</java5>

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:

<java5>

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

</java5>

Invocação do método:

<java5>

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

</java5>

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

<java5>

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

</java5>

Hello World

O tradicional programa, em versão Java:

<java5>

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

</java5>

Historial

  • PO 2005/2006: Aula 02.