jdk for developers compiler compile java compilation

for - java jdk



La aplicaciĆ³n Java no muestra salida (5)

Java distingue entre mayúsculas y minúsculas:

Class HondaCivic implements Car {

no es lo mismo que la sintaxis legal:

class HondaCivic implements Car {

Aquí está mi código actualizado:

package car1;

clase pública Principal {

public static void main (String [] args) {

clase HondaCivic implementa car1 {

int speed = 0; int rpm = 0; int gear = 1; public void speedUp(int Increment) { speed = speed + Increment;} public void applyBrakes(int Decrement) { speed = speed - Decrement;} public void changeRpm(int NewValue) { rpm = NewValue;} public void changeGear(int NewValue) { gear = NewValue;} public void printStates() { System.out.println("speed:"+speed+" rpm:"+rpm+" gear:"+gear);}

}

class CarDemo{ public void main(String[] args) { // Two different Cars HondaCivic car1 = new HondaCivic(); HondaCivic car2 = new HondaCivic(); // Methods for cars car1.speedUp(30); car1.changeGear(3); car1.changeRpm(3000); car1.applyBrakes(15); car1.printStates(); car2.speedUp(30); car2.changeGear(3); car2.changeRpm(2000); car2.applyBrakes(15); car2.speedUp(5); car2.changeGear(1); car2.printStates(); }

}}}

La aplicación no mostrará la salida. No tengo ni idea de qué hacer. ¿Algún consejo?


Java, como la mayoría de los lenguajes de programación, distingue entre mayúsculas y minúsculas. Class no es lo mismo que class .


Puedo detectar varios problemas, algunos de los cuales ya ha solucionado:

  1. Class debe ser de class (minúscula) en la definición de la segunda clase.
  2. Car no es una interfaz, por lo que debe extend en lugar de implementarlo.
  3. HondaCivic no es abstracto o una interfaz, por lo que debe tener cuerpos de métodos para cada uno de sus métodos; alternativamente, deje los métodos fuera de HondaCivic, en cuyo caso se usarán los métodos de Car .

En su diseño de clase actual, tendría mucho más sentido si se fabricara un objeto Honda Civic en lugar de una clase, ya que no tiene una nueva funcionalidad:

Car hondaCivic = new Car();


Tu código tiene muchos problemas.

Primero haz que Car sea una interfaz como interface Car

Segundo Mueva todo el código de HondaCivic a Car y todo el código de Car a HondaCivic , es decir, cambie el código porque la interfaz solo puede tener declaraciones de métodos y variables y no implementación. La clase que implementa la interfaz debe proporcionar la implementación de TODOS estos métodos.

Por último, en el método principal escribe este código en lugar de lo que tienes para hacer instancias de automóviles.

Car car1 = new HondaCivic(); Car car2 = new HondaCivic();

Luego compilará y ejecutará.


Una interfaz necesita implementar TODOS los métodos de su padre. Estás implementando todo excepto por

printStates()

Además, verifique la sensibilidad de mayúsculas y minúsculas en su declaración de clase.

editar: nvm no está declarado como abstracto