Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eddr

Um Pouco Sobre Classes

Recommended Posts

Recentemente tive um problema que postei em vários fóruns e ninguém conseguiu uma boa resposta, sei que é uma dúvida de iniciante, mas me espanto por ninguém poder ajudar, sendo que é essencial para poder programar em JAVA.

 

Posso estar errado, mas depois de muitos testes e ler bastante cheguei a seguinte conclusão:

 

Classes estáticas são classes que se pode acessar seu métodos e propriedas sem ter de instancia-las, por exemplo String varX = ClasseEstatica.TransformaInfo(varY);

O problema era o seguinte, sempre que eu tentava acessar uma variável de classe recebia a mensagem de erro dizendo que a classe deveria ser abstrata. Isso acontece pq é necessário instanciar a classe para acessar suas propriedades e métodos ou cria-los como estáticos.

 

Ex.:

 

public class MinhaClasse{     public String texto = "Hey";     public static void main(String args[]){          EscreveInfo(); //para ser sem instanciar                                    acessado o método deve ser estático          //System.out.println(texto); não irá funcionar pq texto           //não é estático          MinhaClasse classe = new MinhaClasse();          System.out.println(class.texto); //agora sim,                                      //texto é uma propriedade                                      //de um objeto,                                       //por ser public pode ser acessado     }     public static void EscreveInfo(){          System.out.println("Hey");     }}

espero ter ajudado alguém

 

falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom deixa eu ver se eu ajudo,

 

Para você acessar uma variavel de classe você esteja em outra, você precisa estanciar a classe que contem essa variavel... com o comando extends

 

Tipo assim..

 

public class MinhaClasse extends ClassePai

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

extends serve para herdar propriedades e métodos de outra classe, tornando essa uma classe filha para compor a hirarquia de classes. Que eu me lembre java não aceita hierarquia múltipla.

 

ex.:

 

public class Pai{     public void Write(){          System.out.println('hey');     }     public Pai(){               }}public class Filho extends Pai{     public Filho(){          Super(); //acesso aos metodos e propriedades da classe pai     }}public class Main(){     public static void main(String args[]){          Filho filho = new Filho();          filho.Write();     }}

um pouco sobre hierarquia... falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra isso existe a interface...

class Foo{ int x; public int getX (){  return x; } public void setX(int x){  this.x = x; }}interface Imprimivel{ public void imprimir();}class ClasseFilha extends Foo implements imprimivel{ public void imprimir(){  //implementação }}

com herança múltipla existe o risco de haver dois métodos com implementações diferentes... mas com assinaturas iguais, impedindo q haja sobrecarga de método. Como não existe implementação na interface, não há risco de existir duas implementações numa mesma classe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.