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

Páginas: 1 [2] 3
21
Estas son mis respuestas.

Busca información en la documentación oficial de Java sobre la interface Iterable. ¿Qué clases de las que conoces implementan esta interface?

Pues que conozco o haya utilizado, ArrayList. La interface es implementada por muchas otras clases, generalmente clases que implementan colecciones.


¿Qué método han de tener disponible las clases que implementan esta interface?

Unicamente el metodo iterator.


¿Para qué sirve este método?


Este metodo devuelve un objeto de tipo Iterator con una copia de la colección que le hayamos pasado como parametro.

22
Hola, aqui tengo mi solución para este ejercicio.

La clase Circulo:

Código: [Seleccionar]
public class Circulo
{
    private static final double NUMEROPI=3.1416;
    private double radio;

    public Circulo(){
        radio=0;
    }
   
    public void setRadio(double radio){
        this.radio=radio;
    }
    public double getRadio(){   
        return radio;
    }
    public double longitudCirculo(){    //la longitud de una circunferencia es,  Longitud=2*pi*radio
        double longitud=(2*NUMEROPI*radio);
        return longitud;
    }
       
    public double areaCirculo(){      //El área del círculo es igual a pi por el radio al cuadrado..
        double area=((radio*radio)*NUMEROPI);
        return area;
    }
}


Y la clase Main:

Código: [Seleccionar]
import java.util.Scanner;
public class Main
{
    public static void main(String[]args){
        System.out.println("Introduce el radio del circulo a crear: ");
        Scanner sc=new Scanner(System.in);
        double entradaTeclado=sc.nextDouble();
        Circulo circulo=new Circulo();
        circulo.setRadio(entradaTeclado);
        System.out.println("El area del circulo es: " + circulo.areaCirculo() + " cm2");
        System.out.println("La longitud del circulo es: " + circulo.longitudCirculo() + " cm");
    }
}

Ahora tengo un par de preguntas con respecto a la solución que da este programa.
En primer lugar, las medidas devueltas tienen 4 decimales. ¿Como se puede hacer para que salgan dos? He estado buscando información y lo que he encontrado hace referencia a la clase DecimalFormat, pero esta clase lo que hace es limitar la representación grafica pero no modifica el numero, es decir, si el número es 3,4599, utilizando la clase DacimalFormat muestra, 3,45, por ejemplo, si quiero solo dos decimales. Pero lo que yo quiero que salga es 3,46, la cantidad redondeada.
¿como se puede hacer esto?

Y otra, mas que duda, curiosidad, en el texto a imprimir quiero que salga la medida del area seguida de cm cuadrados, ¿como puedo representar el exponente de cm?

Un saludo y muchas gracias. 

23
Gracias por la aclaración.
Un saludo.

24
Muchisimas gracias por tu consejo. Si te digo la verdad, al principio comence todo el codigo, menos la clase entradaTeclado, en la clase Main. Pero decidi separarlo en clases. No era ni mucho menos tan limpio y eficiente como el que me das...claro, pero si pense en crear clases y hacer llamadas mas que en escribir todo el codigo seguido.

A partir de ahora tendre en cuenta tus consejos a la hora de planificar el trabajo.

En cuanto a estas lineas,
  numeroTecleado = inputKB.nextInt();
  numeroTecleado = Integer.valueOf(inputKB.nextLine());
Comprendo la primera, el metodo nexInt de la clase Scanner, pero en la segunda tengo una duda, el metodo valueOf de la clase Integer, pasa de String a Integer pero este Integer se le asigna directamente a la variable numeroTeclado, que es un int.
¿Esto se puede hacer directamente siempre, de Integer a int?
Muchas gracias por vuestra ayuda.
Un saludo.

25
Muchas gracias por la aclaración. Ahora lo entiendo.
Un saludo.

26
Hola, aqui esta mi solución a este ejercicio.
Primero la clase entradaTeclado:
Código: [Seleccionar]
import java.util.Scanner;

public class EntradaTeclado
{
    private String entradaTeclado;
   
    //constructor
    public EntradaTeclado(){
        entradaTeclado="";
    }
   
    //metodo de la clase
    public void pedirEntrada(){
        Scanner sc=new Scanner(System.in);
        entradaTeclado=sc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTeclado;
    }
}

