Array + objeto

8 respostas
N

por favor ajudem-me
Estou apanhando
a idéia do prog é a seguinte
criei uma classe person com dados sobre a pessoa em questão(variaveis)
e na classe "principal"(ObjectArray) eu quero criar um array q contenha as variaveis da classe person. A idéia é criar um tipo de cadastro.
Qnd boto p roda rno eclipse aparece a seguinte mensagem:

java.lang.NullPointerException
at ObjetoArray.main(ObjetoArray.java:23)
Exception in thread "main"

public class ObjectArray{

public static void main(String[] args) {
		
		person pess= new person() ;
		
		 person a[]=new person[100];
				 
		
		 a[0].tenis=1;
		 String as=String.valueOf(a[0].tenis);
		 System.out.println(as);
		
	}

}

class person{
	int blusa;
	int tenis;
}

o que eu tenho q fazer?

8 Respostas

J
class person{
	   int blusa;
	   int tenis;
	}


public class Deleteme {

	
	
		public static void main(String[] args) {
	
			
		      person pess= new person() ;
		      
		       person a[]=new person[100];
		       

		       a[0] = new person(); //faltou isso, pequeno gafanhoto.
		            
		      
		       a[0].tenis=1;
		       String as=String.valueOf(a[0].tenis);
		       System.out.println(as);
		      
		   }

	

}

Explicação: Você criou um array para suportar objetos do tipo person, mas não instanciou (ou seja, alocou) um objeto person na posição 0 do array.

É isso aí!

www.jornaljava.com

http://feeds.feedburner.com/jornaljava

B

Antes de setar o valor


a[0].tenis=1;

você deve adicionar um objeto na posição [0]

Exemplo:
a[0] = new person();

ps. Todos os nomes de classe devem começar com letras maiúsculas. :wink:

N

ok
muito obrigado pela ajuda, mas estou tentando aprender esse troço no muque
consertei a parte da implementação do objeto
só que meu array tem 100 posições e eu naum quero fazer

a[0]=new person();

a[1]=new person();

.

.

.

a[99]=new person();

logo tentei fazer o seguinte

class person{
      int blusa;
      int tenis;
   }


public class ObjectArray{

   
   
      public static void main(String[] args) {
   
         
           
             person a[]=new person[100];
             
               
           for (int i=0; i>100;i++){
            a[i]=new person();}
            
           a[1].tenis=2;
            
            
            System.out.println(a[1].tenis);
           
         }

   

}

ocorreu o mesmo erro
podem me ajudar?

S

O erro está no for:

for (int i=0; i>100;i++){

Repara no i>100… lol pois é, os tais erros estúpidos de distracção…acontece-me tanta vez, ás vezes uma pessoa passa horas á volta do código e vê aquilo tudo certo quando é apenas um mero operador que está trocado grrrrrr!

Correcto:

for (int i=0; i<100;i++){

:wink:

S

Só ajeitando o código:

public class ObjectArray{

public static void main(String[] args) {
       // cria uma instância de Person
       Person p = new Person();
       // seta os valores para suas variáveis de instância
       p.setTenis(12);
       p.setBlusa(15);
      
       Person a[] = new Person[100];
       a[0] = p;
       
       // imprime os valores
       System.out.println("Tenis: " +a[0].getTenis());
       System.out.println("Blusa: " +a[0].getBlusa());
   }

}

class Person {
   // usei encapsulamento, você acessará as variáveis através dos métodos
   private int blusa;
   private int tenis;
   
   // this.blusa se refere ao objeto Person
   public int getBlusa(){
   	return this.blusa;
   }
   
   public void setBlusa(int b){
   	this.blusa = b;
   }
   
   public int getTenis(){
   	return this.tenis;
   }
   
   public void setTenis(int t){
   	this.tenis = t;
   }
   
}

Um abraço! :grin:

N

Agradeço pela ajuda serjaumfantin. mas esse encapsulamento tornou o código enorme, e muito mais dificil d entender(fui salvo pelos seus comentários).
Não consegui ver muita utilidade nisso.

C

É meu amigo… o que seria da OO sem o Encapsulamento…
DICA: Estudar OO!

L

“nickrj1”:
Agradeço pela ajuda serjaumfantin. mas esse encapsulamento tornou o código enorme, e muito mais dificil d entender(fui salvo pelos seus comentários).
Não consegui ver muita utilidade nisso.

Se você não conseguiu ver utilidade, então lê sobre encapsulamento e tente entender, porque é realmente util e necessário.

:wink:

Criado 18 de julho de 2007
Ultima resposta 19 de jul. de 2007
Respostas 8
Participantes 7