[RESOLVIDO] args[] da main

5 respostas
ECO2004

Olá, pessoal!

Eu tenho uma dúvida com relação a uma código. É a implementação do padrão de projeto Factory.

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;   
    }   
}
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;   
    }   
}
public class FactoryExample {   
    public static void main( String args[] ) {   
        //parâmetro passado como argumento no console   
        //pega a instância do tipo do carro   
        Carro carro = CarroFactory.getCarro( args[0] );   
        //mostra o valor   
        if( carro != null ) {   
            System.out.println( "Preço: " + carro.getPreco() );   
        }   
    }   
}

A minha dúvida está com relação à linha

Carro carro = CarroFactory.getCarro( args[0] );

Não entendo o parâmetro args[0]. Alguém poderia me fazer o favor de explicar?

5 Respostas

Roger75

Quando você executa a classe, pode passar parâmetros que serão lidos pelo programa.
Exemplo: java NomedaClasse abacaxi

“abacaxi” entraria como args[0].

Andre_Fonseca

o args[] é um array de String, o args[0] é a primeira posição deste array

abs

ECO2004

Roger75:
Quando você executa a classe, pode passar parâmetros que serão lidos pelo programa.
Exemplo: java NomedaClasse abacaxi

“abacaxi” entraria como args[0].

Não entendi…

No meu exemplo, eu passo ‘args[0]’ ao método estático ‘getCarro’. Que valor tem ´args[0]´?

ViniGodoy

Se você não executar pelo console, dará erro.

Mas se vc executar assim:
java FactoryExample Vectra

args[0] terá o valor Vectra.

ECO2004

ViniGodoy:
Se você não executar pelo console, dará erro.

Mas se vc executar assim:
java FactoryExample Vectra

args[0] terá o valor Vectra.

Entendi…obrigado…

Criado 7 de julho de 2011
Ultima resposta 7 de jul. de 2011
Respostas 5
Participantes 4