Ahora, la clase que he hecho para crear el número aleatorio a adivinar:


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

public class NumeroAleatorio
{
    private Random numAleatorio;
    int numSecreto;
   
    public NumeroAleatorio(){
        numAleatorio=new Random();
        numSecreto=0;
        numSecreto=numAleatorio.nextInt(100)+1;//el metodo nextInt devuelve un numero entre 0 y 99, le sumo 1 para que el numero a adivinar este entre 1 y 100
        System.out.println("Se ha generado un número aleatorio entre 1 y 100, intente adivinarlo");
        System.out.println(numSecreto);// es una prueba para comprobar que funciona bien el codigo
    }
   
    public int getNumeroAleatorio(){
        return numSecreto;
    }
}

Esta clase la he hecho para pasar de la entrada de teclado de tipo String a int:

Código: [Seleccionar]
public class DeStringAInt
{
    private String objetoString;
    private int numIntroducido;
   
    public DeStringAInt(){
        objetoString="";
        numIntroducido=0;
    }
   
    public int pasarAInt(String objetoString){//recibo como parametro la entrada de teclado de tipo String
        Integer aux=0 ;// creo una variable aux Integer
        aux=aux.valueOf(objetoString);//Paso la variable String a Integer
        int numIntroducido=(int)aux;//paso a int el objeto integer
        return numIntroducido;// se devuelve un objeto tipo int
    }
}

Y esta es la clase main:

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

public class AdivinaElNumero
{
    public static void main(String[]args){
        NumeroAleatorio numAleatorio;//declaro objeto tipo NumeroAleatorio
        numAleatorio= new NumeroAleatorio();// creo objeto tipo NumeroAleatorio
        int numSecreto=numAleatorio.getNumeroAleatorio();//el objeto devuelto es de tipo int

        EntradaTeclado sc=new EntradaTeclado();
        sc.pedirEntrada();//la entrada de teclado es un String
       
        DeStringAInt numero=new DeStringAInt();//creo un objeto de tipo DeStringAInt
        int numIntroducido=numero.pasarAInt(sc.getEntrada());//el tipo devuelto por el metodo pasarAInt es un int

        while(numIntroducido!= numSecreto ){
            if (numIntroducido < numSecreto){
                System.out.println("No has acertado, el número secreto es mayor. Prueba otra vez");
                sc.pedirEntrada();
                numIntroducido=numero.pasarAInt(sc.getEntrada());
            }else if(numIntroducido > numSecreto){
                System.out.println("No has acertado, el número secreto es menor. Prueba otra vez");
                sc.pedirEntrada();
                numIntroducido=numero.pasarAInt(sc.getEntrada());
            }
        }
        System.out.println("Enhorabuena!! has acertado");
    }
}

Un saludo y gracias por los consejos.

27
Hola,
esta es mi solución a este ejercicio:
Código: [Seleccionar]
import javax.swing.JOptionPane;
public class ejemploLibro {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        Integer entradaUsuarioInt=0;
        entradaUsuarioInt=entradaUsuarioInt.valueOf(entradaUsuario);//me da un error y me pide inicializar la variable entradaUsuarioInt
        System.out.println ("El doble del número introducido es: " + 2*entradaUsuarioInt);
    }
}

Y una pregunta, porque no me queda clara una cosa.
Cuando estaba escribiendo el codigo, intente hacerlo primero con el tipo int y me devolvio un error el metodo valueOf. Al hacerlo con el tipo Integer, me desaparecio el error.
¿es porque no se puede transformar de un String a un int? ya que el metodo valueOf siempre devuelve un String, ¿verdad?
Un saludo.

28
Hola,
Aqui esta mi solución a este ejercicio:
Código: [Seleccionar]
import java.util.Scanner;

