Me he fijado en los ejemplos y (creo) que he podido comprender un poco más con respecto a la creación de objetos, métodos y funciones.
Me gustaría saber si es factible crear objetos para "casi" todo, como en mi ejemplo. No tengo claro aún si esto consume más recursos o menos.
Prometo poner comentarios en todo el ejemplo, pero no tengo demasiado tiempo para todo.
Aquí el Main:
/**
* @author (David Martínez)
* @version (a version number or a date)
*/
public class comparadorDeLetras
{
public static void main (String [] args)
{
muestraEnPantalla.pidePalabra (1);
String palabra1 = registra_Teclado.introducePalabra();
muestraEnPantalla.pidePalabra (2);
String palabra2 = registra_Teclado.introducePalabra();
int masLarga = Compara.palabraLarga(palabra1,palabra2); // Asigna el valor recibido al entero masLarga.
int masCorta = Compara.palabraCorta(palabra1,palabra2); // Asigna el valor recibido al entero masCorta.
muestraEnPantalla.palabraMasLarga (masLarga);
muestraEnPantalla.palabraMasCorta (masCorta);
int recorrePalabra=0;
boolean esIgual=false;
String letra1="";
String letra2="";
while (recorrePalabra < masCorta){
letra1 = palabra1.substring(recorrePalabra,recorrePalabra+1);
letra2 = palabra2.substring(recorrePalabra,recorrePalabra+1);
esIgual = Compara.igualdad(letra1,letra2);
muestraEnPantalla.igualdad(esIgual,recorrePalabra,letra1,letra2);
recorrePalabra = recorrePalabra + 1;
}
while (recorrePalabra < masLarga)
{
if (palabra1.length() == masCorta)
{
letra2 = palabra2.substring(recorrePalabra,recorrePalabra+1);
letra1 = "";
}
else
{
letra1 = palabra1.substring(recorrePalabra,recorrePalabra+1);
letra2 = "";
}
esIgual = Compara.igualdad(letra1,letra2);
muestraEnPantalla.igualdad(esIgual,recorrePalabra,letra1,letra2);
recorrePalabra = recorrePalabra + 1;
}
}
}
Una clase solo para leer el teclado:
import java.util.Scanner;
/**
* Write a description of class registra_Teclado here.
*
* @author (David Martinez)
* @version (a version number or a date)
*/
public class registra_Teclado
{
public registra_Teclado()
{
}
static String introducePalabra()
{
Scanner palabra = new Scanner (System.in);
String objPalabra = palabra.nextLine();
return objPalabra;
}
}
Otra para visualizar los datos en pantalla:
/**
* @author (David Martinez)
* @version (a version number or a date)
*/
public class muestraEnPantalla
{
public muestraEnPantalla()
{
}
static void pidePalabra(int y)
{
System.out.println("Introduce la " + y + "ª. palabra.");
}
static void palabraMasLarga (int letras)
{
System.out.println("La palabra mas larga tiene " + letras + " letras.");
}
static void palabraMasCorta (int letras)
{
System.out.println("La palabra mas corta tiene " + letras + " letras.");
}
static void igualdad (boolean iguales,int recorrido, String letra1,String letra2)
{
if (iguales == false && letra1==""){ System.out.println("La palabra1 no tiene letra " + (recorrido + 1));}
else if (iguales == false && letra2==""){ System.out.println("La palabra2 no tiene letra " + (recorrido + 1)); }
else {System.out.println("Letra " + (recorrido + 1) + " igual en las dos palabras? " + iguales);}
}
}
Y la última para comparar los datos:
/**
* @author (David Martinez)
* @version (a version number or a date)
*/
public class Compara
{
/**
* Constructor for objects of class Compara
*/
public Compara()
{
}
static int palabraLarga (String palabra1,String palabra2)
{
int larga = 0;
if (palabra1.length() > palabra2.length()) { larga = palabra1.length();}
else { larga = palabra2.length();}
return larga;
}
static int palabraCorta (String palabra1,String palabra2)
{
int corta = 0;
if (palabra1.length() < palabra2.length()) { corta = palabra1.length();}
else { corta = palabra2.length();}
return corta;
}
static boolean igualdad (String letra1,String letra2)
{
if (letra1.equals(letra2)){ return true;}
else { return false;}
}
}
Volver a agradecer el esfuerzo que se hace por ayudarnos a todos los que queremos aprender..
Espero vuestros consejos.
Gracias