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 - Jarper

Páginas: [1]
1
Asegurate de tener el constructor de SalonCasa sin parámetros y otro con los dos parámetros, un String y un int.
Por el error que posteas, sólo has creado el constructor sin parámetros.

Un saludo.

2
Buenos días,

 EJERCICIO

Se plantea desarrollar un programa Java que permita representar la siguiente situación. Una instalación deportiva es un recinto delimitado donde se practican deportes, en Java interesa disponer de un método int getTipoDeInstalacion(). Un edificio es una construcción cubierta y en Java interesa disponer de un método double getSuperficieEdificio(). Un polideportivo es al mismo tiempo una instalación deportiva y un edificio; en Java interesa conocer la superficie que tiene y el nombre que tiene. Un edificio de oficinas es un edificio; en Java interesa conocer el número de oficinas que tiene.

Definir dos interfaces y una clase que implemente ambas interfaces para representar la situación anterior. En una clase test con el método main, crear un ArrayList que contenga tres polideportivos y dos edificios de oficinas y utilizando un iterator, recorrer la colección y mostrar los atributos de cada elemento. ¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Código: [Seleccionar]
public interface InstalacionDeportiva
{
   int getTipoDeInstalacion();
}
Código: [Seleccionar]
public interface Edificio
{
    double getSuperficieEdificio();
    String mostrarAtributos();
}
Código: [Seleccionar]
public class Polideportivo implements InstalacionDeportiva, Edificio
{
    private int tipoDeInstalacion;
    private double superficieEdificio;
    private String nombre;
    public Polideportivo(){
        tipoDeInstalacion = 0;
        superficieEdificio = 0;
        nombre = "Unknown";
    }
    public Polideportivo(int tipoDeInstalacion, double superficieEdificio, String nombre){
        this.tipoDeInstalacion = tipoDeInstalacion;
        this.superficieEdificio = superficieEdificio;
        this.nombre = nombre;
    }
    public void setTipoDeInstalacion(int tipoDeInstalacion){this.tipoDeInstalacion = tipoDeInstalacion;}
    public void setSuperficieEdificio(double superficieEdificio){this.superficieEdificio = superficieEdificio;}
    public void setNombre(String nombre){this.nombre = nombre;}
    public int getTipoDeInstalacion(){return tipoDeInstalacion;}
    public double getSuperficieEdificio(){return superficieEdificio;}
    public String getNombre(){return nombre;}
    public String mostrarAtributos(){
        return "El polideportivo es de tipo: " + getTipoDeInstalacion() + " con una superficie de: " + getSuperficieEdificio()+" m2. Y su nombre es: "+getNombre();
    }
}
Código: [Seleccionar]
public class Oficinas implements Edificio
{
  private int numeroOficinas;
  private double superficieEdificio;
    public Oficinas(){
      numeroOficinas = 0;
      superficieEdificio = 0;
    }
    public Oficinas(int numeroOficinas, double superficieEdificio){
        this.numeroOficinas = numeroOficinas;
        this.superficieEdificio = superficieEdificio;
    }
    public void setSuperficieEdificio(double superficieEdificio){this.superficieEdificio = superficieEdificio;}
    public void setNumeroOficinas(int numeroOficinas){this.numeroOficinas = numeroOficinas;}
    public double getSuperficieEdificio(){return superficieEdificio;}
    public int getNumeroOficinas(){return numeroOficinas;}
    public String mostrarAtributos(){
        return "La oficina tiene: " + getNumeroOficinas() + " oficinas y consta de "+getSuperficieEdificio()+" m2.";
    }
}
Código: [Seleccionar]
public class Test
{
    public static void main(String[] args){
        ArrayList<Edificio> lista = new ArrayList<Edificio>();
        Oficinas of1 = new Oficinas(4,500);
        Oficinas of2 = new Oficinas(2,300);
        Oficinas of3 = new Oficinas(6,1000);
        Polideportivo pd1 = new Polideportivo(1,1000,"Polideportivo BCN");
        Polideportivo pd2 = new Polideportivo(1,2000,"Polideportivo MAD");
        lista.add(of1);
        lista.add(of2);
        lista.add(of3);
        lista.add(pd1);
        lista.add(pd2);
        Iterator<Edificio> it = lista.iterator();
        while(it.hasNext()){
        System.out.println(it.next().mostrarAtributos());
        }
    }   
}