public class ClaseMain
{
    public static void main(String[]arg){
        String[]mes={"emero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
        String mesSecreto=mes[3]; // el mes secreto es abril...no marzo.
        System.out.print("Adivine el mes secreto. Introduzca el nombre del mes en minusculas: ");
        Scanner sc=new Scanner(System.in);
        String entradaTeclado=sc.nextLine();

        while (!entradaTeclado.equals(mesSecreto)){
            System.out.print("No ha acertado. Intente adivinarlo introduciendo otro mes: ");
            entradaTeclado=sc.nextLine();
        }
        System.out.println("¡Ha acertado!");
    }
}

Un saludo.

29
Tendre en cuenta tus consejos apartir de ahora.
Lo del text..fue un despiste por otra cosa que estaba haciendo al mismo tiempo que este codigo.
Un saludo.

30
Ahora si lo veo claro.
Muchas gracias.

31
Estas son mis respuestas:

¿Se puede acceder a un objeto anónimo contenido en un ArrayList?

Creo que si, ya que a un ArrayList se accede por el indice que posee.

¿Se puede inicializar un objeto de una clase que contiene tres atributos de tipo objeto declarando en el constructor que los atributos se inicializan mediante objetos anónimos?

Creo que no, ya que al declarar los atributos, ya les estamos asignando un nombre, con lo que dejan de ser anonimos.

Un saludo.

32
Pues aqui esta mi solución para este ejercicio.
Como siempre, agradezco sujerencias para mejorar el codigo.

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

public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
    private String nombre;//establecemos o declaramos un atributo nombre de la lista

    public ListaCantantesFamosos(String valor_nombre){
        nombre=valor_nombre;
        listaCantantesFamosos=new ArrayList<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
    }

    public void addCantante(CantanteFamoso valor_nombre){
        listaCantantesFamosos.add(valor_nombre);
    }
   
    public void listar(){
        Iterator<CantanteFamoso>it=listaCantantesFamosos.iterator();//creamos la copia creando un objeto iterator
        CantanteFamoso tmpCantanteFamoso=new CantanteFamoso("","");//creamos el objeto CantanteFamoso temporal para guardar el que saquemos de la lista
        while(it.hasNext()){//devuelve true si el objeto no es el  ultimo de la collección
            tmpCantanteFamoso=it.next();//sacamos de la lista un objeto CantanteFamoso, el metodo next() ha avanzado ya al siguiente elemento...
            System.out.println("Cantante: "+ tmpCantanteFamoso.getCantante());
            System.out.println("Disco mas vendido: "+ tmpCantanteFamoso.getDisco());
        }
    }
    public void introducirNuevoCantante(){
        System.out.println("Por favor, introduzca otro cantante: \nNombre:");
        Scanner sc=new Scanner(System.in);
        String entradaNombre=sc.nextLine();
        System.out.println("Disco:");
        String entradaDisco=sc.nextLine();
        CantanteFamoso newCantante3=new CantanteFamoso(entradaNombre,entradaDisco);
        listaCantantesFamosos.add(newCantante3);
        System.out.println("La lista actualizada contiene los siguientes nombres");
        listar();
    }
   
       
}
clase CantanteFamoso:
Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;

    public CantanteFamoso(String valor_nombre, String valor_disco){
        nombre=valor_nombre;
        discoConMasVentas=valor_disco;
    }

    public void setCantante(String valor_nombre){
        nombre=valor_nombre;
    }

    public String getCantante(){
        return nombre;
    }

    public void setDisco(String valor_disco){
        discoConMasVentas=valor_disco;
    }

    public String getDisco(){
        return discoConMasVentas;
    }

}
y clase TextListaCantantesFamosos:
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class TextListaCantantesFamosos
{
    public static void main(String[]arg){
        ListaCantantesFamosos lista=new ListaCantantesFamosos("lista");//creamos un objeto ArrayList
        CantanteFamoso newCantante1=new CantanteFamoso("Madonna","no se");//creamos un objeto tipo CantanteFamoso
        CantanteFamoso newCantante2=new CantanteFamoso("BonJovi","puede ser..");//creamos un objeto tipo CantanteFamoso
        lista.addCantante(newCantante1);
        lista.addCantante(newCantante2);


        System.out.println("La lista inicial contiene los siguientes nombres");
        lista.listar();

        lista.introducirNuevoCantante();

        boolean aux=true;
        while(aux==true){

            System.out.println("¿Desea introducir otro cantante (S/N)?");
            Scanner sc=new Scanner(System.in);
            String decision=sc.nextLine();
            if(decision.equalsIgnoreCase("S")){
                lista.introducirNuevoCantante();
                aux=true;
            }else{
                aux=false;
            }

        }
    }
}
Un saludo.

