Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Mario R. Rancel

Páginas: 1 ... 12 13 14 15 16 [17] 18 19 20 21 22 ... 32
321
Hola 5378453 para facilitar la revisión de ejercicios es conveniente que introduzcas en el título la referencia de la entrega del curso, en este caso CU00718B

El código está bien solo te voy a indicar algunos detalles.

Recomendamos incluir <meta charset="utf-8"> dentro de las etiquetas head para que las palabras acentuadas se vean bien en todos los navegadores

   <head>
      <title>Ejercicio</title>
      <meta charset="utf-8">
   </head>

El ejercicio pedía crear una lista ordenada cuyos elementos fueran Doctores, Ayudantes y Auxiliares. Pero has usado ul (unordered list) en vez de ol (ordered list)

Con los cambios indicados el código quedaría:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejercicio</title>
<meta charset="utf-8">
</head>
<body>
<ol>
<li>Doctores</li>
<ul style="list-style-type:circle">
<li>Juana Pérez</li>
<li>Alberto Márquez</li>
<li>Raúl Moreno</li>
</ul>
<hr style="height:10px;color:blue;width:50%;background-color:blue">
<li>Ayudantes</li>
<ul style="list-style-type:circle">
<li>Noelia Suárez</li>
<li>Abel Rebollo</li>
</ul>
<hr style="height:10px;color:blue;width:50%;background-color:blue">
<li>Auxiliares</li>
<ul style="list-style-type:circle">
<li>Silvia Estévez</li>
<li>Angela González</li>
<li>Cuarthemoc Adanez</li>
</ul>
</ol>
</body>
</html>

Saludos

322
Saludos Tony, cuando escribas en el foro la solución de un ejercicio añader el código del ejercicio en el título, por ejemplo CU01010D. También recomendamos presentar los ejercicios en orden, es decir, en este caso en primer lugar la solución al ejercicio 1 y luego la solución al ejercicio 2.

Tu código para el ejercicio 2 está bien.

El ejercicio 1 quedaría así:

Código: [Seleccionar]
<html>
<head>
<meta charset="utf-8">
<title> EJERCICIO CU01010-1 </title>
<style type = "text/css">
h1{color:blue;}
h3{color:orange;}
p{color:brown;}
</style>
</head>
</body>
<p><a href="principal.html" title="Pagina Principal">Ir a pagina principal</a></p>
<h1>Novedades</h1>
<p>Aqui presentamos las novedades del sitio</p>
<h3>Lanzamos el producto</h3>
<p>Este producto permite estirar la piel hasta dejarla como la de un  bebe.</p>
<p><img src="//i.imgur.com/tq5Bs.png"title="Imagen del producto" alt="imagen producto x-fashion"/></p>
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva version del procuto T-MOTION</p>
<p><img src="http://i.imgur.com/SpZyc.png" title="Imagen del producto tmotion"alt="imagen producto tmotion"/></p>
</body>
</html>

323
Hola javano, usar expresiones regulares como bien dices puede ser interesante y útil, aunque dentro del curso para este ejercicio no se pide usar expresiones regulares ya que aún no se han explicado dentro del curso. Por tanto la solución con expresiones regulares podemos verla como "una mejora" o variante del ejercicio.

Saludos.

324
Citar
Gracias yo tengo instalado xammp,pero es que estoy bastante confundida..ya instale wordpress en mi cpanel, desde ahi puedo crear mi website?..gracias

Una vez instalado wordpress ya debes acceder a él con tu nombre de usuario y contraseña que habrás definido en la instalación. Si estás trabajando en local con xampp la dirección de acceso será similar a http://localhost/wordpress/ (depende de en qué carpeta se encuentre instalado).

Es importante comprobar desde el panel de Xampp que estén activados los servicios (apache, mysql) ya que en caso contrario no podrás acceder.

Saludos

326
Hola Cabanota, la solución aportada hace lo que pedía el ejercicio.

Como cuestiones a tener en cuenta para mejorar:

Si te fijas tus funciones anidarElemento0 y anidarElemento son muy parecidas, casi repetidas. Como programadores tenemos que tratar de evitar la repetición. Esto hay que irlo adquiriendo como hábito para lograr cumplir con "las buenas prácticas de los buenos programadores". Si vemos repetición tenemos que preguntarnos, ¿cómo puedo evitarla?

