Inner Class

2 respostas
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]

2 Respostas

Maicolino

Eu tambem fiz esse exemplo e cada classe eu coloquei em um arquivo .java separado e deu certo! Acho que pra funcionar vc vai ter que separar! :idea:

Rafael_Nunes

A questão é que não há Inner Class aí, o que você está fazendo é herança e polimorfismo.

Inner Class são classes dentro de outra classe, tipo:

public class Janela{

    ...codigo da janela
    
 class PegaEvento{
   ...codigo de pegar evento
 } 
}

Neste caso há uma relação especial entre a classe interna e a externa, porém o que você está fazendo é um objeto se comportar de acordo com o seu 'tipo', tendo um pai em comum.
Ou melhor, todo modelo de carro tem um comportamento em comum, que é o getValor(), herdado do objeto pai Carro.

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