Não imprime

6 respostas
faicoxim
class motor
{
	//ATRIBUTOS
	int velocidade;
	String fabricante;
	int voltagem;
	String ligadesliga;
	
	//METODOS
	void ligamotor()
	{
		ligadesliga = "ON";
		System.out.println(ligadesliga);
	}
		
	void desligamotor()
	{
		ligadesliga = "OFF";
		System.out.println(ligadesliga);
	}
		
	void velocidademotor()
	{
		velocidade = 200;
		System.out.println(velocidade + " KM/H ");
	}
}
class motor2 extends motor
{
	
	void aumentarvelocidade()
	{
		if (velocidade < 0)
			velocidade++;
			{
			
				System.out.println(velocidade);
			}
	}
		
	void reduzirvelocidade()
	{
		if (velocidade > 5000)
			velocidade--;
	}
	
}
class testemotor
{
	public static void main (String args[])
	{
		motor mt = new motor();
		mt.ligamotor();
		mt.desligamotor();
		mt.velocidademotor();
		mt.aumentarvelocidade();
	}
}

Ali no class motor2 extends motor quero que aumente a velocidade e não passe de 5000, porque quando compilo da o seguinde erro

C:\java\motor.java:56: cannot find symbol
symbol : method aumentarvelocidade()
location: class motor
mt.aumentarvelocidade();
^
1 error

6 Respostas

sowyer

nem lia a classe… fui direto no erro…

mudo o método para esse:

void aumentarvelocidade(){ if (velocidade < 0){ velocidade++; System.out.println(velocidade); } }

caio_ferreira

cria duas classes para fazer isso amigo.

faz uma assim

class motor   
{   
    //ATRIBUTOS   
    int velocidade;   
    String fabricante;   
    int voltagem;   
    String ligadesliga;   
       
    //METODOS   
    void ligamotor()   
    {   
        ligadesliga = "ON";   
        System.out.println(ligadesliga);   
    }   
           
    void desligamotor()   
    {   
        ligadesliga = "OFF";   
        System.out.println(ligadesliga);   
    }   
           
    void velocidademotor()   
    {   
        velocidade = 200;   
        System.out.println(velocidade + " KM/H ");   
    }   
 
  
    void aumentarvelocidade()   
    {   
        velocidade = 10;
        while(velocidade < 5000)
        {
            velocidade +=10;
            System.out.println("Velocidade: " + velocidade);
        }
    }
           
    void reduzirvelocidade()   
    {   
        if (velocidade > 5000)   
            velocidade--;   
    }   
       
}

e uma para testar o motor

class testemotor   
{   
    public static void main (String args[])   
    {   
        motor mt = new motor();   
        mt.ligamotor();    
        mt.velocidademotor();   
        mt.aumentarvelocidade();  
        mt.desligamotor();  
    }   
}

desse modo o motor vai aumentar sua velocidade de 10 em 10, quando chegar no 5000, ele vai parar e passar para o proximo metodo, de desligar o motor.

B

O problema está na declaração do método, aumentavelocidade pertence somente à classe motor2, e você tenta chamar o método com usando um objeto declarado como motor.

Brn_SI

Neste caso ai billcaio vc esta criando o objeto mt direto da classe motor e vc esta chamando o metodo da classe motor2, desta maneira que vc esta fazendo nao tem como pq a classe motor nao esta extendendo da classe motor2 mas sim ao contrario intao se vc fizer desta maneira vc conseguirá

public class testemotor {

	public static void main(String args[]){

		motor2 mt = new motor2();
		mt.ligamotor();
		mt.desligamotor();
		mt.velocidademotor();
		mt.aumentarvelocidade();
	}
}

A sua classe [b] motor2[b] esta extendendo da classe [b] motor[b] e neste caso a classe [b] motor2[b] tem acesso aos seus metodos e os metodos da classe [b]motor[b] e assim vc conseguirá imprimir.

flw.

caio_ferreira

é, assim, ta certo, eu nao criei a classe motor 2.
:smiley:

Brn_SI

:lol:

Foi mal billcaio, era para o faicoxim

:roll: :roll:

Criado 13 de janeiro de 2009
Ultima resposta 14 de jan. de 2009
Respostas 6
Participantes 5