Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: RaGa en 08 de Marzo 2015, 01:13
-
Buenas tardes.
Este es mi primera participación activa en el foro.
Vengo leyendo todas las Entregas y haciendo los Ejercicios propuestos.
Gracias al foro he podido ir comparando (y aprendiendo) con los programas que se comparten; lo mismo con las observaciones que se hacen sobre ellos.
Este es mi versión para el Ejercicio de la Entrega Nº62 (CU00662B).
public class CU00662B{ // Definición de clase
//Declaracion de campos de instancia vacía
public static void main (String[] args){ // función main
System.out.print("Ingrese Primera Palabra :");
String palabra1 = Teclado.leer();
System.out.print("Ingrese Segunda Palabra :");
String palabra2 = Teclado.leer();
System.out.println("");
int limiteSuperior;
int limiteInferior;
int palabraCorta;
if(palabra1.length() < palabra2.length()){
limiteInferior = palabra1.length();
palabraCorta = 1;
limiteSuperior = palabra2.length();}
else
{limiteInferior = palabra2.length();
palabraCorta = 2;
limiteSuperior = palabra1.length();}
for (int i=0;i<limiteSuperior;i++){
if (i<limiteInferior){
System.out.print("¿Letra "+(i+1)+" igual en las dos palabras? ");
System.out.print(palabra1.substring(i,i+1).equals(palabra2.substring(i,i+1))+"\n");
}
else{
System.out.print("La palabra "+palabraCorta+" no tiene letra "+(i+1)+"\n");
}
} // fin bucle for
} // fin main
} // fin clase
El método que sirve para ingresar los datos por teclado está en otro clase.
Mi intención además de intentar "pensar en POO" persigue el objetivo de la eficiencia.
Creería que de esta manera, es decir que el objeto Scanner sea local de un método, ahorra recursos ya que una vez que devuelve el String deja de existir. No sucedería lo mismo si la instanciación del objeto Scanner se hiciera dentro del main.
¿Son correctas estas apreciaciones?
import java.util.Scanner;
public class Teclado{
//Declaracion de campos de instancia de la clase
public Teclado(){
}
static String leer(){
Scanner scannerTeclado = new Scanner (System.in);
String valorTeclado = scannerTeclado.nextLine();
return valorTeclado;
}
} // Fin de la clase
-
Hola RaGa
Tu ejercicio está más que correcto. Enhorabuena.
Tus mensajes por consola aportan la información necesaria para entender los pasos del programa.
Y tienes razón, ahorras recursos al colocar en clase aparte el código para escanear el teclado. En este caso, después de usar el método leer(), la clase ha terminado su función y devuelve la memoria al sistema. OK
Saludos y adelante.
-
Hola, poco que añadir: únicamente comentar que el nombre de la clase public class Teclado { no encaja bien dentro de la convención para nombrar clases y métodos en programación orientada a objetos. El nombre de una clase debe indicar lo que es (lo que representa) o lo que hace. Esta clase no representa un teclado, por tanto sería mejor nombre algo como GestionadorEntradasTeclado. Así podríamos decir "he creado un objeto Gestionador de entradas de teclado" en lugar de "he creado un objeto Teclado".
Saludos.