No se si he realizado correctamente lo que se pedía en el enunciado. He añadido a Edificio un método para poder mostrar los atributos.

Muchas gracias, atentamente.

3
Buenos días,

¿podríais corregir el ejercicio y añadir comentarios, por favor?

 EJERCICIO

Responde a las siguientes preguntas:

a) ¿Una clase puede heredar de dos clases en Java?
- No.

b) ¿Una interface Java puede tener métodos que incluyan una sentencia while? ¿Una interface Java puede tener métodos que incluyan una sentencia System.out.println?
- No puede tener implementado ningún método. Sólo definir la signatura del método.

c) ¿Un objeto Java puede ser del tipo definido por una interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por
una clase que no implementa la interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que implementa la interface?
- Sí, puede ser del tipo definido por una interface.
- Sí, puede ser del tipo definido por una interface y de una clase que no implemente una interface.
- Sí, puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que implementa una interface.

Muchas gracias, atentamente.

4
¡Ya está solucionado!
Únicamente tenía que indicar que Iterator<Productos>...
Así he podido realizar:
Código: [Seleccionar]
public void mostrarProductos(){
        Iterator<Productos> copiaEnvio = listaEnvios.iterator();
        while(copiaEnvio.hasNext()){
            Productos producto = copiaEnvio.next();
            System.out.println(producto.mostrarProducto());
        }
    }


Muchas gracias, atentamente.



5
Buenas tardes,

llevo horas batallando con esta parte del código que soy incapaz de realizar.
 EJERCICIO

Amplía el código del programa Java que planteamos como ejercicio en la entrega CU00687 de este curso, relativo a la gestión de una empresa agroalimentaria, teniendo en cuenta que la empresa gestiona envíos a través de diferentes medios, y un envío puede contener cierto número de productos frescos, refrigerados o congelados. Añade al código:

a) Una clase EnvioDeProductos que represente un envío de productos como colección de objetos que admite el polimorfismo.

b) Crear una clase testHerencia4 con el método main donde se creen: dos productos frescos, tres productos refrigerados y cinco productos congelados (2 de ellos congelados por agua, otros 2 por agua y 1 por nitrógeno). Crear un envío que represente la agrupación de los anteriores productos. Mostrar por pantalla la información del número de productos que componen el envío y recorrer los productos del envío usando iterator para mostrar la información (valor de los atributos) de cada uno de ellos.

He usado el mismo código que en TestHerencia3 para crear los objetos y se crean correctamente y los añado a la lista de EnvioDeProductos.
En envío de productos he generado el siguiente código:
Código: [Seleccionar]
public class EnvioDeProductos
{
    private ArrayList <Productos> listaEnvios;
    public EnvioDeProductos(){
        listaEnvios = new ArrayList<Productos>();
    }
    public void setListaEnvios(Productos valorProducto){
        listaEnvios.add(valorProducto);
    }
    public Productos getListaEnvios(int valorIndice){
        return listaEnvios.get(valorIndice);
    }
    public int tamañoLista(){ return listaEnvios.size();}
    public void mostrarProductos(){
        Iterator copiaEnvio = listaEnvios.iterator();
        while(copiaEnvio.hasNext()){
            System.out.println(copiaEnvio.next());
        }
    }
}
En mostrarProductos soy incapaz de mostrar los productos usando iterator como indica el ejercicio. Al realizar copiaEnvio.next() devuelve un E(elemento) por lo que devuelve el puntero, no el objeto en si.
No me permite realizar copiaEnvio.next().getFechaDeCaducidad() puesto que indica que no encuentra el método.
Tampoco puedo realizar:
Código: [Seleccionar]
Productos producto1 = new Producto();
producto1 = copiaEnvio.next()
Me indica incompatibilidad de tipos. ¿Alguna idea?

