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