Aqui nós vamos aprender o que uma classe pode ter e como escrever uma classe.
Uma classe pode ter
Por enquanto usaremos somente classes públicas, porém os campos devem ser todos private, então toda classe será feita como abaixo
public class nomeDaClasse{ // nossos atributos private Tipo01 variavel01; private Tipo02 variavel02; private Tipo03 variavel03; // nossos constructors public nomeDaClasse(){ this.variavel01 = new Tipo01(); this.variavel02 = new Tipo02(); this.variavel03 = new Tipo03(); } public nomeDaClasse(Tipo01 aVariavel01){ this(); // Aqui eu estou chamando o constructor desta mesma classe this.variavel01 = aVariavel01; } public nomeDaClasse(Tipo01 aVariavel01, Tipo02 aVariavel02){ this(aVariavel01); // Aqui eu estou chamando o constructor desta mesma classe this.variavel02= aVariavel02; } // nossos métodos public void setVariavel01(Tipo01 aVariavel01){ this.variavel01 = aVariavel01; } public Tipo1 getVariavel01(){ return this.variavel01; } // Podemos definir métodos que tenham o mesmo nome, isto de chama overloading public void metodo01(){ // coisas que o método 01 faz } public void metodo01(Tipo aVariavel){ // coisas que o método 01 faz quando recebe uma variável do tipo "Tipo" } public void metodo01(Tipo aVariavel, OutroTipo aOutraVariavel){ // coisas que o método 01 faz quando recebe uma variável do tipo "Tipo", e uma outra variável do tipo "OutroTipo" } public Tipo04 metodo02(){ // outro método que retorna um objeto do tipo "Tipo04" } }
Fazer "overload" em um método quer dizer definir um outro método com o mesmo nome, mas com argumentos diferentes.
As regras para fazer "overload" são as seguintes:
Se dois métodos seguem as regras acima, eles podem, ou não, ter:
O modificadores que você precisa saber para esta matéria são o public e o private.
Tanto para campos de uma classe, quanto para métodos, as regras são as mesmas:
public: o campo, ou método, pode ser acessado por qualquer classeprivate: o campo, ou método, pode ser acessado apenas pelos campos e métodos da mesma classeAlém destes dois, temos mais dois modificadores:
protected: o campo, ou método, pode ser acessado apenas pelas classes que estão no mesmo pacote| Class | Package | Subclass (mesmo pacote) | Subclass (pacote diferente) | Mundo |
|---|---|---|---|---|
| public | + | + | + | + |
| protected | + | + | + | |
| Default | + | + | ||
| private | + |
staticUma variável com o modificador static é uma variável que pertence à classe, e não à um objeto da classe.
Isto quer dizer que o valor da variável é sempre o mesmo para todo objeto da mesma classe.
Se uma modificar o valor, este será modificado para todos os outros objetos.
Inclusive, por conveção, acesso à variável deve ser feito através do nome da classe, e não do objeto.
Um método static não poderá ter acesso ao valor das variáveis do objeto, somente às veriáveis static da classe.
Um método static pode criar objetos e poderá ter acesso à qualquer objeto que criou.
Um exemplo de método static é o "main"