Muchas gracias, atentamente.

6
Buenos días,

El programa funciona, pero me gustaría saber si lo que he realizado es lo que se pedía y si hay cosas mejorables.

 EJERCICIO

Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados. Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica. Los productos frescos deben llevar la fecha de envasado y el país de origen. Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria. Los productos congelados deben llevar la temperatura de congelación recomendada. Crear el código de las clases Java implementando una relación de herencia desde la superclase Producto hasta las subclases ProductoFresco, ProductoRefrigerado y ProductoCongelado. Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto. Crear una clase testHerencia2 con el método main donde se cree un objeto de cada tipo y se muestren los datos de cada uno de los objetos creados.

Clase Productos:
Código: [Seleccionar]
public class Productos
{
    private String fechaDeCaducidad;
    private int numeroDeLote;
    public Productos(String valorFechaDeCaducidad, int valorNumeroDeLote){
        fechaDeCaducidad = valorFechaDeCaducidad;
        numeroDeLote = valorNumeroDeLote;
    }
    public void setFechaDeCaducidad(String valorFechaDeCaducidad){
        fechaDeCaducidad = valorFechaDeCaducidad;
    }
    public void setNumeroDeLote(int valorNumeroDeLote){
        numeroDeLote = valorNumeroDeLote;
    }
    public String getFechaDeCaducidad(){
        return fechaDeCaducidad;
    }
    public int getNumeroDeLote(){
        return numeroDeLote;
    }
    public void mostrarProducto(){
    System.out.println("La información del producto es:\nFecha de caducidad: " + getFechaDeCaducidad() + "\nNumero de lote: "+getNumeroDeLote());
    }
}

Clase Frescos:
Código: [Seleccionar]
public class Frescos extends Productos
{
    private String fechaDeEnvasado;
    private String paisOrigen;
    public Frescos(String valorFechaDeCaducidad, int valorNumeroDeLote,String valorFechaDeEnvasado, String valorPaisOrigen){
        super(valorFechaDeCaducidad,valorNumeroDeLote);
        fechaDeEnvasado = valorFechaDeEnvasado;
        paisOrigen = valorPaisOrigen;
    }
    public void setFechaDeEnvasado(String valorFechaDeEnvasado){
        fechaDeEnvasado = valorFechaDeEnvasado;
    }
    public void setPaisOrigen(String valorPaisOrigen){
        paisOrigen = valorPaisOrigen;
    }
    public String getFechaDeEnvasado(){
        return fechaDeEnvasado;
    }
    public String getPaisOrigen(){
        return paisOrigen;
    }
    public void mostrarFrescos(){
        System.out.println("Producto fresco con número de lote: " + getNumeroDeLote() + "\nFecha de caducidad: "+getFechaDeCaducidad()+"\nFecha de envasado: "+getFechaDeEnvasado()+"\nPaís de origen: "+getPaisOrigen());
    }
}

Clase Refriegerados:
Código: [Seleccionar]
public class Refrigerados extends Productos
{
    private String codigoSupervisionAlimentaria;
    public Refrigerados(String valorFechaDeCaducidad, int valorNumeroDeLote, String valorCodigoSupervisionAlimentaria){
        super(valorFechaDeCaducidad,valorNumeroDeLote);
        codigoSupervisionAlimentaria = valorCodigoSupervisionAlimentaria;
    }
    public void setCodigoSupervisionAlimentaria(String valorCodigoSupervisionAlimentaria){
        codigoSupervisionAlimentaria = valorCodigoSupervisionAlimentaria;
    }
    public String getCodigoSupervisionAlimentaria(){
        return codigoSupervisionAlimentaria;
    }
    public void mostrarRefrigerados(){
     System.out.println("Producto refrigerado con número de lote: " + getNumeroDeLote() + "\nFecha de caducidad: "+getFechaDeCaducidad()+"\nCodigo de supervisión alimentaria: "+getCodigoSupervisionAlimentaria());
    }
}