33
Muchas gracias, sabia que era una tonteria pero es de esos errores que por mucho que lo repases no ves...
Pues aqui esta mi solución para este ejercicio.
Como siempre, agradezco sujerencias para mejorar el codigo.

Clase ListaCantantesFamosos:

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

public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
    private String nombre;//establecemos o declaramos un atributo nombre de la lista

    public ListaCantantesFamosos(String valor_nombre){
        nombre=valor_nombre;
        listaCantantesFamosos=new ArrayList<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
    }

    public void addCantante(CantanteFamoso valor_nombre){
        listaCantantesFamosos.add(valor_nombre);
    }
   
    public void listar(){
        Iterator<CantanteFamoso>it=listaCantantesFamosos.iterator();//creamos la copia creando un objeto iterator
        CantanteFamoso tmpCantanteFamoso=new CantanteFamoso("","");//creamos el objeto CantanteFamoso temporal para guardar el que saquemos de la lista
        while(it.hasNext()){//devuelve true si el objeto no es el  ultimo de la collección
            tmpCantanteFamoso=it.next();//sacamos de la lista un objeto CantanteFamoso, el metodo next() ha avanzado ya al siguiente elemento...
            System.out.println("Cantante: "+ tmpCantanteFamoso.getCantante());
            System.out.println("Disco mas vendido: "+ tmpCantanteFamoso.getDisco());
        }
    }
    public void introducirNuevoCantante(){
        System.out.println("Por favor, introduzca otro cantante: \nNombre:");
        Scanner sc=new Scanner(System.in);
        String entradaNombre=sc.nextLine();
        System.out.println("Disco:");
        String entradaDisco=sc.nextLine();
        CantanteFamoso newCantante3=new CantanteFamoso(entradaNombre,entradaDisco);
        listaCantantesFamosos.add(newCantante3);
        System.out.println("La lista actualizada contiene los siguientes nombres");
        listar();
    }
   
       
}

clase CantanteFamoso:

Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;

    public CantanteFamoso(String valor_nombre, String valor_disco){
        nombre=valor_nombre;
        discoConMasVentas=valor_disco;
    }

    public void setCantante(String valor_nombre){
        nombre=valor_nombre;
    }

    public String getCantante(){
        return nombre;
    }

    public void setDisco(String valor_disco){
        discoConMasVentas=valor_disco;
    }

    public String getDisco(){
        return discoConMasVentas;
    }

}

y clase TextListaCantantesFamosos:

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

public class TextListaCantantesFamosos
{
    public static void main(String[]arg){
        ListaCantantesFamosos lista=new ListaCantantesFamosos("lista");//creamos un objeto ArrayList
        CantanteFamoso newCantante1=new CantanteFamoso("Madonna","no se");//creamos un objeto tipo CantanteFamoso
        CantanteFamoso newCantante2=new CantanteFamoso("BonJovi","puede ser..");//creamos un objeto tipo CantanteFamoso
        lista.addCantante(newCantante1);
        lista.addCantante(newCantante2);


        System.out.println("La lista inicial contiene los siguientes nombres");
        lista.listar();

        lista.introducirNuevoCantante();

        boolean aux=true;
        while(aux==true){

            System.out.println("¿Desea introducir otro cantante (S/N)?");
            Scanner sc=new Scanner(System.in);
            String decision=sc.nextLine();
            if(decision.equalsIgnoreCase("S")){
                lista.introducirNuevoCantante();
                aux=true;
            }else{
                aux=false;
            }

        }
    }
}

Un saludo.

34
Hola,

Tengo un problema con este ejercicio. Me sale el error 'cannot find symbol- class ArrayList' en la clase ListaCantantesFamosos:

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

public class ListaCantantesFamosos
{
    private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
    private String nombre;//establecemos o declaramos un atributo nombre de la lista

    public ListaCantantesFamosos(String valor_nombre){
        nombre=valor_nombre;
        listaCantantesFamosos=new Arraylist<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
    }

    public void addCantante(CantanteFamoso valor_nombre){
        listaCantantesFamosos.add(valor_nombre);
    }
}

La clase CantanteFamoso es :
Código: [Seleccionar]
public class CantanteFamoso
{
    private String nombre;
    private String discoConMasVentas;
   
