Iniciando objetos já com um valor de atribuito

3 respostas
R

Seguinte pessoal, eu tenho uma classe chamada Peão, quero que quando eu instancie um objeto, esse objeto receba um valor de atributo começando pelo zero. Assim que o segundo é instanciado, esse segundo fica com o valor do atributo dele valendo 1, o outro peão instanciado vale 2 e assim por diante… Como faço isso?

SUPER CLASSE:

public class Pecas{

char x;// Do a ao g
char y;// Do 0 ao 7

String posição;

int posreal;

String tipo;

public byte Mover(byte x, byte y){

return x;

}

public void posreal(int i) {

posreal = 2;

}
}

CLASSE EXTENDIDA:

public class Peao extends Pecas{

public Peao(){	

tipo="Peão";

posreal=0;[color=red]Quero que cada peão receba esse valor +1... então casa um deles vai ter um valor do atributo posreal diferente.[/color]

}
}

3 Respostas

Fenak

Vc pode setar esse valor usando o construtor da classe e o controle desses números através da classe q instancia os peões…!

Vê se vc descobre como fazer usando isso! ; )

davidbuzatto

Para você ter esse contador de objetos do tipo Peão (na verdade não vai ser um contador, pois ele não será decrementado quando algum Peão for "deletado" é isso né?) você pode criar um campo estático na classe que em cada vez que ela for instanciada, dentro do contrutor vc incrementa esse contador e atribui a algum outro campo o valor gerado (pois com o passar da execução esse valor será mudado e vc precisa de uma forma de manter esse valor na classe.

Por exemplo

public class Peao {

    private static int cont;
    private int numero;
    
    public Peao() {
        // guarda o valor de cont em numero (não será alterado)
        numero = cont;
        // incrementa o valor de cont que é um campo estático compartilhado Peao
        cont++;
    }
    
    public int getNumero() {
        return numero;
    }
    
    public static void main( String[] args ) {
        
        Peao p0 = new Peao();
        Peao p1 = new Peao();
        Peao p2 = new Peao();
        Peao p3 = new Peao();
        
        System.out.println( "numero p0:" + p0.getNumero() );
        System.out.println( "numero p1:" + p1.getNumero() );
        System.out.println( "numero p2:" + p2.getNumero() );
        System.out.println( "numero p3:" + p3.getNumero() );
        
    }
    
}
LPJava

http://www.guj.com.br/posts/list/50115.java

Criado 20 de fevereiro de 2008
Ultima resposta 21 de fev. de 2008
Respostas 3
Participantes 4