En este caso podríamos hacerlo así (también de otras maneras):

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css">
div{
border-style: solid;
text-align: center;
padding: 5 px;
width: 350px;
margin-bottom: 20px;
}
</style>
<script type="text/javascript">
var cont = 1;
var insertarElemento2;
function inicio () {
insertarElemento1 = document.getElementById("body");
insertarElemento2 = document.getElementById("divInicial");
}

function annadir_elemento (formaAdicion) {
var nodoHijo = document.createElement("div");
var textNodoHijo = document.createTextNode("Nodo creado " + cont);
nodoHijo.style.width = "150px";
nodoHijo.style.textAlign = "center";
nodoHijo.appendChild(textNodoHijo);
if (formaAdicion=='al_final') {insertarElemento1.appendChild(nodoHijo);}
if (formaAdicion=='anidar') {insertarElemento2.appendChild(nodoHijo);}
cont++;
}
</script>
</head>
<body id="body">
<div id="divInicial">Curso JavaScript aprenderaprogramar.com</div>
<input type="button" value="Añadir al final" onclick="annadir_elemento('al_final')"/>
<input type="button" value="Anidar" id="btnAnidar" onclick="annadir_elemento('anidar')" />

<script type="text/javascript">
inicio();
</script>
</body>
</html>

Saludos

327
Hola, tus respuestas son correctas.

a) Correcta, ambas son equivalentes.

(Copio de otro post): El motivo es que cualquier expresión dentro de un if se intenta traducir por parte del intérprete en un valor booleano (true o false) o en un valor numérico (0 que equivaldría a false, u otro valor equivaldría a true). En este caso cuando el intérprete recibe if (elementosObtenidos[1].checked) lo que hace es evaluar elementosObtenidos[1].checked y determina si su valor es equivalente a true ó false. Por tanto, genera el mismo resultado que if (elementosObtenidos[1].checked == true)

b) La eliminación de if anidados se puede realizar sin necesidad de utilizar un for. Por ejemplo con este código:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Ejemplo JavaScript - aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
body {background-color:white; font-family: sans-serif;}
label {color: maroon; display:inline-block; padding:5px;}
</style>

<script type="text/javascript">
function informarItemsElegidos(elemento) {
var elementosObtenidos = document.getElementsByName(elemento);
var msg = 'Animales que ha elegido que le gustan incluye: ';
var elegidos = 0;
if (elementosObtenidos[0].checked == true) {msg = msg + elementosObtenidos[0].value; elegidos=elegidos+1;}

if (elementosObtenidos[1].checked == true && elegidos>=1) { msg = msg + ', ';}
if (elementosObtenidos[1].checked == true) {
msg = msg + elementosObtenidos[1].value; elegidos=elegidos+1;
}

if (elementosObtenidos[2].checked && elegidos>=1) { msg = msg + ', ';}
if (elementosObtenidos[2].checked) {
msg = msg + elementosObtenidos[2].value; elegidos=elegidos+1;}

if (elementosObtenidos[3].checked && elegidos>=1) { msg = msg + ', ';}
if (elementosObtenidos[3].checked) {
msg = msg + elementosObtenidos[3].value; elegidos=elegidos+1;}

if (elegidos == 0 ) {msg = '¡No ha elegido ningún animal!';}
alert (msg);
}

</script>
</head>
<body>
<div id="cabecera">
<h1>Portal web aprenderaprogramar.com</h1>
<h2>Didáctica y divulgación de la programación</h2>
</div>

<!-- Formulario de contacto -->
<div style="width:450px;">
<form name ="formularioContacto" class="formularioTipo1" method="get" action="http://aprenderaprogramar.com" onsubmit="informarItemsElegidos('animal')">
<p>Si quieres contactar con nosotros envíanos este formulario relleno:</p>
<label for="nombre"><span>Nombre:</span> <input id="nombre" type="text" name="nombre" /></label>
<label for="apellidos"><span>Apellidos:</span> <input id="apellidos" type="text" name="apellidos" /></label>
<p>Elige los animales que te gusten:</p>
<input type="checkbox" name="animal" id="leon" value="leon" /> <label for="leon">León &nbsp;&nbsp;&nbsp;    </label>
<input type="checkbox" name="animal" id="tigre" value="tigre" /> <label for="tigre">Tigre &nbsp;&nbsp;&nbsp; </label>
<input type="checkbox" name="animal" id="guepardo" value="guepardo" /> <label for="guepardo">Guepardo &nbsp;&nbsp;&nbsp; </label>
<input type="checkbox" name="animal" id="jaguar" value="jaguar" /> <label for="jaguar">Jaguar </label>
<label for="email"><span>Correo electrónico:</span> <input id="email" type="text" name="email" /></label>
<label>
<input type="submit" value="Enviar" />
<input type="reset" value="Cancelar" />
</label>
</form>
</div>
</body>
</html>

