Regras de declarações

 

Antes de escavarmos sobre as declarações de classes, vamos fazer uma rápida revisão das regras associadas com declarações de classe, declarações de importação e declarações de pacote em Java.

 

Somente pode haver uma classe pública por código fonte;

 

Comentários podem aparecer no início ou no fim de qualquer linha no código fonte; eles são independentes de qualquer uma das regras posicionamento discutidos aqui.

 

A classe publica tem que ser o nome do arquivo, por exemplo, quando declaramos uma classe chamada public PeterPan o nome do arquivo tem que ser chamada de PeterPan.java

 

Se a classe pertence a um pacote, a declaração do pacote tem que ser feita na primeira linha do programa antes de qualquer importação ou declaração de classe.

Se houver declaração de importação ela deve ser feita entre a declaração de pacote (se houver alguma), e a declaração de classe. Isto é, se não houver declaração de pacotes as linhas de importação devem ser escritas dentro da primeira linha do programa.

 

IMPORTANTE: Declarações de importações e pacotes se aplicam a todas as classes de um arquivo. Em outras palavras, não há como declarar várias classes em uns arquivos e tê-los em pacotes diferentes, ou usar diferentes importações.

 

Os arquivos fontes podem ter várias classes não públicas.

 

Arquivos de classes não publicas podem conter qualquer nome.

 

Modificadores

Estudaremos as peculiaridades dos modificadores mais adiante, mas por agora me atenho a dizer que os modificadores basicamente se dividem em duas categorias.

 

Modificadores de Acesso: public, protected, private, “defalut”;

 

Modificadores de Não Acesso: strictfp, final e abstract;

 

Veremos agora os modificadores de acesso e estudaremos eles mais adiante com programação. Principalmente quando utilizarmos encapsulamento e polimorfismo, dos padrões essenciais para a Orientação a Objeto.

 

A declaração de um modificador de acesso public diz que qualquer classe que está ou não no mesmo pacote pode acessar esse método, o que torna totalmente utilizável em qualquer classe do meu sistema.

 

Já o modificador de acesso protected é muito utilizado quando temos que acessar um método ou um atributo de uma superclasse. Isso veremos mais a frente.

 

O modificador de acesso private faz com que os métodos desta classe somente possam ser acessados da mesma classe, isto é, métodos private não podem ser acessados de outras classes.

 

Por que eu tenho que saber isso agora? Pois bem, como daqui por diante aprenderemos a estudar Java para a certificação através de programação devemos ver os modos de modificadores de acesso para que possamos utilizar boas praticas de programação.

 

Para que aprendamos a programar com foco em O.O. (Orientação a Objetos) temos que saber o que são atributos. Lembre-se sempre que uma classe tem atributos e métodos têm variáveis. Atributos armazenam dados dos objetos.

 

Quando declaramos um atributo em uma classe indicamos o tipo de dados que será armazenado nele.

 

Atributos podem ser de dois tipos:

 

Tipos primitivos (Ex: long, int, boolean);

 

Tipos de referênia (Ex: Array ou String, Integer, Date, Cliente, Pessoa);

 

Sintaxe para a declaração:

<tipo de atributo> identificador;

 

Exemplo Pessoa.java

public class Pessoa {

    long rg;

    String nome;

    String sobrenome;

    String dataNasc;

    String[] telefones;

}

 

Exemplo Data.java

public class Data {

      int dia;

      int mes;

      int ano;

}

 

Para acessarmos os atributos em outras classes utilizamos o nome do objeto mais o ponto e o nome do atributo. Exemplo

 

p.nome;

p.sobrenome;

d.dia;

 

Vamos ver um exemplo que utilize as classes acima relacionadas.

 

Exemplo CriaPessoa.java

public class CriarPessoa{

      public static void main(String[] args){

            //Criamos uma instancia para a classe de pessoas

            Pessoa p = new Pessoa();

            //Acessando os atributos da classe Pessoa para definir seus valores

            p.nome = "Angelo";

            p.sobrenome = "Vicente Filho";

            p.dataNasc = "11/09/1979";

            p.rg = "111111111";

            String myTelefones[] = {"1234567","7654321"};

            p.telefones = myTelefones;

            //Acessando os atributos para leitura

            System.out.println("Nome: "+p.nome+" "+p.sobrenome);

            System.out.println("Data Nasc: "+p.dataNasc);

            System.out.println("RG: "+p.rg);

            System.out.println("Telefones: ");

            for(int i = 0; i < p.telefones.length; i++){

                  System.out.println(p.telefones[i]);

            }

      }

}

 

Vejamos aqui a saída do código acima:

 

avfregdeclafig01.jpg 

Saída gerada a partir da execução CriaPessoa.

 

Muito bem nesta aula vimos sobre modificadores de acesso e um pouco de atributos, esses atributos foram acessados por uma segunda classe. No próximo artigo veremos um pouco sobre classe abstrata e encapsulamento, até mais.