Método para validação Ano Veículo?

Estou estudando sobre construtores em java e empaquei numa aqui que tá dificil!! (sou iniciante)
O negócio é o seguinte to tentando criar a validação de um carro pelo ano dele, sendo: >=1990 e <=2017 e pra isso usei a condicional if como vcs podem ver:

public Veiculo(int placa, String marca, String modelo, int ano){
	this.ano = ano;
	this.marca = marca;
	this.modelo = modelo;
	this.placa = placa;
	
	if(ano >=1990 && ano <=2017){
		System.out.println("Carro valido");
	}else{
		System.out.println("Carro invalido");
	}

Meu objetivo, o qual não estou obtendo exito e conto com a ajuda de vcs é: Em uma Classe chamada “Teste” pedir a entrada dos atributos, e depois imprimir a validação do carro.
Não sei se consegui explicar bem o que quero mas quem conseguir descriptografar o que eu disse e puder ajudar, agradeço! haha abraço

Você pode tentar usar a classe Scanner no seu método main…

public class TesteCarro {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);

        System.out.println("Informe a placa: ");
        int placa = entrada.nextInt();

        System.out.println("Informe a marca: ");
        String marca = entrada.nextLine();

        ...
        Veiculo veiculo = new Veiculo(placa, marca, modelo, ano);
        ...
    }
}

Sim isso eu fiz, eu so não to conseguindo usar o método para validar agora. =/
eu quero que meu método imprima pra mim no fimdo programa se o carro é valido ou não, sacas?

Só tirar essa lógica do construtor e colocá-la em um método…

public void validaCarro() {
    if(ano >=1990 && ano <=2017){
        System.out.println("Carro valido");
    }else{
        System.out.println("Carro invalido");
    }
}

Outra abordagem é criar um método que retorne true ou false…

public boolean isValido() {
    return (ano >=1990 && ano <=2017);
}

Depois no main é só chamar…

System.out.println("Carro válido? " + veiculo.isValido()); //true ou false

ótima sugestão, Obrigado mano!! xD

1 curtida