ATRIBUTOS:
quilometragem: representa quantos km ?rodados? tem o automóvel
combustivel: representa quantos litros de combustível tem no tanque do automóvel MÉTODOS:
abastecer (litros): acrescenta X litros ao tanque do automóvel
trafegar (distancia, litros): simula uma viagem, acrescentando X (distancia) à quilometragem do automóvel e consumindo X litros do tanque
combustivelNoTanque(): retorna a quantidade de combustível presente no automóvel
quilometragemCarro(): retorna a quilometragem do automóvel
Crie uma classe de teste (Principal), com o método main, e simule algumas viagens
Código
public class Automovel
{
// Atributos
double quilometragem;
double combustivel;
// métodos
double abastecer(double litros)
{
return combustivel += litros;
} // fim do método combustivel
double trafegar(double distancia, double litros)
{
quilometragem += distancia; // Acrescenta (x) a quilometragem
return quilometragem / abastecer(litros); // Retorna quantos quilometros por lito foi gasto
} // fim do método trafegar
void combustivelNoTanque(){
double tanque = trafegar(quilometragem, combustivel); // Recebe quantos km foi gasto
System.out.printf("Você tem %.2f litros\n", (tanque - abastecer(combustivel))); // retorna quanto tem no tanque pois total de Combustivel
// - o total quilometro
} // fim do método combustivelNoTanque
void quilometragemCarro() {
System.out.printf("Seu carro tem um total %.2f km já rodados", (quilometragem + trafegar(quilometragem, combustivel)) );
} // fim do metodo quilometragemCarro
}
Classe Principal
import java.util.Scanner;
public class Principal
{
public static void main(String[] args)
{
// Criando um obejto
Automovel carro = new Automovel();
// Cria um Scaner para obeter a entrada aparti de uma tela de comandos
Scanner input = new Scanner( System.in );
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
carro.combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
carro.quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer(carro.combustivel); // Passando o valor digitado para meus atributos
carro.abastecer(carro.quilometragem); // Passando o valor digitado para meus atributos
//Exibindo os dados
carro.combustivelNoTanque();
carro.quilometragemCarro();
} // fim do método main
} // fim da class Principal
Está rodando blza, o problema e que o resultado está errado da um valor negativo. Alguém pode mostra onde está o meu erro?
Tem várias coisas estranhas no teu programa. No método main, você fez isto:
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
carro.combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
carro.quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer(carro.combustivel); // Passando o valor digitado para meus atributos
carro.abastecer(carro.quilometragem); // Passando o valor digitado para meus atributos
Repare que você já setou o valor de combustível diretamente (com o dado que o usuário entrou). Ou seja, acaba abastecendo duas vezes. Acho que a ideia era esta:
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
double combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
double quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer(carro.combustivel); // Passando o valor digitado para meus atributos
carro.abastecer(carro.quilometragem); // Passando o valor digitado para meus atributos
Ou seja, criando variáveis locais e depois passando elas para o método abastecer. Os seus métodos combustivelNoTanque e quilometragemCarro não deveriam chamar os métodos abastecer e trafegar. Eles servem apenas para exibir o combustível (variável combustível) e quilometragem (variável quilometragem).
Me parece que você tá confundindo o objetivo dos métodos abastecer e trafegar. Eles servem apenas para modificar o objeto, não use eles para retornar valores. Você não deve usar o método abastecer para saber a quantidade de combustível, por exemplo. Use apenas quando quer abastecer.
Então modifiquei o programa, mas fiz umas coisas a mais que não tinha percebido o método abastecer e trafegar tem que ser do tipo void pois não está pedindo retorno. E sim os métodos combustivelNoTanque e quilometragemCarro que tem retorno. Mas está mostrando resultados zerados.
Veja
[code]public class Automovel
{
// Atributos
double quilometragem;
double combustivel;
// métodos
void abastecer(double litros)
{
combustivel += litros;
} // fim do método combustivel
void trafegar(double distancia, double litros)
{
quilometragem = ( quilometragem + distancia) / litros; // Acrescenta (x) a quilometragem
} // fim do método trafegar
double combustivelNoTanque(){
return combustivel;
} // fim do método combustivelNoTanque
double quilometragemCarro() {
return quilometragem;
} // fim do metodo quilometragemCarro
}[/code]
import java.util.Scanner;
[code]public class Principal
{
public static void main(String[] args)
{
// Criando um obejto
Automovel carro = new Automovel();
// Cria um Scaner para obeter a entrada aparti de uma tela de comandos
Scanner input = new Scanner( System.in );
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
double combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
double quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer(carro.combustivel); // Passando o valor digitado para meus atributos
carro.abastecer(carro.quilometragem); // Passando o valor digitado para meus atributos
//Exibindo os dados
System.out.println( carro.combustivel );
System.out.println( carro.quilometragemCarro());
} // fim do método main
Seu método de trafegar está errado também.
sua quilometragem não tem nada a ver com litros …
ao chamar o método trafegar, apenas adicione a quilometragem e diminua na quantidade de litros.
[code]
public class Automovel
{
// Atributos
double quilometragem;
double combustivel;
// métodos
void abastecer(double litros)
{
combustivel += litros;
} // fim do método combustivel
void trafegar(double distancia, double litros)
{
quilometragem = ( quilometragem + distancia) / litros; // Acrescenta (x) a quilometragem
} // fim do método trafegar
double combustivelNoTanque(){
return combustivel;
} // fim do método combustivelNoTanque
double quilometragemCarro() {
return quilometragem;
} // fim do metodo quilometragemCarro
}[/code]
import java.util.Scanner;
public class Principal
{
public static void main(String[] args)
{
// Criando um obejto
Automovel carro = new Automovel();
// Cria um Scaner para obeter a entrada aparti de uma tela de comandos
Scanner input = new Scanner( System.in );
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
double combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
double quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer( combustivel ); // Passando o valor digitado para meus atributos
carro.abastecer( quilometragem ); // Passando o valor digitado para meus atributos
//Exibindo os dados
System.out.println( carro.combustivelNoTanque() );
System.out.println( carro.quilometragemCarro());
} // fim do método main
} // fim da class Principal
Blza o combustivel já esta exibindo. Você estava certo. Mas a quilometragem só mostra zerada?
[quote=Astesio]
Blza o combustivel já esta exibindo. Você estava certo. Mas a quilometragem só mostra zerada?[/quote]
Seu método de trafegar está errado também.
sua quilometragem não tem nada a ver com litros …
ao chamar o método trafegar, apenas adicione a quilometragem e diminua na quantidade de litros.
Na verdade ainda não deu.
Mas para falar a verdade estou meio sem graça fica toda hora amolando vocês. Ele ainda continua zerado. veja
public class Automovel
{
// Atributos
double quilometragem;
double combustivel;
// métodos
void abastecer(double litros)
{
combustivel += litros;
} // fim do método combustivel
void trafegar(double distancia, double litros)
{
quilometragem += distancia;
combustivel -= litros;
} // fim do método trafegar
double combustivelNoTanque(){
return combustivel;
} // fim do método combustivelNoTanque
double quilometragemCarro() {
return quilometragem;
} // fim do metodo quilometragemCarro
}[/code]
[code]import java.util.Scanner;
public class Principal
{
public static void main(String[] args)
{
// Criando um obejto
Automovel carro = new Automovel();
// Cria um Scaner para obeter a entrada aparti de uma tela de comandos
Scanner input = new Scanner( System.in );
//Ler informação do usuario
System.out.print(" Quanto Litros você deseja abaster?: ");
double combustivel = input.nextDouble(); // Armazenando o valor digitado na variavel criada
System.out.print(" Informe qual será a distancia a ser pecorrida?: ");
double quilometragem = input.nextDouble(); // Armazenando o valor digitado na variavel criada
//Passando os valores para nossa classe
carro.abastecer( combustivel ); // Passando o valor digitado para meus atributos
carro.abastecer( quilometragem ); // Passando o valor digitado para meus atributos
//Exibindo os dados
System.out.println( carro.combustivelNoTanque() );
System.out.println( carro.quilometragemCarro());
} // fim do método main
} // fim da class Principal