    public CantanteFamoso(String valor_nombre, String valor_disco){
        nombre=valor_nombre;
        discoConMasVentas=valor_disco;
    }
}

No consigo ver porque me sale el error.

Si me podeis ayudar.

Muchas gracias.

35
Hola.
Aqui mando los codigos de este ejercicio. La verdad es que lo veo muy repetitivo en la clase del main y ademas, me ha costado mucho ver como implementar la elección con un while....se hace, pero no me gusta como ha quedado. Pero no se me ocurre otra forma de hacerlo. Me vendrian bien algunas sujerencias.
Un saludo.

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

public class ListaCantantesFamosos
{
    private String nombreLista;//establecemos un atributo nobre de la lista
    private ArrayList<String> listaCantantes;//declaramos un ArrayList que contiene objetos Strnig
   
    public ListaCantantesFamosos(String nombre){
        nombreLista=nombre;
        listaCantantes=new ArrayList<String>();//creamos el objeto de tipo ArrayList
       
        listaCantantes.add("Madonna");
        listaCantantes.add("Queen");
        listaCantantes.add("Bruce Springsteen");
       
    }
   
    public void addNombre(String nombre){
        listaCantantes.add(nombre);
    }
    public String getNombre(int posicion){//metodo para obtener un nombre de la lista, segun su indicie
        if(posicion>=0 && posicion<listaCantantes.size()){
            return listaCantantes.get(posicion);
        }else{
            return "No existe nombre para la posición solicitada";
        }
    }
   
    public void listarNombres(){
        for (String nombre:listaCantantes){
            System.out.println(nombre);
        }
    }
   
}

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

public class testListaCantantes
{
    public static void main(String[]args){
        ListaCantantesFamosos lista=new ListaCantantesFamosos("Lista cantantes");
        lista.addNombre("Bon Jovi");//añado un mobre mas a la lista...probando...

        System.out.println("La lista esta formada por estos nombres:");
        lista.listarNombres();

        System.out.println("Introducir un nuevo nombre a la lista");
        Scanner sc=new Scanner(System.in);
        String newNombre=sc.nextLine();
        lista.addNombre(newNombre);
        System.out.println("La lista esta formada por estos nombres:");
        lista.listarNombres();

        boolean aux=true;
        while(aux==true){
            System.out.println("¿Quieres introducir más nombres? S/N");
            String eleccion=sc.nextLine();

            if(eleccion.equalsIgnoreCase("S")){//equalsIgnoreCase es el metodo para comparar sin tener en cuenta si es mayusculas o minusculas
                System.out.println("Introducir un nuevo nombre a la lista");
                String newN=sc.nextLine();
                lista.addNombre(newN);

                System.out.println("La lista esta formada por estos nombres:");
                lista.listarNombres();
                aux=true;
            }else{
                aux=false;//siempre que la respuesta no sea S, se saldra del programa.
            }

        }

    }
}


36
Gracias por el consejo. La verdad es que por falta de constumbre, mezclo español e ingles en las declaraciones y a veces es un lio.
Un saludo.

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

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


39
Entonces,  ¿los objetos b y c tienen valor NULL desde el principio, ya que no se han inicializado y cuando se crea un nuevo objeto a no tiene valor NULL porque se ha inicializado con new?

40
Hola, gracias por el consejo.
¿Asi estaría correcto?, por que tengo una duda...
Código: [Seleccionar]
import java.util.Scanner;

public class TextEquals2
{

    public static void main(String[]args){
        String text1="";
        String text2="";
        String textLarge="";
        String textShort="";
        int x=0;
        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()){
            textLarge=text1;
            textShort=text2;
            x=2;
        }else if(text1.length()<text2.length()){
            textLarge=text2;
            textShort=text1;
            x=1;
        }
        if (text1.length()==text2.length()){
            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");
                }
            }

        }else{
            int i=0;
            while(i<textShort.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<textLarge.length();i++){
                System.out.println("La palabra "+ x +" no tiene letra "+ (i+1));
            }

        }
    }
}

Mi duda es: ¿es correcto hacer la inicialización de los atributos text1, text2, textLarge, textShort y x, fuera de un constructor, donde es por definición donde se inicializan?

Gracias.

Páginas: 1 [2] 3

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