Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: KillerNemesis en 19 de Septiembre 2014, 23:04
-
Que tal, Estoy aprendiendo a "programar" gracias a ustedes, aun me falta bastante pero aqui estamos con todo y echandole ganas!!!
Pues tengo una duda que me tiene la cabeza echa un lio pues resulta que despues de terminar el codigo e intentar compilarlo me envia un mensaje de error en apartado de CONSTRUCTOR "añoEdicion" en el cual me dice Incompatible Types
por lo cual decidi dejar solo las comillas pero me salta otro error con el mismo mensaje pero me dice que el error esta en las comillas; porque puede estar ocurriendo esto?
De antemano agradezco su ayuda!
Saludos!
Este es mi codigo
public DiscoMusical () {
titulo = "Desconocido";
autor = "Desconocido";
anoEdicion = "2014";
formato = "MP3";
digital = "Itunes";
} //Cierre del constructor... el codigo continua...
//Metodo para establecer titulo de la cancion
public void setTitulo (String valorTitulo){
titulo = valorTitulo;//El titulo del objeto DiscoMusical
}//Cierre del metodo
//Metodo para establecer el autor del Objeto DiscoMusical
public void setAutor (String valorAutor) {
autor = "Autor" + valorAutor; //autor del objeto DiscoMusical
}//Cierre del metodo
//Metodo para establecer añoEdicion del objeto DiscoMusical
public void setAnoEdicion (int valorAnoEdicion){
anoEdicion = AnoEdicion;
}//Cierre del metodo
//Metodo para establecer digital del objeto DiscoMusical
public void setDigital (boolean valorDigital){
digital = valorDigital;
}//Cierre del metodo
//Metodo para obtener formato del Objeto DiscoMusical
public String getFormato () {return fotmato;}
}//Cierre de la Clase
-
Hola KillerNemesis!
Antes que nada te pongo en conocimiento, que para publicar codigo en el foro, primero debes de dar clic sobre el botón con el símbolo #, dicho botón lo encuentras en la parte arriba de donde escribes tus ejercicios. Cuando des clic sobre este botón te aparecerán unas etiquetas similares a estas: "[cod][/cod]" luego en medio de esas etiquetas pegas el codigo de tu clase, un ejemplo seria algo asi:
[cod]public class AquiPegasTuCodigo...[/cod]
Por otra parte, en cuanto a tu ejercicio, has pegado un codigo de clase con fragmentos de codigo faltante, olvidaste pegar lo que seria el comienzo del codigo, algo así como: public class DiscoMusical
{
private String titulo, autor, formato;
private int anoEdicion;
private boolean digital;
Si solo fue un descuido al copiar y pegar, supongo que tu clase cuenta con un fragmento de código como este que acabo de pegar, que de paso e usado para completar el código de tu clase e identificar lo posibles errores.
En respuesta a tu pregunta o duda Pues tengo una duda que me tiene la cabeza echa un lio pues resulta que después de terminar el codigo e intentar compilarlo me envia un mensaje de error en apartado de CONSTRUCTOR "añoEdicion" en el cual me dice Incompatible Types
Este error de compilación hace referencia a que estas asignando un valor a una variable cuyo tipo de valor no coincide con el tipo de variable, debes de tener en cuenta que una variable recibe un valor de su tipo declarado, por ejemplo si declaro: int edad = "10"; al intentar compilar, me saltara un error: imcopatible types: java.lang.String cannot be converted to int. Lo que de manera explicita, significa que estoy intentando asignar un valor que no es el tipo de valor esperado para la variable edad.
Como corregirlo? asigando un valor cuyo tipo sea compatible con el tipo de la variable edad, si edad es tipo int pues e de declarar int edad = 10;
Donde estuvo el error? el error en el primer caso, tubo en que intente asignar un valor tipo String (cadena de texto) a la variable edad, que espera un valor tipo int (numero entero).
No es lo mismo "10" que 10, todo lo que este entre "comillas dobles" sera un String, en tu código has inicializado todas las variables con un valor String, donde tienes variables que esperan como valor inicial un String ("cadena de texto entre comillas dobles"), otras un int (numero entero) y otra un valor boolean (true o false) .
En cuanto al constructor de la clase, lo correcto al inicializar variables en un constructor es asignar un valor inicial por defecto, un ejemplo de como inicializar las variables de esta clase en el constructor, de una forma favorable seria el siguiente:
public DiscoMusical ()
{
titulo = "Desconocido";
autor = "Desconocido";
anoEdicion = 0;
formato = "Desconocido";
digital = false;
} //Cierre del constructor
A si cada vez que crees un objeto de esta clase, cada objeto se creara con la finalidad de asignar un valor diferente (o igual) a cada una de sus variables, mediante su correspondiente metodo set.
Te recomiendo que analices lo que he intentado explicarte, y que rediseñes el código de tu ejercicio para que cumpla con lo que se pide en dicho ejercicio.
Cualquier duda no dudes en preguntar.
Saludos!
-
Hola KillerNemesis
Estoy de acuerdo con lo que dice Sniper
Tu error es una asignación de valor incorrecta
Aquí tienes un enlace donde se explica como inicializar variables
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=424:ejemplos-de-uso-de-tipos-de-variables-datos-en-java-declaracion-inicializacion-de-variables-cu00622b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=424:ejemplos-de-uso-de-tipos-de-variables-datos-en-java-declaracion-inicializacion-de-variables-cu00622b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)
Si tienes conocimientos básicos de programación puedes saltarte los primeros ejercicios, pero sino, deberías hacerlos todos, o al menos leerlos y decidir si es cosa sabida o que debas practicar.
Saludos
-
Les agradesco mucho sus comentarios Sniper y toni_apr me ayudaran mucho sus observaciones, y para futuras publicaciones no olvidare utilizar el boton (Insertar Codigo) fue un descuido que no pegue el inicio del codigo Sniper.
Si hare todos los ejercicios toni_apr porque soy virgen en esto de la `programacion jajaja! asi podre aprender mas sobre todos los posibles escenarios que pudieran ocurrir y como aprender a resolverlos!
Saludos!!!