Clase Congelados:
Código: [Seleccionar]
public class Congelados extends Productos
{
    private int temperaturaRecomendada;
    public Congelados(String valorFechaDeCaducidad, int valorNumeroDeLote, int valorTemperaturaRecomendada){
        super(valorFechaDeCaducidad, valorNumeroDeLote);
        temperaturaRecomendada = valorTemperaturaRecomendada;
    }
    public void setTemperaturaRecomendada(int valorTemperaturaRecomendada){
        temperaturaRecomendada = valorTemperaturaRecomendada;
    }
    public int getTemperaturaRecomendada(){
        return temperaturaRecomendada;
    }
    public void mostrarCongelados(){
        System.out.println("Producto congelado con número de lote: " + getNumeroDeLote() + "\nFecha de caducidad: "+getFechaDeCaducidad()+"\nTemperatura de congelación recomendada: "+getTemperaturaRecomendada());
    }
}

Clase TestHerencia2:
Código: [Seleccionar]
public class TestHerencia2
{
  public static void main(String[] args){
    Frescos productoFresco = new Frescos("30-01-2015",123456,"01-01-2015","España");
    Refrigerados productoRefrigerado = new Refrigerados("30-02-2015",100001,"Aquí va el código de supervision alimentaria");
    Congelados productoCongelado = new Congelados("30-12-2015",654321,-14);
    productoFresco.mostrarFrescos();
    productoRefrigerado.mostrarRefrigerados();
    productoCongelado.mostrarCongelados();
    }
}

Muchísimas gracias por vuestro tiempo y correcciones, son un alivio para mi leerlas.
Atentamente.

7
Buenas tardes,

 EJERCICIO

Intenta compilar el siguiente código:
Código: [Seleccionar]
public class Test {

    int atributo1;

    Test (int atrib) {atributo1 = 0;}

    public static void main (String[ ] Args) {

        System.out.println ("Mensaje 1");

        System.out.println ("Atributo 1 vale" + this.getAtrib1());

    } //Cierre del main

    public int getAtrib1() {return atributo1;}
} //Cierre de la clase
 
¿Qué mensaje de error se obtiene?
 - Se obtiene el mensaje de error: non-static variable this cannot be referenced from a static context.
¿Por qué se obtiene este mensaje de error?
- Estamos intentando acceder a un atributo de instancia desde un método de clase.
 
 ¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?
Código: [Seleccionar]
public class Test
{
    static int atributo1=57;
    /*Test(int atrib){
        atributo1 = 0;
    }*/
    public static void main(String[] args){
        System.out.println("Mensaje 1");
        System.out.println("Atributo 1 vale "+getAtrib1());
    }
    public static int getAtrib1(){return atributo1;}
}

He omitido el constructor ya que creo que no es necesario al tratarse de métodos de clase, no vamos a instanciar la clase.

8
Buenos días,

 EJERCICIO

Crea una clase Vehiculo donde definas un tipo enumerado MarcaDeVehiculo cuyos valores posibles serán FORD, TOYOTA, SUZUKI, RENAULT, SEAT. Establece como atributos de la clase matricula (tipo String) y marca (tipo MarcaDeVehiculo) y crea los métodos getters (para obtener) y setters (para establecer el valor) de los atributos. Escribe un pequeño programa de prueba donde verifiques que los métodos funcionan correctamente. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

