Programación: tipos de datos Java

Post on 13-Jan-2017

326 views 5 download

Transcript of Programación: tipos de datos Java

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Tipos de datos Java

Angel Vazquez-Patinoangel.vazquezp@ucuenca.edu.ec

Departamento de Ciencias de la ComputacionUniversidad de Cuenca

24 de mayo de 2016

1 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Contenido

Tipos de datos primitivos

Manejo de constantes

Operadores unariosPrefix y postfix

Datos logicos

CadenasConcatenacion

Metodos predefinidosConversion de datosClase StringClase MathAPI de Java

2 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Tipos de datos primitivos I

Definition (Statically-typed)Todas las variables deben primero ser declaradas antesde ser usadas. Se debe especificar el tipo de la variable yel nombre:

int miVariable = 1;

El tipo de dato de una variable determina el valor queesta puede contener, ademas indica las operaciones quese pueden hacer con/en esta.

¿Como se debe nombrar una variable?

3 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Tipos de datos primitivos II

Nombre Tipo Capacidad Rango Aproximadobyte entero 8 bits [-128, 127]short entero 16 bits [-32768, 32767]int entero 32 bits con sigo [−231 , 231 − 1]

sin signo [0, 232 − 1]long entero 64 bits con signo [−263, 263 − 1]

sin signo [0, 264 − 1]float decimal simple 32 bits muy grandedouble decimal doble 64 bits muy grandeboolean logico 1 bit {true, false}

“size” no defchar caracter simple 16 bits [‘\u0000’ (0), ‘\uffff’ (65535)]

Java provee soporte especial para cadenas de caracteresvia la clase java.lang.String. Encerrando la cadenade caracteres entre comillas dobles automaticamentecreara un nuevo objeto String; por ejemplo,

4 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Tipos de datos primitivos III

String s = ‘‘this is a string’’;

Definition (Objetos inmutables)Los objetos String son inmutables: una vez creados, susvalores no pueden cambiar.

¡String no es dato primitivo!La clase String no es tecnicamente un tipo de datoprimitivo, pero, considerando el soporte especial dadopor Java, se tiende a pensar eso.

5 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Eficiencia

I Los datos enteros ocupan menos memoria que losdatos reales.

I Las operaciones entre datos enteros suelen sermucho mas rapidas.

6 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Manejo de constantes I

Definition (Constante)Es una variable que mantiene un valor inmutable a lolargo de toda la vida del programa. Las constantes enJava se definen mediante el modificador final.

Estructura

static final nombreConstante = valor;

Dıas de la semana y dıas laborales

1 s t a t i c f i n a l i n t D_SEM = 7 ;2 s t a t i c f i n a l i n t D_LAB = 5 ;

7 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Manejo de constantes II

Declaracion en la clase

1 p u b l i c c l a s s ConstanteEnJava {2

3 s t a t i c f i n a l i n t D_SEM = 7 ;4 s t a t i c f i n a l i n t D_LAB = 5 ;5

6 p u b l i c s t a t i c vo i d main ( String [ ] args ) {7

8 System . out . println ( ”Dias sem : ” + D_SEM ) ;9 System . out . println ( ”Dias l a b : ” + D_LAB ) ;

10

11 }12 }

8 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Manejo de constantes III

Declaracion en el metodo

1 p u b l i c c l a s s ConstanteEnJava {2

3 p u b l i c s t a t i c vo i d main ( String [ ] args ) {4

5 f i n a l i n t D_SEM = 7 ;6 f i n a l i n t D_LAB = 5 ;7

8 System . out . println ( ”Dias sem : ” + D_SEM ) ;9 System . out . println ( ”Dias l a b : ” + D_LAB ) ;

10

11 }12 }

9 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores unarios I

Definition (Operadores unarios)Requieren solo un operando.

Operador Descripcion

+operador unario mas; indica un valor positi-vo (numeros son positivos sin el operador)

− operador unario menos; niega una expresion

++operador de incremento; incrementa un va-lor en 1

−− operador de decremento; decrementa unvalor en 1

!operador logico de complemento; invierteun valor booleano

10 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores unarios IIPrueba de operadores unarios https://goo.gl/VIuNlv

