|
|
(9 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| == Exemplos de Classes ==
| | #REDIRECT [[ist:Exemplos de Classes em Java]] |
| | |
| === Classe com atributo <code>static</code> ===
| |
| | |
| 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 <code>i</code> 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 <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).
| |
| | |
| 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!");
| |
| }
| |
| }
| |