He realizado el siguiente código:
Código: [Seleccionar]
enum MarcaDeVehiculo{FORD,TOYOTA,SUZUKI,RENAULT,SEAT};
public class Vehiculo
{
    private String matricula;
    private MarcaDeVehiculo marca;
    public Vehiculo(){
        matricula="";
        setMarca();
    }
    public void setMarca(){
        String texto = "";
        System.out.println("Por favor introduzca la marca del vehículo, debe ser [Ford, Toyota, Suzuki, Renault, Seat] en minúsculas.");
        Scanner entradaTeclado = new Scanner(System.in);
        texto = entradaTeclado.nextLine();
        if(texto.equals("ford")){
            marca = MarcaDeVehiculo.FORD;
        }
        else if(texto.equals("toyota")){
            marca = MarcaDeVehiculo.TOYOTA;
        }
        else if(texto.equals("suzuki")){
            marca = MarcaDeVehiculo.SUZUKI;
        }
        else if(texto.equals("renault")){
            marca = MarcaDeVehiculo.RENAULT;
        }
        else if(texto.equals("seat")){
            marca = MarcaDeVehiculo.SEAT;
        }
        else{
            System.out.println("No ha introducido una marca válida para el vehículo.");
        }
    }
   
    public void setMatricula(String valorMatricula){
        matricula = valorMatricula;
    }
    public MarcaDeVehiculo getMarca(){
        return marca;
    }
    public String getMatricula(){
        return matricula;
    }
}
No he sabido establecer un valor a marca en el constructor(no quería asignar un valor de los que aparecen en la lista de tipo enum) por lo que he puesto una llamada al setter de marca. No se si es correcto realizar un setter sin ningún parámetro y tampoco se si es muy adecuado realizar los condicionales tal que así.

El código para la prueba es el siguiente:
Código: [Seleccionar]
public class TestVehiculo
{
   public static void main(String[] args){
       Vehiculo nuevoVehiculo = new Vehiculo();
       String valorMatricula = "MXC-1234-E";
       nuevoVehiculo.setMatricula(valorMatricula);
       System.out.println("La marca del vehículo es: "+nuevoVehiculo.getMarca());
       System.out.println("La matrícula del vehículo es: "+nuevoVehiculo.getMatricula());
       nuevoVehiculo.setMarca();
       System.out.println("La nueva marca del vehículo es: "+nuevoVehiculo.getMarca());
       
    }
}

Muchas gracias, atentamente.

9
Muchas gracias toni_apr por todo el tiempo que le dedicas a corregir mis ejercicios.
La verdad es que cuando cuelgo una duda de algo que no se hacer, ya le he dado mil vueltas y me desespero.
De verdad, muchas gracias a todos por el trabajo que realizais.

Un abrazo, atentamente.

10
Con un String no es posible realizarlo ya que String es de tipo Objeto.
Al realizar una comparativa de un objeto con otra cosa, lo que se está comparando es el puntero del objeto, no el valor del objeto en si.
Parece que puede ser primitivo como lo es char o int, pero no lo es.
Por eso un String puede invocar el método equals().

Atentamente.

11
Buenas tardes,

 EJERCICIO

Declara un array que contenga seis booleanos que sean true, true, false, false, true, false. A continuación, crea una lista de tipo LinkedList a partir de dicho array usando la clase Arrays del api de Java. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Yo he realizado el siguiente código:
Código: [Seleccionar]
public class Test79
{
    public static void main(String[] args){
        Boolean[] arrayBooleano = {true, true, false, false, true, false};
        List<Boolean> linkedList = new LinkedList<Boolean>(Arrays.asList(arrayBooleano));
        System.out.println(linkedList);
    }
}
Creo que lo que el enunciado pedía era crear algo tal que así:
Código: [Seleccionar]
List<LinkedList> linkedList = new LinkedList<LinkedList>....
Si lo que el enunciado pedía era lo segundo...no he sabido enlazar un array de Boolean con una LinkedList que pide LinkedList.
Con Arrays.asList(arrayBooleano) conseguimos una List<Boolean> por lo que no puedo añadirlo a LinkedList<LinkedList>.

Ayuda, por favor.

Muchas gracias, atentamente.

12
Buenos días,

tras estar batallando 3 horas con el código, buscando información y usando el debugger he desistido.
Ayuda!! :P.
Me he fijado que los valores que añado a las diferentes listas se añaden aleatoriamente en la posición de la lista por lo que al recorrerlas con el for each y los iteradores, se muestran tal cual se han añadido en la posición de la lista.

