Ordenando elementos em uma classe
Agora que você viu as partes mais comuns de uma classe, vamos dar uma olhada qual o caminho certo para digitá-los em um arquivo. Comentários podem ir a qualquer lugar no código. Além disso, você precisa memorizar as regras da Tabela 1.4.
Vejamos alguns exemplos para ajudar você a lembrar disso. O primeiro exemplo contém um de cada elemento:
package structure; // package must be first non-comment
import java.util.*; // import must come after package
public class Meerkat { // then comes the class
double weight; // fields and methods can go in either order
public double getWeight() {
return weight; }
double height; // another field – they don't need to be together
}
Por enquanto, tudo bem. Este é um padrão comum com o qual você deve estar familiarizado. E que tal este?
/* header */
package structure;
// class Meerkat
public class Meerkat { }
Podemos colocar comentários em qualquer lugar e as importações são opcionais. Na próximo exemplo, temos um problema:
import java.util.*;
package structure; // DOES NOT COMPILE
String name; // DOES NOT COMPILE
public class Meerkat { }
Existem dois problemas aqui. Uma é que o pacote e as declarações de importação estão invertidas. Embora ambos sejam opcionais, o pacote deve vir antes da importação, caso exista. Outra questão é que um campo está declarado fora de uma classe. Isso não é permitido. Campos e os métodos devem estar dentro de uma classe.
Tem tudo isso? Pense no acrônimo PIC (picture): package, import e class. Campos e métodos são mais fáceis de lembrar porque eles simplesmente precisam estar dentro de uma classe.
Você precisa saber mais uma coisa sobre a estrutura de classes para o exame OCA: múltiplas classes podem ser definidas no mesmo arquivo, mas somente uma delas pode ser pública. A classe pública corresponde ao nome do arquivo. Por exemplo, essas duas classes devem estar em um arquivo chamado Meerkat.java:
1: public class Meerkat { }
2: class Paw { }
Um arquivo também não precisa ter nenhuma classe pública. Enquanto não houver mais de uma classe pública em um arquivo, está tudo bem. No exame do OCP, você também precisará entender classes, que estão dentro de outra classe.