c) Resolverlo con un for puede ser preferible, pero en este ejercicio no se pedía eso. Puedes resolverlo sin for (podrías hacerlo a modo de ejercicio). ¿Cómo? Simplemente sabes que hay 4 elementos, con un if puedes comprobar cada elemento y sumarle a una variable de control una unidad si el elemento está marcado. Al final la variable de control tendrá el número de elementos marcados y no habrá sido necesario usar for (esto es solo para este ejercicio, más adelante cuando se explican los bucles ya es otra cosa).

Saludos

328
Aprender a programar desde cero / Re:JavaScript CU01127E
« en: 14 de Mayo 2015, 14:52 »
Hola soleares,

2. Bien, como ya he comentado en otros hilos: Las variables declaradas dentro de funciones (locales) no tienen "memoria". Cada vez que entras a la función, se inician, pero no se acuerdan del valor que tenían anteriormente.

En cambio las variables declaradas fuera de la función (globales) sí tienen "memoria" (al menos mientras estemos en la misma página web).

Como necesitamos recordar los números de camiseta, no podemos declarar esto dentro de una función porque no sabríamos que camiseta es la que se estaba mostrando y a cuál tenemos que cambiar.

3. Lo tienes bien resuelto.

La forma:

var valorTitle=['Desbordado por los números' , 'Diálogo entre informáticos' , 'Estudiando programacion'];

te permite crear un array de tres elementos (índices 0, 1 y 2) de forma compacta.


4. Bien la respuesta. Como he comentado en otro hilo, la conclusión interesante de esto es que dos elementos no deben tener nunca el mismo id dentro de una página web para evitar problemas.

Saludos

329
Hola Dan, ahora con el html :)

Te indico las cosas que deberías corregir:

<p Style , el style es con minúsculas

En este fragmento de código:

Código: [Seleccionar]
<p Style = "text-align: left;font-size: 14; color: black">
En el dia de ayer viaje a la provincia de chiriqui. Cuando llegamos, al bajar senti el clima muy frio.
Nos quedamos en el hotel bambito, cenamos pollo y patacones, hablamos un rato y descansamos. A la mañana
siguiente, salimos a desayunar al restaurante "las lajitas" a comer bacalao y tortillas. Al salir, exploramos chiriqui, paseamos por
cerro punta, pude comer una manzana del mismo arbol y zarzamoras. Recorrimos el volcan baru y fue una
experiencia placentera..!

Lo unico malo, es que en las mañanas al bañarnos... sentiamos el agua congelada!!!
<h2>Fotos de la primera parte del viaje</h2>

Te ha faltado cerrar la etiqueta p, nunca olvides cerrar todas las etiquetas. Te recomiendo que actives en tu editor la visualización de apertura y cierre de etiquetas, así cuando te colocas encima de una etiqueta de apertura te indica dónde está la etiqueta de cierre remarcándolas de distinto color. En Notepad++ esto se consigue simplemente eligiendo en el menú Lenguaje la opción HTML, o simplemente guardando el archivo con extensión html.


Otra cosa que tienes que corregir:

Código: [Seleccionar]
<pre>

<p Style = "text-align: center; font-size: 15;">
Los viajes                     ...son libertad
                                        ...son amistad
                       ...son crecimiento personal

  ¡No desaproveches una oportunidad!</pre></p>

No puedes abrir una etiqueta <p> y luego cerrar una etiqueta </pre> antes de cerrar la etiqueta <p>


Cada vez que abres una etiqueta, tienes que cerrarla antes de poder cerrar otra.

Esto es incorrecto:

<pre>
<p>
</pre>
</p>


Esto es correcto:
<pre>
<p>
</p>
</pre>


Aunque el navegador muestra todo aquello que puede, incluso si hay errores en el código, tienes que intentar escribir código libre de errores.

Saludos

