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

Páginas: [1]
1
Muchas gracias Pedro, por tomarte el tiempo de responder a mi pregunta, y si, si me queda claro ahora, muchas gracias.
Saludos.

2
Muchas gracias Pedro, ahora si puedo llamar al método iterator(), pero podrías aclararme un poco mas mi error, sobre todo la parte que decis: "...estás usando el método iterator() sobre un objeto ListaCantantesFamosos que contiene una lista, pero no es una lista,..." a que te referís con que no es una lista.
Saludos y muchas gracias.

3
Respuesta al ejercicio CU00667B del tutorial de programación Java con BlueJ.

EJERCICIO

Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario).
Por que mi codigo no funciona, me marca error en class Test, linea 20:         Iterator <CantanteFamoso> it=lista.iterator();
cannot find symbol - method iterator()
No me reconoce el metodo iterator().


class ListaCantantesFamosos

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
public class ListaCantantesFamosos
{
    // instance variables - replace the example below with your own

    private ArrayList <CantanteFamoso> lista;
   
    /**
     * Constructor for objects of class ListaCantantesFamosos
     */
    public ListaCantantesFamosos()
    {
        // initialise instance variables
        this.lista=new ArrayList <CantanteFamoso> ();
    }
   

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
    public void addCantante(CantanteFamoso cantante){
        lista.add(cantante);
    }
}

class CantanteFamoso

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
public class CantanteFamoso
{
    // instance variables - replace the example below with your own
    private String nombre;
    private String discoMasVendido;

    /**
     * Constructor for objects of class CantanteFamoso
     */
    public CantanteFamoso()
    {
        // initialise instance variables
        this.nombre="";
        this.discoMasVendido="";
    }
   
    public CantanteFamoso(String nombre, String disco)
    {
        // initialise instance variables
        this.nombre=nombre;
        this.discoMasVendido=disco;
    }

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
   
    public void setNombre(String nombre){
        this.nombre=nombre;
       
    }
   
    public void setDiscoMasVendido(String disco){
        this.discoMasVendido=disco;
       
    }
   
    public String getNombre(){
        return this.nombre;
       
    }
   
    public String getDiscoMasVendido(){
        return this.discoMasVendido;
       
    }
}

class Test

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;

public class Test
{
    public static void main (String [ ] Args){
        ListaCantantesFamosos lista=new ListaCantantesFamosos ();
       
        CantanteFamoso cantante=new CantanteFamoso();
        cantante.setNombre("Will");
        cantante.setDiscoMasVendido("Yigui yigui gure");
        lista.addCantante(cantante);
       
        CantanteFamoso cantante2=new CantanteFamoso();
        cantante2.setNombre("Chayane");
        cantante2.setDiscoMasVendido("Las mañanitas");
        lista.addCantante(cantante2);
       
       
        Iterator <CantanteFamoso> it=lista.iterator();     [b]//Aqui esta mi error[/b]
        CantanteFamoso singer;
        while(it.next()){
            singer=it.next();
            System.out.println("Cantante: "+singer.getNombre()+" Disco mas vendido: "+singer.getDiscoMasVendido());

        }
       
    }
}



4
Asignación de igualdad en Java. Referencias a objetos. Diferencia entre igualdad e identidad. Ejercicio CU00663B del curso bases de programación Java.

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?

b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?

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

Respuestas

a) Si, Depende del constructor, si el constructor es por defecto los tres atributos que
son objetos apunatarian a null, y habria identidad. O si el constructor tuviera por
parametro un objeto persona que se le pasaria a los tres objetos,  tambien habria
identidad.
//Aqui tengo una duda: null es un objeto?.

b) Si, porque el objeto TripulacionAvion se crearía con el constructor por defecto y este
inicializaria los atributos con el valor null.
//Con respecto a esta pregunta y a la c), pensé que todo objeto al ser creado es
//inicializado por el constructor, ya sea definido por el programador o por defecto.
//Digo esto porque la pregunta b dice: b) ¿Existiría relación de identidad cuando creemos
//un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el
//constructor
?

c) El contenido de los atributos seria null, ya que se inicializarian con el constructor
por defecto.

5
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

Lo hice dividiendo el problema en funciones, en lugar de hacer todo el codigo en el metodo main.

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Código de nuestra clase principal ejemplo aprenderaprogramar.com
public class TestPrograma1 {
 
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        TestPrograma1 tp1=new TestPrograma1();
        String result=tp1.intervaloCaracteres(entradaTeclado);
        String result2=tp1.comienzaConA(entradaTeclado);
        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
        System.out.println (result+" y "+result2);
    } //Cierre del main
   
    public String intervaloCaracteres(String texto){
        int x=texto.length();
        String result="La cadena tiene ";
        if(x<5){
            return result+"menos de 5 caracteres";
       
        }else if (x>15){
                    return result+"mas de 15 caracteres";
           
              }else{
                    return result+"entre 5 y 15 caracteres";
              }
    }
   
    public String comienzaConA(String texto){
        String t=texto.substring(0, 1);
        System.out.println("la letra es: "+t);//Prueba
        if(t.startsWith("a")){
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }
} //Cierre de la clase

En esta parte del codigo tengo una duda, porque no puedo comparar un String con "a":
Código: [Seleccionar]
public String comienzaConA(String texto){
        String t=texto.substring(0, 1);
        System.out.println("la letra es: "+t);//Prueba
        if(t=="a"){    // EN ESTA PARTE ESTA MI DUDA
            return "comienza por 'a'";
        }else{
            return "no comienza por 'a'";
        }
    }

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