Cuando quiero escribir una nueva clase, no entiendo en qué parte del código escribirla. Este ejercicio, desde el principio, aparece diferente:
/*
Version Web
*/
package es.codegym.task.pro.task14.task1407;
public class Solution {
public static void main(String[] args) {
Lion lion = new Lion();
lion.eat(new Food("carne"));
lion.eat(null);
}
}
/*
Version IntelijIdea
*/
package es.codegym.task.pro.task14.task1407;
/*
La alegría y la tristeza duermen en la misma cama.
*/
public class Food {
String name;
public Food(String name) {
this.name = name;
}
}
En el plugin de IntelijIdea no aparece "public class Solution". No supe qué hacer y di click en descargar la solución, recultó que era la misma que en la version IntelijIdea:
package es.codegym.task.pro.task14.task1407;
/*
La alegría y la tristeza duermen en la misma cama.
*/
public class Food {
String name;
public Food(String name) {
this.name = name;
}
}
Esta solución me la marcan correcta en la Web pero correcta en Intelij Idea. ¿no deberia ser la misma?.
Como programadora, yo supongo que la solución no esta completa, que debería incluir la clase Solution y tambien la clase Food. Lo unico que entiendo es que solo una de las clases puede ser pública, intenté lo siguiente en IntelijIdea, pero al ejecutarlo marca error: C:\Users\georg\codegym\11590510\codegym-project\src\es\codegym\task\pro\task14\task1407\Food.java:2:8
java: class Solution is public, should be declared in a file named Solution.java
package es.codegym.task.pro.task14.task1407;
public class Solution {
public static void main(String[] args) {
Lion lion = new Lion();
lion.eat(new Food("carne"));
lion.eat(null);
}
}
class Food {
String name;
public Food(String name) {
this.name = name;
}
}
Finalmente, decidí escribir la clase Food como anidada, sin éxito, IntelijIdea volvió a marcar error al ejecutar esto:
package es.codegym.task.pro.task14.task1407;
public class Solution {
public static void main(String[] args) {
Lion lion = new Lion();
lion.eat(new Food("carne"));
lion.eat(null);
}
class Food {
String name;
public Food(String name) {
this.name = name;
}
}
}
Entonces estyo toda revuelta, ¿como debo escribir un código completo y sin errores?
No le estoy entendiendo a esta plataforma, y esto ha ocurrido muchísimas veces en varios ejercicios. Decidí que ya no voy a seguir pagando una membresía el año que entra 2026. Porque hay muchas fallas como esta en la plataforma. Si Java ya es complicado, esto lo hace aun mas dificil, e imposible.
Ademas hay muchas fallas de traduccion al Español. Soy capaz de entender las fallas de traduccion del material teórico. Pero estas fallas en los códigos no me permiten comprender los códigos, y eso no esta bien.
No me gusta esta plataforma.
Una disculpa si soy muy agresiva, pero quisiera que alguien corrija estas fallas, no permiten una buena experiencia de aprendizaje.
Gracias, espero alguien sepa algo
¿donde agrego el código que falta?
En discusión
Comments (1)
- Populares
- Nuevos
- Antiguos
Debes iniciar sesión para dejar un comentario
Thomas
15 enero 2025, 21:27
If you need to create another class then you have several possibilities.
a) each class in its own file (the common way). The filename has to mach the classname. Create the files inside the same package and you won't need imports.
file: A.java
file: B.java
b) Possible but not common, one public class and other classes with the default access modifier. The file name needs to match the public class' name
file: A.java
c) A static inner class. It is easily possible to create an instance of a B type the usual way
file: A.java
d) A nested class. This is not recommended for usage with codegym. There are several reasons for that. One would be that it won't work as Codegym expects something different (i.e. the usual way to instanciate an object). To create an object of a nested class you first need to create an object of the containing class and this reference you need for the nested object.
file: A.java
+2