Вы находитесь на странице: 1из 15

SCJP 6

Clase 4 Operadores

Ezequiel Aranda
Sun Microsystems Campus
Ambassador

Disclaimer & Acknowledgments


>Even though Ezequiel Aranda is a full-time employee of Sun
Microsystems, the contents here are created as his own
personal endeavor and thus does not reflect any official
stance of Sun Microsystems.
>Sun Microsystems is not responsible for any inaccuracies in
the contents.
>Acknowledgments The slides of this presentation are made
from SCJP Unit 4 by Warit Wanwithu and Thanisa
Kruawaisayawan and SCJP Workshop by P. Srikanth.
>This slides are Licensed under a Creative Commons
Attribution Noncommercial Share Alike 3.0
>http://creativecommons.org/licenses/by-nc-sa/3.0/

AGENDA
>Operadores de asignacin
>instanceof
>Concatenacin de Strings
>Operador condicional
>Operadores lgicos

Operadores de asignacin
>Cuando asignamos un valor a un primitivo, el
tamao importa. Debemos estar seguros de si
se dar un casting implcito, uno explicito o si
se truncar el nmero.
>Una variable de referencia no es un objeto. Es
una forma de alcanzar un objeto.
>Cuando asignamos un valor a una variable de
referencia, el tipo importa. Debemos recordar
las reglas para supertipos, subtipos y arrays.

Igualdad en referencias a objetos


>El operador == observa los bits en la variable,
y en el caso de las referencias esto significa
que si los bits en ambas variables de
referencia son iguales, entonces ambas hacen
referencia al mismo objeto.
JButton a = new JButton("Exit");
JButton b = new JButton("Exit");
JButton c = a;
System.out.println("a == b? " + (a ==
b));
System.out.println("a == c? " + (a ==
c));

Comparacin con instanceof


>Es verdadera si el objeto
en el lado izquierdo del
operador pasa la prueba
ES UN para la clase o
interfaz en el lado
derecho.
>Los arrays son objetos,
incluso cuando son
arrays de primitivos.

class A { }
class B extends A {
public static void main (String [] args) {
A myA= new B();
m2(myA);
}
public static void m2(A a) {
if (a instanceof B)
((B)a).doBstuff(); //downcast
}
public static void doBstuff(){
System.out.println("'a' refers to a B");
}
}

Operador de concatenacin en
Strings
String a = "String";
int b = 3;
int c = 7;
System.out.println(a+ b + c);

>El signo +, actuar como un operador de


suma o como uno de concatenacin cuando
opere las variables b y c?
>Y si hicieramos b+c+a?

Operador de concatenacin en
Strings (II)

>Comenzamos con el String a, y le agregamos


el carcter 3 (b), para producir el String
String3. Despus agregamos el carcter 7
(c), para producir el String String37, luego
lo imprimimos.
>Si ambos operandos son Strings, + actuar
como operador de concatenacin. Si ambos
son nmeros, + actuar como operador de
adicin.

Operador condicional
>El operador condicional es un operador
ternario que se utiliza para evaluar
operaciones booleanas en forma similar al if.
>La diferencia es que en vez de ejecutar un
bloque de cdigo, slo podremos asignar un
valor a una variable.
x = (boolean expression) ? value to
assign if true : value to assign
if false

class Salary {
public static void main(String[] args) {
int numOfPets = 3;
String status = (numOfPets<4) ?
Pet limit not exceeded :
too many pets;
System.out.println("This pet status is "
+ status);
}
}

Operadores lgicos de
cortocircuito

>Los operadores && y || evalan


solo valores booleanos.
>&&: short-circuit AND
>||: short-circuit OR
>Se llaman de cortocircuito porque
evalan primero el lado izquierdo
de la operacin y si logra una
resolucin, no evala la parte
derecha.

XOR
>El operador XOR (^) no
es de cortocircuito
>Para que una operacin
XOR evale a true, uno y
slo uno de los operandos
debe evaluar a true.

class Feline {
public static void main(String[] args) {
Long x = 42L; Long y = 44L;
System.out.print(" " + 7 + 2 + " ");
System.out.print(foo() + x + 5 + " ");
System.out.println(x + y + foo());
}
static String foo() { return "foo"; }
}

>Cul es el resultado?
A. 9 foo47 86foo B. 9 foo47 4244foo
C. 9 foo425 86foo D. 9 foo425 4244foo
E. 72 foo47 86foo F. 72 foo47 4244foo
G. 72 foo425 86foo H. 72 foo425 4244foo

Preguntas

Вам также может понравиться