330
Hola rubens, puedes considerar el ejercicio como resuelto. El método getDatosCasa puedes darlo por bueno también. Más adelante en el curso verás que hay distintas cosas que se pueden cambiar o mejorar, pero hay que ir poco a poco, así que ¡a seguir avanzando!

Saludos

331
Hola Dan! Felicitarte por haber completado el curso Java. Es cierto que gracias a todas las personas que colaboran has contado con ayuda, pero has sido tú quien lo ha hecho, así que enhorabuena.


Creo que sí, que ahora eres distinto, en distintos aspectos, eso por un lado se puede observar pero por otro lado eres tú el único que lo sabe verdaderamente.

Ahora DiscMan ya no es lo que era, es mejor. Y lo mejor de todo es que como tú dices eres capaz de diseñar código de forma más eficiente. No voy a comentar el código, está muy bien. Todavía podrás mejorarlo en el futuro, ya habrás oído que los programadores tienen que estar formándose y mejorando toda la vida...

Esperamos que nos ayudes en los foros respondiendo en aquellos temas donde puedas participar y quizás más adelante uniéndote al "foro´s team", y con seguridad que tendrás apoyo con todo lo que emprendas por parte de quienes participamos de los foros.

Saludos

332
Hola fedegaray :) Se nota ese muuuuucho trabajo y los avances como programador

Haces buen uso de super con lo cual reutilizas el código y te adaptas a los principios de la programación orientada a objetos con herencia

En la clase EnvioDeProductos trabajas con el tipo Producto y gracias al polimorfismo eso permite que la colección que es el envío almacene productos de los distintos tipos existentes (por ejemplo congelado, fresco, etc.)

Para sacarle partido al polimorfismo se recomienda declarar los tipos estáticos del tipo más amplio y luego instanciar los objetos en las clase concretas, por ejemplo

ProductoFresco proFres1 = new ProductoFresco ("25/03/2017", 5542, "14/01/2013", "México");

Se escribiría

Producto proFres1 = new ProductoFresco ("25/03/2017", 5542, "14/01/2013", "México");

De este modo a la izquierda está el tipo de la superclase y a la derecha el tipo específico.

En la clase Envio hay algo que ya se ha comentado en otros hilos, quizás no lo hayas leído:

Código: [Seleccionar]
    public void dameDatos () {
        int i = 0;
        for (Producto tmp : listaDeEnvio) {
            i++;
            System.out.println ("PRODUCTO " + i);
            tmp.dameDatos();
            System.out.println ("");
        }

Un contador como i no se suele usar cuando se usa un for extendido.

Para esto tenemos el bucle for tradicional que ya nos proporciona el contador, sería:

Código: [Seleccionar]
for (int i=0; i<listaDeEnvio.size(); i++){
            System.out.println ("PRODUCTO " + i);
            dameDatos().get(i);
            System.out.println ("");
}

El for extendido se suele usar cuando no necesitamos índice o desconocemos el número de elementos que hay que recorrer.

Enhorabuena por el trabajo!

Saludos

333
Hola Dan, ahora todo bien

En otro mensaje he comentado algunas cuestiones sobre toString(). En este caso, ten en cuenta que incluir String toString(); es redundante (realmente no hace nada)

public interface Edificio {
    double getSuperficieEdificio();
    String toString();
}


El motivo es que toString() es un método que todo objeto en Java tiene disponible por herencia de la superclase Object. En una interface tú declaras los métodos que obligatoriamente deben existir en las clases que implementen la interface. Pero el método toString() ya existe en toda clase por herencia de Object, con lo cual declarar en una interface String toString() no tendría sentido.

Basta con

public interface Edificio {
    double getSuperficieEdificio();
}

Saludos!

334
Hola Dan!

En la clase Legislador has hecho la sobreescritura de toString (correcto)

Código: [Seleccionar]
    @Override
    public String toString(){       
        return getPersonaInfo().concat("\nProvincia que representa: ").concat(provinciaQueRepresenta).concat("\n¿Es de nacionalidad panameña?: ").concat(getNacional())
                .concat("\nCamara en que trabaja: ").concat(getCamaraEnQueTrabaja()).concat("\n");
    }


Sin embargo en la clase persona mantienes el método

Código: [Seleccionar]
    public String getPersonaInfo(){
        return "Nombre: ".concat(nombre).concat(" ").concat(apellido).concat("\nEdad: ").concat(String.valueOf(this.edad)).concat("\nCedula: ").concat(cedula);}
}


