¿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.
[...] 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:
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í:
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.