Dejo el ejercicio:
 La interface Set de Java es implementada por las clases HashSet y TreeSet. Busca información sobre estas clases en la documentación del api Java. Crea un programa Java que haga lo siguiente:

a) Declarar un ArrayList de objetos de tipo Set.

b) Crear un objeto de tipo HashSet para contener Strings y haz que contenga las cadenas “sol”, “luna”, “saturno”.

c) Crear un objeto TreeSet para contener Integers y haz que contenga los números 2, 8, 5.

d) Añade los objetos HashSet y TreeSet como elementos del ArrayList.

e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.

CÓDIGO:
Código: [Seleccionar]
public class Test78
{
    public static void main(String[] args){
        ArrayList<Set> arraySet = new ArrayList<Set>();
        HashSet<String> hashString = new HashSet<String>();
        hashString.add("sol");
        hashString.add("luna");
        hashString.add("saturno");
        TreeSet<Integer> treeInteger = new TreeSet<Integer>();
        treeInteger.add(2);treeInteger.add(8);treeInteger.add(5);
        arraySet.add(hashString);arraySet.add(treeInteger);
        for(Set tmpSet:arraySet){
            Iterator iterator = tmpSet.iterator();
             while(iterator.hasNext()){
                System.out.println(iterator.next());
            }
        }
    }
}

Lo que me imprime por pantalla es: luna, saturno, sol, 2, 5, 8.

Muchas gracias, atentamente.

13
Muchas gracias por dedicarme tu tiempo.
Y muchas gracias por la corrección, eso es lo que busco cuando posteo un ejercicio (mejorar como programador y no cometer fallos de principiante).

Se agradece que gente experimentada dedique su tiempo en corregir y/o solucionar los problemas de los principiantes.

¡Muchas gracias!

14
Buenas tardes,

en principio el código siguiente realiza lo que en el Ejercicio se pide.
Me gustaría saber si cometo fallos metódicos en la programación. Qué cosas cambiaríais y como las pondríais.
Seguramente esté programando como el principiante que soy.
Ante todo, muchas gracias.
Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;
    public CantanteFamoso(String valorNombre, String valorDisco){
        nombre = valorNombre;
        discoConMasVentas = valorDisco;
    }
    public CantanteFamoso()
    {
       nombre = "";
       discoConMasVentas = "";
    }
    public void setNombre(String valorNombre){
        nombre = valorNombre;
    }
    public void setDisco(String valorDisco){
        discoConMasVentas = valorDisco;
    }
    public String getNombre(){ return nombre;}
    public String getDisco(){ return discoConMasVentas;}
}

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class ListaCantantesFamosos2
{
    private ArrayList<CantanteFamoso> listaCantantesFamosos;
    private String nombre;
    public ListaCantantesFamosos2(String valorNombre){
        nombre = valorNombre;
        listaCantantesFamosos = new ArrayList<CantanteFamoso>();
    }
    public void addCantante(CantanteFamoso valorCantante){
        listaCantantesFamosos.add(valorCantante);
    }
    public void iteracion(){
        Iterator<CantanteFamoso> it = listaCantantesFamosos.iterator();
        CantanteFamoso cmpIterador = new CantanteFamoso();
        while(it.hasNext())
        {
            cmpIterador = it.next();
            System.out.println("Cantante: " + cmpIterador.getNombre() + "   Disco con más ventas:" + cmpIterador.getDisco()); 
        }
    }
    public CantanteFamoso añadirCantantes(){
        CantanteFamoso nuevoCantante = new CantanteFamoso();
        System.out.println("Por favor introduzca los datos de otro cantante.");
        System.out.print("Nombre: ");
        Scanner entradaTeclado1 = new Scanner(System.in);
        String cantante = entradaTeclado1.nextLine();
        System.out.print("Disco con más ventas: ");
        Scanner entradaTeclado2 = new Scanner(System.in);
        String disco = entradaTeclado2.nextLine();
        nuevoCantante.setNombre(cantante);
        nuevoCantante.setDisco(disco);
        return nuevoCantante;
    }
}

