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.


Temas - el_calderas

Páginas: 1 [2]
21
Hola, esta es mi solución para este ejercicio del curso de java.

He utilizado tres clases, la clase ListaCantantesFamosos:

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

public class ListaCantantesFamosos
{
    private ArrayList<String>nombresCantantes;  //declaramos un objeto de tipo ArrayList
    private String nombreLista; //siempre hay que crear el objeto que contiene el nombre del array que creamos.
   
    //constructor
    public ListaCantantesFamosos(String nombre){ //al llamar al constructor nos pedira que introduzcamos el nombre de la lista
        nombreLista=nombre;
        nombresCantantes=new ArrayList<String>();
        nombresCantantes.add("Madona");// con el constructor, añadimos directamente 3 nombres a la lista
        nombresCantantes.add("Queen");
        nombresCantantes.add("Bon Jovi");
    }
   
    public void addNombre(String newNombre){//metodo para añadir nombres a la lista
        nombresCantantes.add(newNombre);
    }
       
    public String getNombre(int posicion){//metodo para obtener un nombre de la lista, segun su indicie
        if(posicion>=0 && posicion<nombresCantantes.size()){
            return nombresCantantes.get(posicion);
        }else{
            return "No existe nombre para la posición solicitada";
        }
    }
   
    public int getTamaño(){//metodo para obtener el tamaño de la lista
        return nombresCantantes.size();
    }
   
    public void removeNombreLista(int posicion){//metodo para borrar un nombre de la lista
        if (posicion>=0 && posicion<nombresCantantes.size()){
            nombresCantantes.remove(posicion);
        }else{} //no exite nombre para la posicion solicitada. No se ejecuta ninguna instruccion
    }
}

La clase que contiene el main, TextListaCantantes:

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

public class TextListaCantantes
{
    public static void main (String[]args){
        int x;
        System.out.println("¿Cuantos nombres vas a introducir?");
        Scanner sc=new Scanner(System.in);// se crea un objeto de tipo Scanner
        x=sc.nextInt();//nextInt(): metodo para leer un entero con la clase Scanner. Se lee el entero de cuantos nombres se van a introducir
        sc.nextLine();//limpiar bufer de entrada. SIEMPRE acontinuación de leer datos numericos y despues se tenga que leer datos de tipo caracter.

        ListaCantantesFamosos lista=new ListaCantantesFamosos("Cantantes");// se crea un objeto de tipo Array(String)(ListaCantantesFamosos)
        for(int i=0;i<x;i++){
            System.out.println("Por favor, introduzca nombre de cantante");
            EntradaDeTeclado entrada=new EntradaDeTeclado(); //Se crea un objeto tipo EntradaTeclado. Se utiliza la clase EntradaDeTeclado.
            lista.addNombre(entrada.getEntrada());//addNombre():metodo de la clase ListaCantantesFamosos para añadir un nombre a la lista
        }

        System.out.println("La lista ha quedado formada por:");
        for(int i=0;i<lista.getTamaño();i++){
            System.out.println(lista.getNombre(i));
        }
    }
}

Y la clase que ya utilizamos en otro ejercicio, EntradaDeTeclado:

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

public class EntradaDeTeclado
{
    private String entradaTeclado; //variable de instancia(campo) de la clase
   
    public EntradaDeTeclado(){ //constructor
        entradaTeclado=""; //inicializamos la instancia de la clase
        pedirEntrada(); // Esto es una llamada a un método interno. Al crear un objeto automaticamente, ejecutamos el metodo
    }
   
    public void pedirEntrada(){ //metodo de la clase
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
    }
   
    public String getEntrada(){
        return entradaTeclado;
    }
   
    //en esta prueba no se utilizan estos metodos
    public String getPrimeraPalabra(){
       
        for(int i=0;i<entradaTeclado.length()-1;i++){
            if(entradaTeclado.substring(i,i+1).equals(" ")){
                return entradaTeclado.substring(0,i+1);
            }
        }
        return entradaTeclado; //en el caso de que no se detecte ningun espacio, devolvemos lo que haya
    }
   
    public int getLongitud(){
        return entradaTeclado.length();
    }
}

Un saludo.

22
Consulta la clase Stack en el API de Java.
¿Cómo se llama el método para consultar el objeto en la cima de la pila?


Seria peek().

¿Cómo se llama el método para consultar si la pila está vacía?

Seria empty().

¿El método pop podríamos clasificarlo como tipo procedimiento, como tipo función, o como tipo mixto (procedimiento y función)?

El metodo pop(), borra el objeto de la cima de la pila y devuelve como valor, este objeto.

Creo que sería un metodo tipo función, además de porque devuelve un objeto, porque en su declaración: public (tipo) pop(); comienza por un tipo.


23
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?


Creo que si, si al diseñar el constructor del tipo TripulacionAvion hacemos una asignación de tipo = entre dos atributos con un tercero, con lo que los tres apuntarian a un mismo objeto. A su vez, habria dos objetos que ya no estarian apuntados por ninguna variable, por lo que serian  inaccesibles.

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

No, serían tres objetos distintos, aunque tuviesen la misma información.

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

Pues depende, si el constructor esta vacio y no inicializa los atributos, estos se inicializan por defecto con valor nulo o si son tipos definidos en otra clase, que es el caso, como se haya definido en el constructor de la otra clase.

Un saludo.

24
Hola, este es el primer codigo que subo al foro.
Agradeceria cualquier comentario, consejo o correción que veais.

Un saludo.

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

public class TextEquals
{

    public static void main(String[]args){
        String text1="";
        String text2="";
        System.out.println("Introduce primer texto");
        Scanner imput1=new Scanner(System.in);
        text1=imput1.nextLine();
        System.out.println("Introduce segundo texto");
        Scanner imput2=new Scanner(System.in);
        text2=imput2.nextLine();

        if(text1.length()>text2.length()){
            int i=0;
            while(i<text2.length()){
                if(text1.substring(i,i+1).equals(text2.substring(i,i+1))){
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? Cierto");
                }else{
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? falso");
                }
                i++;
            }
            for(;i<text1.length();i++){
                System.out.println("La palabra 2 no tiene letra "+ (i+1));
            }
        }else if(text1.length()<text2.length()){
            int i=0;
            while(i<text1.length()){
                if(text1.substring(i,i+1).equals(text2.substring(i,i+1))){
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? Cierto");
                }else{
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? falso");
                }
                i++;
            }
            for(;i<text2.length();i++){
                System.out.println("La palabra 1 no tiene letra "+ (i+1));
            }
        }else{
            for(int i=0;i<text2.length();i++){
                if(text1.substring(i,i+1).equals(text2.substring(i,i+1))){
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? Cierto");
                }else{
                    System.out.println("¿Letra "+ (i+1) +" igual en las dos palabras? falso");
                }
            }
        }
    }
}

Páginas: 1 [2]

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