Array + objeto

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”

[code]
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;
}[/code]

o que eu tenho q fazer?

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

Antes de setar o valor

[quote]
a[0].tenis=1;[/quote]

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:

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?

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ó ajeitando o código:

[code]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;
}

}[/code]

Um abraço! :grin:

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.

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

[quote=“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.[/quote]

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

:wink: