Asignaciones y operadores.

Podriamos decir que existen dos tipos de asignaciones, las normales, de toda la vida (A=4;) y las asignaciones de objetos (instancias de una clase). Entonces la cosa cambia… Si hago A=B y ambos son objetos, lo que hago es asignar las referencias de A y B. Por lo que a partir de ahora ambas referencias (tanto A como B) apuntan al mismo objeto. Por lo que…. Exacto, a partir de ahora cada vez que cambie el valor de A cambio el valor de B. Osea, es como si le digera al programa. Ehh, que tienes dos objetos iguales, tira uno y quedate con el otro, síguele llamando A o B como te de la gana, pero pa'que tener dos iguales? Ten uno con dos nombres.

  
// Asignacion.java
// Ejemplo de asignacion y como funciona
class Numero{
 int i;
}
public class Asignacion {
 private static void escribe(String a){
   System.out.println(a);
 }
 public static void main(String args[]){
  Numero n1 = new Numero();
  Numero n2 = new Numero();
  n1.i = 9;
  n2.i = 18;
  escribe("1: n1 = " + n1.i + " n2.i = " + n2.i);
  n1.i=32;
  escribe("2: n1 = " + n1.i + " n2.i = " + n2.i);
  n1 = n2; // aqui igualo los dos objetos
  escribe("3: n1 = " + n1.i + " n2.i = " + n2.i);
  // a partir de aqui cualquier cambio será visible para n1 y n2
  n1.i=88;
  escribe("4:n1 = " + n1.i + " n2.i = " + n2.i);
 }
}

Y a por los operadores… Como que soy un poco gandul y considero que ya sabes lo que hacen y no quiero poner ejemplo por ejemplo los voy a poner todos seguidos en un mismo ejemplo. Que como que no eres tonto y no tienen ningún misterio ya vale. Por supuesto hay mas, pero por el momento ya tienes suficiente

//Operadores.java
// Ejemplo de operadores en java
public class Operadores{
 private static void escribe(String a){
  System.out.println(a);
 }
 static void autoincremento(){
  escribe("autoincremento:");
  int i =1;
  escribe("1. i= " + i);
  i++;
  escribe("2. i++= " + i);
  ++i;
  escribe("3. ++i= " + i); 
  i--;
  escribe("1. i--= " + i);
  --i;
  escribe("1. --i= " + i);
  escribe("1. -i= " + -i);
 }
 static void relacionales(){
  int x= 2;
  int z=4;
  escribe("autoincremento:");
  escribe("numero x = "+x+" numero z = "+z);
  escribe("1. numero x = numero z (x==z)?" + (x==z)); // fijate como hay que hacerlo
  Integer a = new Integer(12); // para concatenar una cadena con un boleano
  Integer b = new Integer(12); // si no se quejara...
  escribe("1. objeto a ( " + a + ")= objeto b ("+b+")(a==b)?" + (a==b));
  escribe("1. objeto a ( " + a + ")equals objeto b ("+b+")(a.equals(b))?" + (a.equals(b)) );
 }
 static void logicos(){
  int x= 2;
  int z=4;
  boolean a = true;
  boolean b = false;
  escribe("Lógicos:");
  escribe("numero x = "+x+" numero z = "+z);
  escribe("1. numero x = numero z (x==z)?" + (x==z));
  escribe("2. numero x menor que numero z (xz)?" + (x==z));
  escribe("4. numero x o numero z (x||z) ==> da error un numero no es un boleano");
  escribe("5. BOLEANO a(true) o BOLEANO b(false) (a||b) "+(a||b));
  escribe("7.BOLEANO a(true) y BOLEANO b(false) (a&&b) "+(a&&b));
 }
 static void conversiones(){
  int x= 2;
  long l = (long)x;
  escribe("las conversiones primitivas se hacen asi:");
  escribe("int x = 2;\n long l = (long)x;\n long l2= (long)2;");
  escribe("Pero las clases ya son harina de otro costal.");
  escribe("El caso String ya lo hablaremos mas adelante.");
 }
 public static void main(String args[]){
  autoincremento();
  escribe("-----------------");
  relacionales();
  escribe("-----------------");
  logicos();
  escribe("-----------------");
  conversiones();
 }
}
 
java/3.txt · Última modificación: 2008/05/13 10:00 (editor externo)
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki