java scjp clase4

15
SCJP 6 Clase 4 – Operadores Ezequiel Aranda Sun Microsystems Campus Ambassador

Upload: raul-oramas-bustillos

Post on 13-Jul-2016

250 views

Category:

Documents


0 download

DESCRIPTION

Curso SCJP

TRANSCRIPT

Page 1: Java SCJP clase4

SCJP 6 Clase 4 – Operadores

Ezequiel Aranda

Sun Microsystems Campus Ambassador

Page 2: Java SCJP clase4

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/

Page 3: Java SCJP clase4

AGENDA

> Operadores de asignación

> instanceof

> Concatenación de Strings

> Operador condicional

> Operadores lógicos

Page 4: Java SCJP clase4

Operadores de asignación

> Cuando asignamos un valor a un primitivo, el tamaño importa. Debemos estar seguros de si se dará un casting implícito, uno explicito o si se truncará el número.

> 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.

Page 5: Java SCJP clase4

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));

Page 6: Java SCJP clase4

Comparación 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.

Page 7: Java SCJP clase4

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"); } }

Page 8: Java SCJP clase4

Operador de concatenación 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 concatenación cuando opere las variables b y c?

> ¿Y si hicieramos b+c+a?

Page 9: Java SCJP clase4

Operador de concatenación en Strings (II)

> “Comenzamos con el String a, y le agregamos el carácter 3 (b), para producir el String “String3”. Después agregamos el carácter 7 (c), para producir el String “String37”, luego lo imprimimos”.

> Si ambos operandos son Strings, ‘+’ actuará como operador de concatenación. Si ambos son números, ‘+’ actuará como operador de adición.

Page 10: Java SCJP clase4

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 código, sólo podremos asignar un valor a una variable. x = (boolean expression) ? value to assign if true : value to assign if false

Page 11: Java SCJP clase4

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);

}

}

Page 12: Java SCJP clase4

Operadores lógicos de “cortocircuito”

> Los operadores ‘&&’ y ‘||’ evalúan solo valores booleanos.

> ‘&&’: short-circuit AND

> ‘||’: short-circuit OR

> Se llaman de cortocircuito porque evalúan primero el lado izquierdo de la operación y si logra una resolución, no evalúa la parte derecha.

Page 13: Java SCJP clase4

XOR

> El operador XOR (‘^’) no es de cortocircuito

> Para que una operación XOR evalúe a true, uno y sólo uno de los operandos debe evaluar a true.

Page 14: Java SCJP clase4

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"; } }

> ¿Cuál 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

Page 15: Java SCJP clase4

Preguntas