Código: [Seleccionar]
import java.util.Scanner;
public class TestCantanteFamoso
{
    public static void main(String [] args){
        ListaCantantesFamosos2 lista = new ListaCantantesFamosos2("Lista de Cantantes Famosos 2.");
        CantanteFamoso famoso1 = new CantanteFamoso("Madonna","All I want is you.");
        CantanteFamoso famoso2 = new CantanteFamoso("Jorge Negrete","Jalisco.");
        lista.addCantante(famoso1);
        lista.addCantante(famoso2);
        System.out.println("La lista iniciar contiene los siguientes datos:");
        lista.iteracion();
        lista.addCantante(lista.añadirCantantes());
        int i = 0;
        while( i == 0){
            System.out.println("La lista actualizada contiene los siguientes datos:");
            lista.iteracion();
            System.out.println("¿Desea introducir los datos de otro cantante?");
            Scanner entradaTeclado = new Scanner(System.in);
            String decision = entradaTeclado.nextLine();
            switch(decision){
                case "s": lista.addCantante(lista.añadirCantantes());
                break;
                case "n": i = 1;
                break;
                default: System.out.println("Ha escogido una opción no válida");
                break;
            }
        }
    }
}

Muchas gracias, atentamente.

15
Buentas tardes,

Disculpad las molestias de estar poniendo siempre preguntas y respuestas.
Sólo quiero asegurarme que algun profesional me corrija si estoy equivocado.

Ante todo, muchas gracias.

 EJERCICIO

Considera una clase Java que se denomina TripulacionAvion y que tiene como atributos a tres objetos de tipo Persona: Persona piloto; Persona copiloto1; Persona copiloto2.

a) ¿Sería posible que al crear un objeto TripulacionAvion se produjera que piloto, copiloto1 y copiloto2 apuntaran a un mismo objeto, es decir,
que existiera una relación de identidad entre los tres atributos?
Sólo sería posible si en el constructor de TripulacionAvion estuviera definido para ello, por ejemplo:
Código: [Seleccionar]
public class TripulacionAvion{

private Persona piloto;
private Persona copiloto1;
private Persona copiloto2;

public TripulacionAvion(){
piloto = new Persona();
copiloto1 = new Persona();
copiloto2 = new Persona();
copiloto1 = piloto;
copiloto2 = piloto;
}
}
Con esto una vez creados como Persona piloto, copiloto1 y copiloto2, asignamos el puntero de piloto a copiloto1 y copiloto2

b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?
No podría existir relación de identidad ya que un objeto que contiene atributos sin inicializar sólo es un puntero a una posición de memoria.

c) ¿Cuál sería el contenido de los atributos si no se inicializan en el constructor y creamos un objeto de tipo TripulacionAvion?
Sería null.

Muchas gracias, atentamente.



      

16
Buenos días,

 EJERCICIO

Reflexiona y responde a las siguientes preguntas:

a) ¿Es posible llamar a un método externo de un objeto que ha sido declarado pero no creado?
- No es posible ya que si sólo se ha declarado, lo único que hemos hecho es reservar un espacio en memória para dicho objeto.

b) ¿Es posible llamar a un método externo de un objeto “A” que ha sido declarado y creado pero cuyo constructor está vacío?
- Si el método que se usa no necesita de los atributos del objeto A será posible.

c) Una llamada al método pow de la clase Math que hacemos dentro de un método definido en una clase ¿Es una llamada a un método interno o a un método externo?
- Es una llamada a un método externo. De hecho está creada en otro paquete "java.lang" que el sistema carga automáticamente.
¿La llamada al método pow se hace sobre un objeto declarado y creado o no declarado y no creado?
Se hace sobre el objeto Math que el sistema internamente es quien lo declara y lo crea.
Nosotros trabajamos sobre el objeto Math (sin previa declaración ni creación).
Por lo que se hace sobre un objeto declarado y creado.

Muchas gracias, atentamente.

17
Muchas gracias por contestar y ante todo disculpa por el fallo del código.
¡No volverá a pasar! (Gracias por haberlo arreglado :P ).

