Ir ao conteúdo

Posts recomendados

Postado

Boa noite, estou fazendo um trabalho, mas fiquei preso, não consigo evoluir.

 

O que está acontecendo é o seguinte, tenho uma aplicação que eu coloco os valores e etc.

Na classe carro por exemplo eu criei um método "ACELERAR" que deveria retonar o seguinte "Aumentar o RPM em multiplos de 100" eu coloquei :

"  public void acelerar(){
       System.out.println(motor.rpm+=100);
}" Mas dá erro, não funciona, já tentei de outras maneiras, mas não consigo. Nesse metodo ACELERAR eu queria que pegasse o valor do RPM da classe motor e fizesse o calculo e retornasse o valor certo. Alguém ajuda, por favor.

Tem outras classes que utilizariam o mesmo método, porém retornaria valores diferentes, no carro "Aumentar o RPM em multiplos de 100", na outra Classe Onibus" Aumentar o RPM em multiplos de 200" e na classe moto Aumentar o RPM em multiplos de 50"

 

package Aplicacao;

import automoveis.Carro;

//APLICAÇÃO

public class Automoveis {

    public static void main(String[] args) {
        // TODO code application logic here
        Motor m = new Motor();
        
        System.out.println("===========CARRO===========");
        
        Carro car = new Carro(10,10,"Ford","Fo123","Felipe",80000);
        
        m.setRpm(100);
        car.imprimir();
        System.out.println("Desconto:"+car.desconto());

		//PROBLEMA ESTA AQUI NO ACELERAR e no DESACELECAR

        System.out.print("Acelerando: ");
        car.acelerar();
        System.out.print("Desacelerando: ");
        car.desacelerar();
        car.frear();
        car.virarDireita();
        car.virarEsquerda();
        System.out.println("");
package automoveis;

import java.util.Scanner;


public abstract class SuperClasse {
    
    int NumPassageiros;
    String marca, placa, proprietario;
    double preco;
    Motor motor;

    public Motor getMotor() {
        return motor;
    }

    public void setMotor(Motor motor) {
        this.motor = motor;
    }
    

    public void setNumPassageiros(int NumPassageiros) {
        this.NumPassageiros = NumPassageiros;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public void setProprietario(String proprietario) {
        this.proprietario = proprietario;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }

    public int getNumPassageiros() {
        return NumPassageiros;
    }

    public String getMarca() {
        return marca;
    }

    public String getPlaca() {
        return placa;
    }

    public String getProprietario() {
        return proprietario;
    }

    public double getPreco() {
        return preco;
    }
    
    public void cadastrar (int n, String m, String p, String pl, double pr){
        setNumPassageiros(n);
        setMarca(m);
        setProprietario(p);
        setPlaca(pl);
        setPreco(pr);
    }
   
    public abstract String frear ();
    public abstract String virarDireita ();
    public abstract String virarEsquerda ();
    public abstract double desconto ();
    
    public void entradaDados(){
        Scanner ler = new Scanner(System.in);
        System.out.print("Digite o Numero de Passageiros: ");
        setNumPassageiros(Integer.parseInt(ler.nextLine()));
        System.out.print("Digite o Marca: ");
        setMarca(ler.nextLine());
        System.out.print("Digite o Proprietario: ");
        setProprietario(ler.nextLine());
        System.out.print("Digite a Placa: ");
        setPlaca(ler.nextLine());
        System.out.print("Digite o preco: ");
        setPreco(Double.parseDouble(ler.nextLine()));    
    } 
     public void imprimir(){
       System.out.println("Idade Minima: "+Interface.IdadeMinimaMotorista);
       System.out.println("Tempo de uso Máximo: "+Interface.TempoMaxUSO);  
       System.out.println("Numero de Passageiros: "+NumPassageiros);  
       System.out.println("Marca: "+marca);
       System.out.println("Proprietario: "+proprietario);
       System.out.println("Placa : "+placa);
       System.out.println("Preço: "+preco);
    }

   //Construtores
	//... Foram retirados para o codigo não ficar grandes 
} 
package automoveis;


public interface Interface {
    int TempoMaxUSO = 15;
    int IdadeMinimaMotorista =18;
    void getTempoMaxUSO();
    void getIdadeMinimaMotorista();
    void frear();
    void virarDireita();
    void virarEsquerda();
}
package automoveis;

import java.util.Scanner;


public class Motor  {
    
    private String marca, tipoCombustivel;
    int rpm, rpmMaximo;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getTipoCombustivel() {
        return tipoCombustivel;
    }

    public void setTipoCombustivel(String tipoCombustivel) {
        this.tipoCombustivel = tipoCombustivel;
    }

    public int getRpm() {
        return rpm;
    }

    public void setRpm(int rpm) {
        this.rpm = rpm;
    }

    public int getRpmMaximo() {
        return rpmMaximo;
    }

    public void setRpmMaximo(int rpmMaximo) {
        this.rpmMaximo = rpmMaximo;
    }
    
       public void cadastrar (String m, String t, int r, int rm){
        setMarca(m);
        setTipoCombustivel(t);
        setRpm(r);
        setRpmMaximo(rm);
    }
     public void entradaDados(){
        Scanner ler = new Scanner(System.in);
        System.out.print("Digite a Marcaa: ");
        setMarca(ler.nextLine());
        System.out.print("Digite o Tipo de Combustível: ");
        setTipoCombustivel(ler.nextLine());
        System.out.print("Digite RPM: ");
        setRpm(Integer.parseInt(ler.nextLine()));  
        System.out.print("Digite RPM Máximo: ");
        setRpmMaximo(Integer.parseInt(ler.nextLine())); 
        
    }
     
     public void imprimir(){
       System.out.println("Marca: "+marca);   
       System.out.println("Tipo de Combustível: "+tipoCombustivel);  
       System.out.println("RPM: "+rpm);  
       System.out.println("RPM Máximo: "+rpmMaximo);  
    }
   
}
package automoveis;

import java.util.Scanner;

public class Carro extends SuperClasse {
    
    private int volumeMala;
    
    
    //Construtores
    ... "Já foi feito tudo certo, para o código não ficar granbde eu retirei

    //Setters e Getters

    public int getVolumeMala() {
        return volumeMala;
    }

    public void setVolumeMala(int volumeMala) {
        this.volumeMala = volumeMala;
    }

    public String frear (){
        System.out.println("Carro Freando");
        return null;
    }
    public String virarDireita (){
        System.out.println("Carro virando para direita");
        return null;
    }
    public String virarEsquerda(){
        System.out.println("Carro virando para esquerda");
        return null;
    }
    public double desconto (){
        return preco= preco * 0.50;
    }
    
    public void cadastrar (int v){
        super.cadastrar(v, marca, placa, placa, preco);
        setVolumeMala(v);
    }
     public void entradaDados(){
        Scanner ler = new Scanner(System.in);
        super.entradaDados();
        System.out.print("Digite o Volume da Mala: ");
        setVolumeMala(Integer.parseInt(ler.nextLine()));
    }
     
     public void imprimir(){
         super.imprimir();
       System.out.println("Volume da Mala: "+volumeMala);  
       
    }
     
   public void acelerar(){
       System.out.println(motor.rpm+=100);
}
    public void desacelerar(){
        System.out.println(100);
}
  

 

Postado

+= é um operador de atribuição e não de operação matemática. Por isso ele não funciona dentro do System.out.println();

 

Você tem duas opções:

// Atribuir o novo valor e depois imprimir
// Essa é a forma mais adequada para o seu projeto
public void acelerar() {
    motor.rpm += 100;
    System.out.println(motor.rpm);
}

// Imprimir com o valor temporariamente modificado
// Note que dessa maneira, motor.rpm não terá o valor modificado
public void acelerar() {
    System.out.println(motor.rpm + 100);
}

 

Postado
11 horas atrás, AdrianoSiqueira disse:

+= é um operador de atribuição e não de operação matemática. Por isso ele não funciona dentro do System.out.println();

 

Você tem duas opções:


// Atribuir o novo valor e depois imprimir
// Essa é a forma mais adequada para o seu projeto
public void acelerar() {
    motor.rpm += 100;
    System.out.println(motor.rpm);
}

// Imprimir com o valor temporariamente modificado
// Note que dessa maneira, motor.rpm não terá o valor modificado
public void acelerar() {
    System.out.println(motor.rpm + 100);
}

 

 

O que ele fez está certo. Uma operação de atribuição, além de alterar o valor, retorna o novo valor da variável.

int x = 10;
System.out.println(x += 10); //Imprime 20
System.out.println(x = 5); //Imprime 5

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!