1 c l a s s UnaryDemo {2

3 p u b l i c s t a t i c vo i d main ( String [ ] args ) {4

5 i n t result = +1;6 // r e s u l t i s now 17 System . out . println ( result ) ;8

9 result−−;10 // r e s u l t i s now 011 System . out . println ( result ) ;12

13 result++;14 // r e s u l t i s now 115 System . out . println ( result ) ;

11 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores unarios III

16

17 result = −result ;18 // r e s u l t i s now −119 System . out . println ( result ) ;20

21 boo l ean success = f a l s e ;22 // f a l s e23 System . out . println ( success ) ;24 // t r u e25 System . out . println ( ! success ) ;26 }27 }

12 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Prefix y postfix I

Los operadores de incremento y decremento pueden seraplicados antes (prefix) o despues (postfix) deloperando. Ambas versiones tienen el mismo resultadofinal; sin embargo, por ejemplo, ++res es evaluado conel valor incrementado y res++ con el valor original.

¡Importante!Si se usa el incremento o decremento en una operacionsimple, no importa la version usada. Pero, puede haberuna diferencia significativa en una expresion mas larga.

13 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Prefix y postfix IIPrueba de prefix y postfix https://goo.gl/nnZNu3

1 c l a s s PrePostDemo {2 p u b l i c s t a t i c vo i d main ( String [ ] args ){3 i n t i = 3 ;4 i++;5 System . out . println (i ) ; // p r i n t s 46 ++i ;7 System . out . println (i ) ; // p r i n t s 58

9 System . out . println(++i ) ; // p r i n t s 610

11 System . out . println (i++); // p r i n t s 612

13 System . out . println (i ) ; // p r i n t s 714 }15 }

14 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Prefix y postfix III

15 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Reglas de precedencia de operadores I

Descripcion Operadoresoperadores posfijos op++ op−−

operadores unarios++op −−op +op -op ∼!

multiplicacion y division * / %suma y resta + −desplazamiento << >> >>>operadores relacionales < > <= =>

16 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Reglas de precedencia de operadores II

Descripcion Operadoresequivalencia == !=

operador AND &operador XOR ∧operador OR |

AND booleano &&OR booleano ||condicional ?:

operadores de asignacion= += -= *= /=\%= \&= ∧= ;=<<=>>=>>>=

17 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Ejercicios I

1. int x = -3 + 2 * 4 – 12 / 6 + 5 ;

2. int y = -3 + 2 * (14 – 2) / 6 + 5 ;

3. int i = 10; int n = i++ % 5; System.out.println(n);n = ++i % 5; System.out.println(n);

4. X = 7 % 2;

5. X = 8 % 3;

6. int x=5; y=5; int z; z=x++;

7. z=++y;

8. int i = 1; System.out.println(i); System.out.println(++i); System.out.println (i);

9. i = 1; System.out.println(i); System.out.println(i++); System.out.println (i);

18 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos I

I true o false

Operadores logicos

I and (&&)

I or (||)I not (!)

Asignacion

19 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos II

1 boo l ean boolVar ;2 boolVar = t r u e ;3 // Muestra boo lVar : t r u e4 System . out . println ( ” boo lVar : ” + boolVar ) ;5 // Muestra boo lVar : f a l s e6 System . out . println ( ” boo lVar : ” + ! boolVar ) ;

Operadores de comparacion

I evaluacion de datos

I devuelve valor logico

Ejemplo

20 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos III

1 boo l ean boolVar ;2 boolVar = (2 < 3 ) ;3 // Muestra 2 < 3? : t r u e4 System . out . println ( ”2 < 3? : ” + boolVar ) ;5 // Muestra 4 == 5? : f a l s e6 System . out . println ( ”4 == 5? : ” + (4==5));

21 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos IV

Operadores relacionales

22 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos V

Prioridad (precedencia) y orden de evaluacion

23 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos VI

Ejemplo

I not p se evalua p y despues se aplica la negacion

I p and q se evalua p y despues se evalua p and q

I not p or q se evalua (not p) or q ya que eloperador not tiene mas prioridad que el operador or

24 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos VII

Prioridad (precedencia) y orden de evaluacion

25 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Datos logicos VIII

26 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3

⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

27 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C

⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

28 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C

⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

29 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C

⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

30 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C

⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

31 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3

⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

32 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15

⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

33 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30

⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

34 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A

⇒ true10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

35 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10

⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

36 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5

⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

37 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2)

⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

38 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6)

⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

39 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3

⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

40 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3

⇒ true

41 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

EjerciciosCon A=5, B=3, C=-12 que devuelve la expresion

1. A > 3 ⇒ true2. A > C ⇒ true3. A < C ⇒ false4. B < C ⇒ false5. B ! = C ⇒ true6. A == 3 ⇒ false7. A∗B == 15 ⇒ true8. A∗B == −30 ⇒ false9. C/B < A ⇒ true

10. C/B == −10 ⇒ false11. A+B+C == 5 ⇒ false12. (A+B==8) && (A-B==2) ⇒ true13. (A+B == 8) || (A-B == 6) ⇒ true14. A > 3 && B > 3 && C < 3 ⇒ false15. A > 3 && B >= 3 && C < -3 ⇒ true

42 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Cadenas de caracteres

Un tipo de dato caracter proporciona objetos de la clasede datos que contiene solo un elemento como su valor.Elementos establecidos y normalizados por el estandarllamado ASCII (American Standard Code for InformationInterchange), el cual establece cuales son los elementos yel orden de precedencia entre los mismos. Los elementosson las letras (mayusculas y minusculas), numeros (0-9)y sımbolos especiales (e.g., !, @, #, $, %) disponibles enel teclado de la computadora y algunos otros elementosgraficos. El codigo ASCII no es unico, pero es el masutilizado internacionalmente.

43 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores relacionales I

Los operadores relacionales <, >, <=, >=, ==, ! =son usados tambien para comparar datos de tipocaracter (se basa en el codigo ASCII), el resultado decualquiera de ellos es un valor de tipo de dato logico

44 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores relacionales II

El operador .equals() permite comparar los valores delas cadenas, mientras que el operador == compara a losobjetosString miCadena1 = new String (“abc”);String miCadena2 = new String (“abc”);

45 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Operadores relacionales III

Tarea para la casaRevisar las diferencias.

46 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Clase String I

Java tiene una clase incorporada al paquete java.lang

que encapsula las estructuras de datos de una cadena yse llama String (la cual se utiliza cuando se trabaja concadenas que no pueden cambiar)Existe otra clase gemela de String que se llamaStringBuffer (la cual se utiliza para crear cadenas quepueden ser manipuladas despues de ser creadas)

Ejemplo

1 StringBuffer sb =2 new StringBuffer ( ” E l auto danado ! ” ) ;3 sb . insert (8 , ” r o j o e s t a ” ) ;4 System . out . println (sb . toString ( ) ) ;5 // E l auto r o j o e s t a danado !

47 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Clase String II

Para tener en cuentaLos Strings utilizan menos memoria que los StringBuffer.

48 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Concatenacion de cadenas I

Operador +

1 String a = ”Hola ” + ”Mundo” ;2 String a = ”Hola Mundo” ;

Mantenimiento

1 String fragmento = ”Por l o tanto , l o s que no”2 + ”son to t a lmen t e c o n s c i e n t e s de l a ”3 + ” de s v e n t a j a de s e r v i r s e de l a s armas”4 + ”no pueden s e r t o t a lmen t e c o n s c i e n t e s ”5 + ”de l a s v e n t a j a s de u t i l i z a r l a s . ” ;

49 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Concatenacion de cadenas IIConcatenacion de constantes

1 p u b l i c s t a t i c f i n a l String CONST_A = ”AAA” ;2 p r i v a t e s t a t i c f i n a l String CONST_B = ”BBB” ;3 p u b l i c f i n a l String CONST_C = ”CCC” ;4 p r i v a t e f i n a l String CONST_D = ”DDD” ;5 String a = ”Mostrar ” + CONST_A ;6 String b = ”Mostrar ” + CONST_B ;7 String c = ”Mostrar ” + CONST_C ;8 String d = ”Mostrar ” + CONST_D ;

ResultadoString a = "Mostrar AAA";

String b = "Mostrar BBB";

String c = "Mostrar CCC";

String d = "Mostrar DDD";

50 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Concatenacion de cadenas III

Concatenacion de variables finales

1 f i n a l String a = ” AAA” ;2 String b = ”Mostrar ” + a ;

ResultadoString b = "Mostrar AAA";

Concatenacion de variables

1 String v = ”Mundo” ;2 String resultado = ”Hola ” + v ;

ResultadoString resultado = "Hola Mundo";

51 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos predefinidos I

Conversion de datos

String.valueOf(numero) cualquier numero a cadena

Integer.parseInt(string) cadena a entero

Integer.toString(int) entero en cadena

Float.parseFloat(string) cadena a float

Float.toString(float) float a cadena

Double.parseDouble(string) cadena a doble

Double.toString(double) doble a cadena

52 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos predefinidos II1 p u b l i c c l a s s conversionDatos {2 p u b l i c s t a t i c vo i d main ( String [ ] args ) {3 String num1 = ”1” ;4 System . out . println ( ” S t r i n g : ” + num1 ) ;5

6 i n t num2 = Integer . parseInt ( num1 ) ;7 System . out . println ( ” I n t : ” + num2 ) ;8 // e l par ’ ametro debe s e r i n t9 num1 = Integer . toString ( num2 ) ;

10 System . out . println ( ” S t r i n g : ” + num1 ) ;11

12 f l o a t num3 = Float . parseFloat ( num1 ) ;13 System . out . println ( ” F l o a t : ” + num3 ) ;14

15 String num4 = String . valueOf ( num3 ) ;16 System . out . println ( ” S t r i n g : ” + num4 ) ;

53 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos predefinidos III

17

18 // e l par ’ ametro debe s e r S t r i n g19 doub l e num5 = Double . parseDouble ( num4 ) ;20

21 System . out . println ( ”Double : ” + num5 ) ;22 }23 }

54 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase String I

length() longitud de cadena

charAt(ındice) retorna caracter segun el ındice (desde 0)

toLowerCase()

toUpperCase()

trim() elimina espacios de los extremos de lacadena

contains() true/false una cadena dentro de otra (casesensitive)

equals() true/false una cadena igual a otra (casesensitive)

equalsIgnoreCase()

55 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase String IIsubstring(param1, param2) solo param1: param1 hasta

el final; con param2: desde param1 hastaparam2

indexOf(param) posicion de la primera ocurrencia deparam izquierda a derecha

lastindexOf(param) posicion de la primera ocurrencia deparam derecha a izquierda

1 String cadena=”Cuenca es c a p i t a l de Azuay . ” ;2

3 cadena . length ( ) ;4

5 String cadena=”Hola mundo” ;6 // ”n”7 cadena . charAt ( 3 ) ;8 cadena . toLowerCase ( ) ;

56 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase String III

9

10 String cadena=” Hola mundo ”11 // ”Hola mundo”12 String cadena2=cadena . trim ( ) ;13 // t r u e14 cadena . contains ( ”mundo” ) ;15 cadena2 . equals ( cadena ) ;16

17 cadena . substring ( 5 ) ;18 cadena . substring (5 , 7 ) ;19

20 String cadena2=” l a casa de l a p l a ya ”21 cadena2 . indexOf ( ” l a ” ) ;

57 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase String IV

Recorrido de cadena

1 String cadena=”Cuenca es c a p i t a l de Azuay . ” ;2

3 f o r ( i n t i=0; i<cadena . length ( ) ; i++) {4 System . out . println ( ” Ca r a c t e r ” + i

5 + ” : ” + cadena . charAt (i ) ) ;6 }

58 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase Math I

abs()

ceil() redondea al siguiente numero entero deldoble especificado

floor() redondea al anterior numero entero deldoble especificado

round()

random() aleatorio [0, 1]

max(param1, param2) mayor de dos numeros

min()

pow(base, exponente)

sqrt(numero) raız cuadrada

PI

cos()

59 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Metodos de clases: Clase Math II

sin()

tan()

log()

exp()

1 doub l e num1=12.54;2 // 13 .03 Math . ceil ( num1 ) ;4 // 12 .05 Math . floor ( num1 ) ;6

7 Math . PI ;

60 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

API de Java

Definition (API)Application Programming Interface, Interfaz deProgramacion de Aplicaciones. Veahttps://goo.gl/ZalP1.

Especificacion de la API de Javahttp://docs.oracle.com/javase/7/docs/api/

61 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Fuentes I

Paginas web

• Tipos de datos primitivoshttps://goo.gl/X1Onst.

• Constantes en Java http://goo.gl/Dll5V9.

• Asignacion, aritmetica y operadores unarioshttps://goo.gl/DIBxOT.

• Precedencia de operadoreshttps://goo.gl/niO71E.

• Operadores logicos http://goo.gl/7C4ZHr.

• Operadores relacionales https://goo.gl/HTGLPd.

• Operadores Java http://goo.gl/QWTgC.

• Clase String http://goo.gl/90xS9.

62 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Fuentes II

• Concatenacion de cadenas en Javahttps://goo.gl/sO00lb.

• Clase Math http://goo.gl/50Xasj.

Libros

• Deitel, P.J., Deitel, H.M., 2012. Java: How toProgram, 9th ed. Prentice Hall, Upper Saddle River,N.J. Capıtulo 3. URL: http://goo.gl/M3fc8.

63 / 64

Tipos de datosJava

A. Vazquez-Patino

Tipos de datosprimitivos

Manejo deconstantes

Operadores unarios

Prefix y postfix

Datos logicos

Cadenas

Concatenacion

Metodospredefinidos

Conversion de datos

Clase String

Clase Math

API de Java

Revisar

Resumenes

• Deitel, P.J., Deitel, H.M., 2012. Java: How toProgram, 9th ed. Prentice Hall, Upper Saddle River,N.J. Pagina 97, parrafo Section 3.5; pagina 98,parrafo Section 3.7.

64 / 64