Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
Cargando

Autor Tema: ¿Como comparar cuentas?  (Leído 1309 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Duende

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 478
  • /home/duende
    • Ver Perfil
Re:¿Como comparar cuentas?
« Respuesta #20 en: Mayo 26, 2012, 10:53:05 am »
¿Es tu primer lenguaje?

No es enrevesado, realmente. Pero dos semanas es poco tiempo.

La sintaxis quizá puedas aprenderla en un mes o dos, si te pones a ello. Interiorizar el paradigma Orientado a Objetos lleva unos cuantos años.

Ánimo :)

Sí que es mi primer lenguaje de programación, como te dije llevo dos semanas y algo que e comenzado el curso de java. Voy a poner todo de mi parte para poder aprender a programar la verdad me gustaría hacer mis aplicaciones. Gracias por los animos y por las molestias.

ravenhert, enta en lo correcto. POO son 3 cosas Practica, practica, practica.
Cita de: Duende
[...] Si no es mucha molestia me lo puedes explicar, no quiero solo copiar el código y no enterarme porque coño funciona[...]
Así se habla!

Veraz,... Java tiene Objetos y datos nativos. En el codigo, cuenta1 y cuenta2 son  instancias a la clase CuentaCorriente.
cuando colocas un punto después de una instancia, accedes a los elementos públicos de la clase.
Si usas una IDE  (eclipce , netbeans, lo que sea), este lee la clase y te tira una lista de elementos públicos.
Es universal hacer "ctrl+backSpace" para decirle que no te acuerdas los elementos y quieres que te tire la lista en ese momento.
La clase Cuenta Corriente no es la excepción.

Si nos ponemos en POO, he pecado.
pues haces:

cuenta1.CompararCuentas(cuenta1,  cuenta2);
o de la otra forma
cuenta1.CompararCuentas(cuenta1.getNumero_cuenta(), cuenta2.getNumero_cuenta());

Es redundante cuenta1 !!

Se puede solucionar de 2 formas, y eso ( y Eso depende de la semántica (es decir significado) que uno le quiera dar ).
Pero te muestro las 2:
Código: [Seleccionar]
public void CompararCuentas1(CuentaCorriente cuenta2 )
    {
        if ( this.getNumero_cuenta().compareTo( cuenta2.getNumero_cuenta()  ) ==0  )
        {
            System.out.println("son iguales");
        }
        else
        {
            System.out.println("No son iguales");
        }     
       
    }


public static void CompararCuentas2(CuentaCorriente cuenta1, CuentaCorriente cuenta2 )
    {
        if ( cuenta1.getNumero_cuenta().compareTo( cuenta2.getNumero_cuenta()  ) ==0  )
        {
            System.out.println("son iguales");
        }
        else
        {
            System.out.println("No son iguales");
        }     
       
    }

Se llamarían así:
Código: [Seleccionar]
 cuenta1.CompararCuentas1( cuenta2.getNumero_cuenta() );

CuentaCorriente.CompararCuentas2(cuenta1.getNumero_cuenta(), cuenta2.getNumero_cuenta());

La Semántica del CompararCuentas2 dice que es un problema de la clase, es decir todas las instancias de CuentaCorriente.
La Semántica del CompararCuentas1 dice que es un problema de la instancia de CuentaCorriente.

El POO, no es mi fuerte y puede que no este en lo correcto en eso de la semantica, pero así lo vería yo, como ajeno al código y debo usarlo.


¿Que es this? Es la instancia que llamo a ese método. En ejemplo  CompararCuentas1, es cuenta1. Un metodo static no podría tener this, pues no pertenece a ninguna instancia.
Una instancia nula que llama a un método, aborta el programa a menos que manejes un NullPointerException, pues es un método de nadie.


Muchisimas gracias por las explicaciones que me as dado son claritas y se entiende muy bien. Saludos y gracias de veras.


Desconectado "NuLL"

  • Nuevo en la comunidad [L1]
  • **
  • Mensajes: 67
  • what do you think abaout this?
    • Ver Perfil
Re:¿Como comparar cuentas?
« Respuesta #21 en: Mayo 28, 2012, 08:18:30 am »
tambien podrias tratar usando equals me gusta mas XD

Código: [Seleccionar]
objeto1.equals(objeto2);
//si es un String ignorando si esta en mayuscula o minuscula
cadena1.equalsIgnoreCase(cadena2)
« última modificación: Mayo 28, 2012, 08:21:55 am por "NuLL" »