Java - DUDA PROGRAMACIÓN ORIENTADA A OBJETOS PRICIPIANTE

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

DUDA PROGRAMACIÓN ORIENTADA A OBJETOS PRICIPIANTE

Publicado por M (7 intervenciones) el 12/02/2019 21:00:47
Buenas noches, quería preguntar cuál es el problema de mi programa. Y es que después de definir un automovil con sus correspondientes getters y definirlo en el main, a la hora de calcular la distancia que podría recorrer el coche con un deposito y un consumo determinado, me aparece el siguiente error: The method distancia(Automovil) is undefined for the type TestAutomovil.
¿Qué debería hacer para solucionar el error? ¿Alguien podría explicarme cuál es el fallo?

Ajunto la clase Automovil.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Automovil {
	private String modelo;
	private int deposito;
	private double consumo;
 
	//Constructor
	public Automovil (String modelo, int deposito, double consumo) {
		this.modelo = modelo;
		this.deposito = deposito;
		this.consumo = consumo;
	}
 
	//Getters
	public String getModelo() {
		return new String(modelo);
	}
 
	public int getDeposito() {
		return deposito;
	}
 
	public double getConsumo() {
		return consumo;
	}
 
	//Función de distancia
	public int distancia(Automovil c) {
		int d = (c.deposito * 100)/((int)c.consumo);
		return d;
	}
 
	//Función toString
	public String toString() {
		return "Modelo = " + modelo + "\nDepósito = " + deposito + "\nConsumo = " + consumo;
	}
 
 
}

Y el main:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class TestAutomovil {
	public static void main(String[] args) {
 
		//Defino los dos coches
		Automovil auto1 = new Automovil("Ford", 40, 6);
		Automovil auto2 = new Automovil("Volkswagen", 50, 5);
 
		//Imprimo por pantalla los dos coches
		System.out.println(auto1);
		System.out.println(auto2);
 
		//Distancia
		int d1 = distancia(auto1);
		int d2 = distancia(auto2);
 
		//Imprimo la distancia
		System.out.println(d1);
		System.out.println(d2);
 
 
	}
}

Muchas gracias por adelantado :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

DUDA PROGRAMACIÓN ORIENTADA A OBJETOS PRICIPIANTE

Publicado por Yamil Bracho (2315 intervenciones) el 12/02/2019 21:17:06
El metodo distancia() pertenece a la clase Automovil asi que debes usar el objeto.metodo() para ejecutarlo. Te quedaria :

int d1 = auto1.distancia();

int d2 = auto2.distancia(auto2);
Por convencion los metodos deberian tener nombre de acciones. Por ejemplo en vez de distancia, pudieras colocar CalcularDistancia(), GetDistancia() .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

DUDA PROGRAMACIÓN ORIENTADA A OBJETOS PRICIPIANTE

Publicado por M (7 intervenciones) el 12/02/2019 21:25:33
Muchísimas gracias!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar