Busca atributo em outra classe

9 respostas
P

Amigos,
tenho a seguinte situação,

class StaticAtributos {
    int a = 1;
}

class SemAtributo  extends StaticAtributos{
    int b = 2;
 }
 
  class Teste{
      public static void main(String[] args)
      {
          SemAtributo sa = new SemAtributo();
          sa.a;  // 1

//            StaticAtributos st = new StaticAtributos();
//            st.a; // 2
              
//              StaticAtributos sa = new StaticAtributos();
//              sa.a;  // 3
               
      }
 }

Quando tento acessar o atributo de qualquer classe como estou tentando fazer, nem compila !
O que ocorre ?

9 Respostas

Giulliano

Eu não entendi o que vc quis dizer com 1, 2, 3…

em todo caso sempre que tiver uma dúvida com relaçao á alguma exceção poste tb o erro que foi gerado …fica mais fácil de te ajudar…

[/]'s

P

Ok,
concordo e desculpa,
quero dizer que tanto p/ 1, 2 ou 3 ocorre Erro, “Not expression statement”.
Obrigado.

T

tenta colocar um modificador de acesso.

por exe.:

class StaticAtributos {

public int a = 1;

}

até mais.

Giulliano

Se vc não esta trabalhando com pacotes ainda… também sugiro que vc declare suas classes como públicas e os membros também (varíaveis e métodos)…e não esqueça de salvar tudo dentro da mesma pasta.

public class StaticAtributos {
          public int a = 1;
 }

se vc não coloca isso significa q os modificadores são de acesso nível pacote…(DEFAULT)

e como vc ainda não tem pacotes…caso queira usar tente

package teste;

public bláblá

[/]'s

davidbuzatto

Pelo amor! Nunca faça isso! E o encapsulamento? O que tem haver a utilização de pacotes e ter que colocar os atributos como public? Os atributos são na maioria das vezes privados e os métodos acessores que são públicos… Se um atributo é público vc pode alterá-lo para um valor que talvez deixe o estado do objeto inconsistente.

Até mais!

Sergio_Lima
Olá amigo tente assim;
package teste;

class StaticAtributos {
	
    public int a = 1;
}
class SemAtributo  extends StaticAtributos{
    public int b = 2;
 }
 
  class Teste{
      public static void main(String[] args)
      {
          SemAtributo sa = new SemAtributo();
          System.out.println(sa.a);  // 1

            StaticAtributos st = new StaticAtributos();
            System.out.println(st.a); // 2
              
             StaticAtributos se = new StaticAtributos();
              System.out.println(se.a);  // 3
               
      }
 }
Giulliano

Esta mais do que claro que o rapaz ainda esta em fase de aprendizado…acredito que encapsulamento seja importante a partir do momento que vc tem uma boa base sobre OO…

No momento ele esta preocupado com a app que não esta rodando…

como vc mesmo disse NA MAIORIA…e a regra de negócio dele no momento não define nada sobre isso

[/]'s

Sergio_Lima
Para evitar que nosso amigo davidbuzatto disse e com razão uma forma é criar métodos set e get assim deixando seus atributos privados:
package pVarios;

class StaticAtributos {
	
     private int a = 1;

	public int getA() {
		return a;
	}

	public void setA(int a) {
		this.a = a;
	}
}
class SemAtributo  extends StaticAtributos{
     private int b = 2;

	public int getB() {
		return b;
	}

	public void setB(int b) {
		this.b = b;
	}
 }
 
  class Teste{
      public static void main(String[] args)
      {
          SemAtributo sa = new SemAtributo();
          System.out.println(sa.getA());  // 1

            StaticAtributos st = new StaticAtributos();
            System.out.println(st.getA()); // 2
              
             StaticAtributos se = new StaticAtributos();
              System.out.println(se.getA());  // 3
               
      }
 }
Abraço...
davidbuzatto

Giulliano:

Esta mais do que claro que o rapaz ainda esta em fase de aprendizado…

Um motivo a mais para aprender a fazer da forma correta!

São raríssimas as ocasiões que justificam a utilização de atributos públicos, e no caso do nosso colega, não é uma delas.

Como falei, é melhor ensinar da forma correta do que ficar ensinando “truques” que só vão fazer com que a aplicação do cara se torne totalmente estruturada.

Sei que você quiz ajudar, mas ele têm que aprender da forma correta…

Até mais!

Criado 26 de julho de 2007
Ultima resposta 26 de jul. de 2007
Respostas 9
Participantes 5