Esto no es adecuado, la filosofía Java es mantener en clases y superclases el mismo nombre para métodos que hacen lo mismo (con variaciones debido al nivel dentro de la jerarquía de herencia en que nos encontremos)

Ten en cuenta que toString() es un método disponible en la superclase Object, y que es heredado por todos los objetos (aunque puede ser no útil si no lo sobreescribimos).

La forma de resolver esto sería:

En la clase Persona:

Código: [Seleccionar]
    public String toString(){
        return "Nombre: ".concat(nombre).concat(" ").concat(apellido).concat("\nEdad: ").concat(String.valueOf(this.edad)).concat("\nCedula: ").concat(cedula);}
}

En la clase Legislador:

Código: [Seleccionar]
   @Override
    public String toString(){       
        return super.toString().concat("\nProvincia que representa: ").concat(provinciaQueRepresenta).concat("\n¿Es de nacionalidad panameña?: ").concat(getNacional())
                .concat("\nCamara en que trabaja: ").concat(getCamaraEnQueTrabaja()).concat("\n");
    }


No lo he probado (prúebalo tú por si acaso) pero quédate con la idea de que en Java hay ciertos métodos que ya están concebidos para sobreescribirlos y hacer ciertas cosas, por ejemplo:

toString para devolver un String que es una representación en forma de texto de una clase

equals para devolver un booleano que dice si dos objetos deben considerarse iguales o no

Hay más (que se deben ir conociendo poco a poco, como compareTo y otros)


En realidad no es obligatorio, podríamos usar otros nombres, pero la ventaja de esto es que todos los programadores usan el mismo nombre para métodos y otras cuestiones y hace más fácil el desarrollo e intercambio de código entre programadores.

Saludos!

335
Hola de nuevo!

En la interface Edificio

public interface Edificio {
    double getSuperficieEdificio();
    String imprimirInfo();
}


Normalmente imprimirInfo() no es algo que se suela usar en programación profesional dentro de una interface (ni dentro de una clase), aunque puede ser válido si se considera necesario. En general se usa toString() y se delega el mostrar mensajes por pantalla a otras clases (en este caso se delegaría a la clase con el main). Pero está bien hacer pruebas, con las pruebas se aprende.



Tienes un lapsus en el cálculo public double getSuperficieEdificio(){return (ancho * largo * alto);} ya que esta fórmula lo que devuelve es un volumen, el cálculo de superficie simplemente es public double getSuperficieEdificio(){return (ancho * largo);}

En el main salta un warning debido a esto: ArrayList <Edificio> lista = new <Edificio> ArrayList();

Lo correcto es esto: ArrayList <Edificio> lista = new  ArrayList<Edificio>();

En el main ArrayList <Edificio> lista = new  ArrayList<Edificio>(); está bien pero mejor acostumbrarse a usar List <Edificio> lista = new  ArrayList<Edificio>(); para hacer uso del polimorfismo (en este caso hay que importar List).

Estamos con detalles pero la idea es seguir mejorando!!


336
Hola Dan

Para la pregunta a) la respuesta más exacta es que no: no puede heredar siguiendo el concepto de herencia java. Lo que puede es implementar varias interfaces, que podríamos ver como una forma de herencia limitada. Tu respuesta es correcta, pero ten en cuenta que java no admite herencia múltiple: java lo que admite es que una clase implemente múltiples interfaces. Esto no es herencia múltiple, sino lo más parecido a la herencia múltiple que permite java. Otros lenguajes sí permiten herencia múltiple.

b) Es correcta

c) Correcta


Sobre la conclusión. Java no admite la herencia múltiple, por tanto no la podemos utilizar ni aunque quisiéramos. Respecto a implementar más de una interface en una clase, no es habitual pero es posible. Lo haremos sólo cuando justificadamente sea necesario. Si justificadamente es necesario, no hay problema en utilizar esta práctica.

Saludos

337
Hola Dan, he revisado tu código (por cierto para dejar código como archivos adjuntos mejor dejar los archivos .java que archivos txt, ya que con los java se puede trabajar con el compilador directamente y con los txt no) y demuestras un buen nivel.

Comentarios

De la clase Persona nada que comentar, únicamente tener en cuenta que los atributos

    protected String nombre, apellido, cedula;
    protected int edad;

