Inner Class

1 resposta
F

Oi Galera estou com duvidas sobre Inner Class… Estou implementando um exemplo do pattern Factory Method e estou com uma duvida sobre o escopo da inner class. Estou criando 2 classe, 1 classe Carro e uma Carro Factory… E a classe carroFactory ta com dificuldade de enchergar a inner class da classe Carro. Alguem sabe porque?

[color=blue]public abstract class Carro {

protected float valor;

public float getPreco() {

return valor;

}
public class Vectra extends Carro {
    public Vectra() {
        valor = 30000.0f;
    }
}


public class Omega extends Carro {
    public Omega() {
        valor = 50000.0f;
    }
}

public class Golf extends Carro {
    public Golf() {
        valor = 35000.0f;
    }
}

public class Gol extends Carro {
    public Gol() {
        valor = 20000.0f;
    }
}

}[/color]

[color=blue]public class CarroFactory {
public static Carro getCarro( String tipoCarro ) {

if( tipoCarro == null ) return null;
        else if( tipoCarro.equals("Vectra") ) return new Vectra();
        else if( tipoCarro.equals("Omega") ) return new Omega();
        else if( tipoCarro.equals("Golf") ) return new Golf();
        else if( tipoCarro.equals("Gol") ) return new Gol();
        else return null;
    }

}[/color][/color]
ou

[color=blue]public class CarroFactory {
public static Carro getCarro( String tipoCarro ) {

if( tipoCarro == null ) return null;
        else if( tipoCarro.equals("Vectra") ) return new Carro.Vectra();
        else if( tipoCarro.equals("Omega") ) return new Carro.Omega();
        else if( tipoCarro.equals("Golf") ) return new Carro.Golf();
        else if( tipoCarro.equals("Gol") ) return new Carro.Gol();
        else return null;
    }

}[/color][color=cyan][/color]

1 Resposta

mister_m

Simples. Você precisa declarar as inner classes de Carro como static (public static class) ou passar uma instância de Carro no construtor (new Vectra(new Carro())).

Criado 22 de março de 2005
Ultima resposta 22 de mar. de 2005
Respostas 1
Participantes 2