¿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
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 formacuenta1.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.
[...] Si no es mucha molestia me lo puedes explicar, no quiero solo copiar el código y no enterarme porque coño funciona[...]
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"); } }
cuenta1.CompararCuentas1( cuenta2.getNumero_cuenta() );CuentaCorriente.CompararCuentas2(cuenta1.getNumero_cuenta(), cuenta2.getNumero_cuenta());
objeto1.equals(objeto2);//si es un String ignorando si esta en mayuscula o minuscula cadena1.equalsIgnoreCase(cadena2)