Un saludo y gracias de nuevo.

18
Buenos días,

antes de nada quiero agradecer que se hayan corregido mis otros ejercicios.

 EJERCICIO

Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Compila el código para comprobar que no presenta errores, y crea un objeto de tipo Casa usando el constructor que recibe parámetros. Ten en cuenta que antes tendrás que haber creado los objetos de tipo SalonCasa y CocinaCasa para poder pasárselos al constructor. Comprueba que el objeto Casa se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

CLASE SalonCasa:
Código: [Seleccionar]
public class SalonCasa
{
    private int numeroDeTelevisores;
    private String tipoSalon;
    /**
     * Constructor for objects of class SalonCasa
     */
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
    public SalonCasa(int valorNumeroDeTelevisores, String valorTipoSalon)
    {
        numeroDeTelevisores = valorNumeroDeTelevisores;
        tipoSalon = valorTipoSalon;
    }
    public void setNumeroDeTelevisores(int valorTelevisores){
        numeroDeTelevisores = valorTelevisores;
    }
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }
    public String getTipoSalon(){
        return tipoSalon;
    }
}
CLASE CocinaCasa:
Código: [Seleccionar]
public class CocinaCasa
{
    private boolean esIndependiente;
    private int numeroDeFuegos;
    /**
     * Constructor for objects of class CocinaCasa
     */
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
    public CocinaCasa(boolean valorEsIndependiente, int valorNumeroDeFuegos)
    {
        esIndependiente = valorEsIndependiente;
        numeroDeFuegos = valorNumeroDeFuegos;
    }
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
    public boolean getEsIndependiente(){
        return esIndependiente;
    }
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }
}

CLASE Casa:
Código: [Seleccionar]
public class Casa
{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
    /**
     * Constructor for objects of class Casa
     */
    public Casa(double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocina)
    {
       superficie = valorSuperficie;
       direccion = valorDireccion;
       salonCasa = new SalonCasa(objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon()) ;
       cocina = new CocinaCasa(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFuegos());
    }
    public Casa(){
        superficie = 0;
        direccion = "desconocido";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
}
Muchas gracias, atentamente.

19
EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical.
Define las signaturas para métodos dentro dicha clase e indica si deberán ser procedimientos o funciones para los siguientes objetivos planteados:

1) Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.
float getDuracion(int valorCancion)  -> Función.

2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto).
Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.
Suponiendo que el disco tiene 5 canciones
setDuracion(float valorCancion1, float valorCancion2, float valorCancion3, float valorCancion4, float valorCancion5) --> Procedimiento

3) Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).
float getDuracionCompleta() -> Función

4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).
setNuevaCancion(String valorTitulo, float valorDuracionCancion) -> Procedimiento

Muchas gracias, un saludo.

20
Buenos días,

estoy realizando el curso de Java desde 0 y me gustaría una revisión de mis ejercicios.
Se que este es un poco absurdo ya que es pseudocódigo, pero quiero realizar el curso bien.

Muchas gracias.

Problema:
 EJERCICIO

Considera que queremos representar mediante un programa Java los aviones que operan en un aeropuerto. Crea un esquema análogo al que hemos visto para vehículos, pero en este caso para aviones. Define cuáles podrían ser las clases y cuáles podrían ser algunos objetos de una clase. Para comprobar la corrección de tu solución puedes consultar en los foros aprenderaprogramar.com.

Mi solución:
Clase Avion{
Propiedades:
   Identificacion
   compañia avion/privado
   numero de pasajeros(aforo avión)
   asientos(array de asientos para identificar cuales están ocupados y cuales no)
   Tipo de motor   
   coordenadas en las que se ubica
   
Operaciones disponibles:
   Asignar una identificacion
   Asignar una compañia o si es privado
   Asignar numero de pasajeros (aforo avión)
   Asignar asientos ( cuales están ocupados y cuales no)
   Asignar tipo de motor
   Ubicar avión
}
   
   

Páginas: [1]

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".