podemos declararlos como protected para dar acceso directo desde las subclases, o como private y acceder a ellos a través de los métodos get que serán públicos.

De la clase Legislador recomendarte que añosDeResidencia lo sustituyas por anyosDeResidencia ó annosResidencia, el uso de eñes o tildes en el código puede generar problemas (aunque en principio es permitido por java puede haber problemas cuando el código se traslada a otro pc). Esto no aplica cuando se trata de texto a mostrar al usuario, sólo a lo que son partes del programa java.

También recomendarte que vayas sustituyendo métodos como public String getLegisladorInfo() por public String toString() para trabajar según los convenios aceptados de que una representación en forma de texto se haga a través del método toString(). En ocasiones puedes tener representaciones de texto y no llamarlas toString(), pero es bueno ir acostumbrándose a esto.

En la clase Listado tienes ArrayList<Legislador> lista; ¡Buen uso del polimorfismo, así admites tanto senadores como diputados en la lista!. En esta clase lo único que falla es el nombre: creo que ya lo habrás leido en muchos hilos, los nombres tienen que describir lo que representa la clase y Listado es un nombre muy pobre, no se sabe de qué es el listado.

En el main con estas declaraciones Legislador legislador1 = new Senador("Daniel","Phillips","8-342-1234",24,"Panamá","Senado",true,19); también estás haciendo un buen uso del polimorfismo.

Saludos!

339
Hola crear clases como ProductoRefCon es adecuado cuando vemos que ciertas clases comparten algunas cosas en común. Creando una superclase lo que hacemos es agrupar esas cosas para evitar la repetición de código (algo que debemos buscar). ProductoRefCon puede que no coincida con algo del mundo real, es lo que llamamos una abstracción en programación, que en este caso la usamos para evitar repetición de código.

Esto no debes hacerlo:

    public Producto () {
        fechaCaducidad = "14/02/2018";
        numeroLote = 52525542;
        fechaEnvio = "25/01/2015";
        paisOrigen = "Perú";
    }

Eso va contra la filosofía general que se trabaja en el curso (y en general contra la programación orientada a objetos).

Por el contrario, lo que se debe hacer para las pruebas es usar el constructor y pasarle esos parámetros

ProductoFresco proFres1 = new ProductoFresco ("14/02/2018", 52525542, "25/01/2015", "Perú");

De esta manera creas una instancia con esos datos concretos, de la otra manera todas las instancias llevarían esos datos, no sería lógico que todos los productos tuvieran la misma fecha de caducidad.

Ese es el único error grave que has cometido en este ejercicio.

Por otro lado sería recomendable que en vez de hacer esto:

Código: [Seleccionar]
        System.out.println ("\f");
        System.out.println ("PRODUCTO FRESCO 1");
        proFres1.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO FRESCO 2");
        profres2.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO REFRIGERADO 1");
        proRef1.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO REFRIGERADO 2");
        proRef2.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO REFRIGERADO 3");
        proRef3.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO CONGELADO CON AIRE 1");
        proConAi1.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO CONGELADO CON AIRE 2");
        proConAi2.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO CONGELADO CON AGUA 1");
        proConAg1.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO CONGELADO CON AGUA 2");
        proConAg2.dameDatos();
        System.out.println ("");
        System.out.println ("PRODUCTO CONGELADO CON NITRÓGENO 1");
        proConNit1.dameDatos();

En vez de eso crea una colección, añade los productos y luego recorre la colección con un bucle invocando el método dameDatos(). La idea es obtener el mismo resultado pero de una forma más elegante o correcta.

Saludos!

340
Hola fedegaray el código está bien resuelto

Has aplicado bien valueof y es interesante para otras personas ver este uso

Código: [Seleccionar]
Scanner entrada2 = new Scanner (System.in);
String marcaIngresada = entrada2.nextLine();
MarcaDeVehiculo esteAuto = MarcaDeVehiculo.valueOf(marcaIngresada);
nuevoVehiculo.setMarca (esteAuto);

En la primera línea un String se transforma en el tipo enumerado, y en la segunda línea se usa el tipo enumerado para establecer un atributo para el objeto nuevoVehiculo. Buen ejemplo de aplicación.

Saludos

Páginas: 1 ... 12 13 14 15 16 [17] 18 19 20 21 22 ... 32

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".