Autor Tema: Ejercicio (CU00650B) ¿puede una clase java tener atributos que no se usan?  (Leído 3037 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Buenas!

En el ejercicio de este capitulo, se trata de contestar preguntas. El enunciado es el siguiente:

Crea un objeto de tipo Combinador y prueba a ejecutar los dos métodos disponibles pasando distintos parámetros: cadenas con más de tres caracteres, una cadena con más de tres y otra con menos de tres y ambas con menos de tres caracteres. Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?
En la clase tenemos definidos dos atributos o campos. ¿Tienen utilidad conocida a la vista del código de la clase? ¿Se usan en los métodos que tenemos definidos?


Bueno. . . aquí vamos:

Código: [Seleccionar]
package Combinacion;

public class Fusion {
    public Fusion(){} 
   
    public String pegate(String valor1, String valor2){
         if (valor1.length() >= 3 && valor2.length() >= 3){
         String combinacion = valor1.substring(0, 3) + " " + valor2.substring(0, 3);
         return combinacion;   
         }
         else { return "No aporta cadenas válidas"; }       
    }
   
    public String CombinadoSiempre (String valor_texto1, String valor_texto2) {
        int longitud_texto1 = 3; 
        int longitud_texto2 = 3;
        String CombinadoSiempre = "";
        if (valor_texto1.length() < 3) {       
            longitud_texto1 = valor_texto1.length();
        }
        if (valor_texto2.length() < 3) { longitud_texto2 = valor_texto2.length(); }
CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);
return CombinadoSiempre;
    }     
}

En el primer método dice que si valor1 y valor2 es mayor o igual a 3, procede con la combinación de caracteres.. si no es así, devuelve un mensaje diciendo que "No aporta cadenas validas".

Mientras que en el segundo método:

* Se igualan a 3, en variables diferentes, las longitudes máximas de cada palabra.
* Se iguala una variable String a un espacio vacio(se inicializa al parecer con "").
* En el primer método dice que si valor1 y valor2 es mayor o igual a 3, procede con la combinación de caracteres. Mientras que en el segundo método ejecuta.
* Cuenta la cantidad de caracteres de cada variable (valor_texto1 y valor_texto2) con length() para saber si es menor a 3. Si es menor a 3, se procede a almacenar el resultado del length() en la variable longitud_texto.
* En la variable String (CombinadoSiempre) finalmente se procede la mezcla con el numero de caracteres que saco de cada palabra.
 

Prueba 1: parámetros con cadenas con mas de tres caracteres.

A los dos métodos les escribí las cadenas "PowerBuilder" y "VisualStudio".

Resultado:



¿Tiene lógica la respuesta?

Si tiene lógica.. las dos cadenas de texto eran mayor de 3 caracteres ... condición del primer método Combinador (o Pegate ), mientras que en el segundo método (CombinadoSiempre), da igual la cantidad de caracteres que tenga, igual se ejecuta la mezcla.


Prueba 2:: parámetros con cadena de mas de 3 caracteres y otra con menos de 3.

A los dos métodos les escribí las cadenas "PowerBuilder" y "C#".

Resultado:



¿Tiene lógica la respuesta?

Tambíen tiene lógica. En el primer método, como mi segunda cadena de caracteres tan solo tiene 2 letras, no se cumple la segunda condicion del if:

if (valor1.length() >= 3 && valor2.length() >= 3)

Consecuencia a esto, su return del "no aportar caracteres validos".
 
En el segundo método, todo se vale como ya sabemos... la mezcla va, porque va.


Prueba 3: Ambos parámetros con menos de 3 caracteres...

Creo que no hace falta ver... el resultado de esto es igual al anterior... el primer método devolvera "No aporta cadenas válidas", mientras que el segundo siempre combinara.

Citar
Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?

Pues si. Java considera los espacios como caracteres... el método CombinadoSiempre, siempre va a combinar lo que le des como parámetro... hasta espacios.

Citar
En la clase tenemos definidos dos atributos o campos. ¿Tienen utilidad conocida a la vista del código de la clase? ¿Se usan en los métodos que tenemos definidos?

Nunca se usan los atributos... a mi clase si se ve bien, no le declare ni un atributo y funciona todo normal. El constructor, vi que siempre se le debe crear, no importa que este vació. La verdad, opino yo que los atributos declarados en esta clase son inutiles ya que nunca se usan en ningún método...

Ruego y agradezco sus correcciones!!! mil gracias!
« Última modificación: 25 de Marzo 2015, 08:21 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio (CU00650B), método length...
« Respuesta #1 en: 24 de Marzo 2015, 23:42 »
Hola Dan

Tus comentarios son adecuados.

Y tal como dices los atributos que no se usan se podrían eliminar por inútiles.

Saludos

 

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