Download Programación en Java
Document related concepts
no text concepts found
Transcript
Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Programación en Java Pedro Chávez Lugo mailto:pchavezl74@gmail.com 30 de agosto de 2011 Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java 1 Introducción 2 Compilación e interpretación 3 Programas de ejemplo 4 Programación Orientada a Objetos 5 Fundamentos del lenguaje Java Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Historia de Java El lenguaje de programación de Java fue desarrollado por Sun Microsystems en 1991. Nace de un proyecto de investigación para desarrollar software para comunicación entre aparatos electrónicos tales como tv’s, equipos de música, etc. Problema del proyecto El proyecto se enfrento al problema de manejar diferentes microprocesadores, lo cual implico emplear varios conjuntos de nemónicos. Gracias a esto, el rumbo de la investigación cambio para producir un nuevo lenguaje de programación idependientemente del procesador, el cual fue bautizado como Oak. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Java en Internet Los investigadores de Sun se dieron cuenta de que los logros alcanzados en su proyecto de investigación eran perfectamente aplicados en Internet, ya que se conforma por una red mundial de computadoras con diferentes sistemas operativos y diferentes arquitecturas de procesadores. Consecuencias Los investigadores abandonaron al proyecto de comunicación entre dispositivos y abordaron el desarrollo de un lenguaje que permitiera crear aplicaciones que se ejecutaran desde un navegador. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Applets de Java Se empezó a hablar de Java y de sus aplicaciones conocidas como applets. Un applet es un programa en Java que se ejecuta en el contexto de una página Web en cualquier computadora, independientemente de su sistema operativo y de la arquitectura de su procesador. Ejecución de un applet Para ejecutar un applet sólo se necesita un navegador que soporte la máquina virtual de Java (JVM). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Tecnologı́a de Java - Lenguaje de Programación. - Plataforma. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje de programación Java El lenguaje de programación Java es un lenguaje de alto nivel que tiene asociado las caracterı́sticas: - Simple. - Dinámico. - Orientado a objetos. - Seguro. - Multihilos. Pedro Chávez Lugo - Arquitectura neutra. Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Plataforma Una plataforma consiste un ambiente formado de hardware o software en el cual se ejecutan programas. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Plataforma de hardware Plataforma de hardware consiste de una arquitectura de procesador: - alpha. - arm. - avr32. - i386. - h8300. - m68k. - m32r. - powerpc. - mips. - sparc. - ppc. - sparc64. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Plataforma de software Las plataformas de software pueden ser un sistema operativo, un entorno de programación, o una combinación de ambos. - Microsoft Windows. - Unix. - Linux. - Solaris OS. - Mac OS. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Plataforma de Java La plataforma de Java se conforma solo por software, la cual se ejecuta como una plataforma basada en hardware, la cual consiste de: - Máquina Virtual de Java (JVM). - Interfaz de programación de aplicaciones (API). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Introducción Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación Un programa escrito en java debe ser compilado para obtener un archivo en formato de bytecode, el cual corresponde a un código intermedio que puede ser ejecutado en cualquier plataforma. Interpretación Un código en bytecode puede es ejecutado por el interprete que corresponde a la máquina virtual de Java (JVM). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación e interpretación Interpretación Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Programas Requisitos - Java SE Development Kit (JDK). - Editor de texto. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Ejemplo Hola Mundo /** * The HelloWorldApp class implements an application * that simply prints "Hello World!" to standard * output. */ class HolaMundo { public static void main(String[] args) { System.out.println("Hello World!"); } } Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Programación Orientada a Objetos (POO) POO La programación orientada a objetos (POO) es una etapa más en la evolución natural del desarrollo de sofware. La POO combina prácticas probadas a lo largo del tiempo la forma más eficiente posible. OO La orientación a objetos (OO) es un concepto que abarca cualquier tipo de desarrollo basado en la idea de objeto, una entidad que posee estados y comportamiento. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Programación Orientada a Objetos (POO) Pilares de la POO - Clases. - Objetos. - Métodos. - Polimorfismo. - Encapsulación. - Herencia. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java POO con Java Lenguaje Java - Los programas son construidos en clases. - Una clase es un modelo de objetos. - Un Objeto es una instancia de una clase. Lenguaje Java El lenguaje Java permite escribir programas en términos de POO y en términos de la programación estructurada. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados en cuatro grupos: Enteros (números enteros positivos y negativos): - byte - short - int 8-bit (signo). 16-bit (signo). 32-bit (signo). - long 64-bit (signo). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados en cuatro grupos: Enteros (números enteros positivos y negativos): - byte - short - int 8-bit (signo). 16-bit (signo). 32-bit (signo). - long 64-bit (signo). Caracteres (Sı́mbolos como letras y números): - char 16-bit Unicode. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados en cuatro grupos: Enteros (números enteros positivos y negativos): - byte - short - int 8-bit (signo). 16-bit (signo). 32-bit (signo). - long 64-bit (signo). Presición fraccional (Números con punto decimal): - float 32-bit IEEE 754-1985. - double 64-bit IEEE 754-1985. Caracteres (Sı́mbolos como letras y números): - char 16-bit Unicode. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Tipos de dato primitivos Java define ocho tipos primitivos, clasificados en cuatro grupos: Enteros (números enteros positivos y negativos): - byte - short - int 8-bit (signo). 16-bit (signo). 32-bit (signo). - long 64-bit (signo). Caracteres (Sı́mbolos como letras y números): - char 16-bit Unicode. Pedro Chávez Lugo Presición fraccional (Números con punto decimal): - float 32-bit IEEE 754-1985. - double 64-bit IEEE 754-1985. Booleano (Valores lógicos): - boolean verdadero (true) o falso (false). Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Enteros Especificación Nombre byte short int long Tamaño 8 16 32 64 Rango -128 a +127 -32,768 a +32,767 -2,147,483,648 a +2,147,483,647 -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Enteros Especificación Nombre byte short int long Tamaño 8 16 32 64 Rango -128 a +127 -32,768 a +32,767 -2,147,483,648 a +2,147,483,647 -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 Declaración byte byte a,b; byte a=-128,b=127; short short c,d; short c=34,d=-62; Pedro Chávez Lugo int int int int int e,f; e=-3256,f=678; e=032 (octal) f=0x1a (hexadecimal) Programación en Java long long g,h long g=12,h=-45 Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Presición fraccional Especificación Nombre float double Tamaño 32 64 Pedro Chávez Lugo Rango -1.4e-45 a +3.4e+38 -4.9e-324 a +1.8e+308 Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Presición fraccional Especificación Nombre float double Tamaño 32 64 Rango -1.4e-45 a +3.4e+38 -4.9e-324 a +1.8e+308 Declaración float float a,b; float a=-3.1416f,b=3.1416f; double double c,d; double c=-3.5e-12 (-3.5x10−12 ),d=3.5e+12 (3.5x10+12 ); Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Presición fraccional Especificación Nombre float double Tamaño 32 64 Rango -1.4e-45 a +3.4e+38 -4.9e-324 a +1.8e+308 Declaración float float a,b; float a=-3.1416f,b=3.1416f; double double c,d; double c=-3.5e-12 (-3.5x10−12 ),d=3.5e+12 (3.5x10+12 ); El tipo de dato float nunca debe ser utilizado en el manejo de dinero, para esto se recomienda emplear double. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Caracteres Especificación Nombre char Tamaño 16 Rango \u0000 (0) a \uffff (65535) Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Caracteres Especificación Nombre char Tamaño 16 Rango \u0000 (0) a \uffff (65535) Declaración char char a,b,c; char a=’a’, b=’\u0040’(@), c=64 (@); Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Caracteres Especificación Nombre char Tamaño 16 Rango \u0000 (0) a \uffff (65535) Declaración char char a,b,c; char a=’a’, b=’\u0040’(@), c=64 (@); El estándar Unicode es un estándar de codificación de caracteres que intenta facilitar la transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Boolean Especificación Nombre boolean Tamaño 1 Rango true (verdadero) o false (falso) Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Boolean Especificación Nombre boolean Tamaño 1 Rango true (verdadero) o false (falso) Declaración boolean boolean a,b; int f=20; boolean g = f>10 (true); Pedro Chávez Lugo boolean a=true, b=false; Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java class datos{ public static void main(String args[]) { byte a=127, b=-128; long c=1; float d=-3.1416f, e=3.1416f; double f=1e3, g=3.320202020200200202; char h=’a’, i=’\u0040’,j=64; boolean k=true, l=a>0; System.out.println("byte a = "+a+" b = "+b); System.out.println("long c = "+c); System.out.println("float d = "+d+" e = "+e); System.out.println("double f = "+f+" g = "+g); System.out.println("char h = "+h+" i = "+i+" j = "+j); System.out.println("boolean k = "+k+" l = "+l); } Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión de tipos En la programación algunas veces es necesario asignar un valor de un tipo a una variable de otro tipo. Si los dos tipos son compatibles, Java realiza la conversión automática o implı́cita. Conversión de tipos Sin embargo, no todos los tipos son compatibles, y, por tanto, no cualquier conversión está permitida. Para esto existe la conversión explı́cita o cast, que permite obtener una coversión entre tipos. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Conversión de tipos Perdida de presición La lı́nea solida denota conversiones sin perdida de presición y la lı́nea punteada denota conversiones con perdida de presición. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión automática Una conversión automática de tipos es realizada si se cumplen las siguientes condiciones: Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión automática Una conversión automática de tipos es realizada si se cumplen las siguientes condiciones: - Los tipos son compatibles. - El tipo destino es más grande que el tipo fuente (ensanchamiento). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión automática Una conversión automática de tipos es realizada si se cumplen las siguientes condiciones: - Los tipos son compatibles. - El tipo destino es más grande que el tipo fuente (ensanchamiento). Por ejemplo, el tipo int siempre es compatible y lo suficientemente amplio para almacenar todos los valores del tipo byte y short. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión automática Una conversión automática de tipos es realizada si se cumplen las siguientes condiciones: - Los tipos son compatibles. - El tipo destino es más grande que el tipo fuente (ensanchamiento). Por ejemplo, el tipo int siempre es compatible y lo suficientemente amplio para almacenar todos los valores del tipo byte y short. Sin embargo, los tipos numéricos y el carácter no son compatibles con el tipo boolean. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión explı́cita Para realizar una conversión entre dos tipos incompatibles, se debe usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica: Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión explı́cita Para realizar una conversión entre dos tipos incompatibles, se debe usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica: - (tipo) valor. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión explı́cita Para realizar una conversión entre dos tipos incompatibles, se debe usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica: - (tipo) valor. Donde tipo especifica al tipo que se desea convertir el valor especificado. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Conversión explı́cita Para realizar una conversión entre dos tipos incompatibles, se debe usar un cast. Un cast es simplemente una conversión de tipos explı́cita (estrechamiento), y tiene la siguiente forma genérica: - (tipo) valor. Donde tipo especifica al tipo que se desea convertir el valor especificado. Una conversión diferente es la que tiene lugar cuando se asigna un valor de punto flotante a un tipo entero, para lo cual se trunca la parte fraccionaria. int a; byte b; b = (byte) a; Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Comentarios Existen tres tipos de comentarios definidos por Java: Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Lenguaje Java Comentarios Existen tres tipos de comentarios definidos por Java: - Comentario de una sola lı́nea (//). - Comentario de múltiples lı́neas (/* */). - Comentario de documentación (/** */ y etiquetas). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operadores Aritméticos Operador + * / % Significado Adición Sustracción Multiplicación División Modulo - La división entera entre cero es una excepción. - La división punto flotante entre cero genera infinito o NAN (Not A Number). Abreviación de operadores aritméticos y el operador asignación: Expresión Equivalencia Expresión Equivalencia x+=4 x=x+4 x/=4 x=x/4 x-=4 x=x-4 x %=4 x=x %4 x*=4 x=x*4 Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operadores Postfijo y Prefijo: Auto Incremento y decremento Operador ++ -int int int int Significado Adiciona 1 Sustrae 1 m=7; n=7; a = 2 * ++m; (a es 16 y m es 8) b = 2 * n++; (b es 14 y n es 8) Pedro Chávez Lugo n++, n- - (auto incremento y decremento postfijo). post-incremento ++n, - -n (auto incremento y decremento prefijo). pre-incremento Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operadores Relacionales Operador == != <, <= >, >= Booleanos Significado Igual que Diferente menor que y menor o igual que mayor que y mayor o igual que Pedro Chávez Lugo Operador && || & | ! Programación en Java Significado Operación AND Operación OR AND cortocircuito OR cortocircuito Operación NOT Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Paréntesis Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Paréntesis Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado. Si no se esta seguro del orden de evaluación en una expresión compleja, se recomienda utilizar paréntesis para forzar el orden de evaluación. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Paréntesis Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado. Si no se esta seguro del orden de evaluación en una expresión compleja, se recomienda utilizar paréntesis para forzar el orden de evaluación. Asociatividad Operadores *, /, % +, <, <=, >, >= ==, != = Asociatividad izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha derecha a izquierda Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Paréntesis Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado. Si no se esta seguro del orden de evaluación en una expresión compleja, se recomienda utilizar paréntesis para forzar el orden de evaluación. Asociatividad Operadores *, /, % +, <, <=, >, >= ==, != = Asociatividad izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha derecha a izquierda Pedro Chávez Lugo b = a*c x = c+d/a-f Programación en Java a<b d != z Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Paréntesis Cuando escriba una expresión que contenga muchos operadores, debe confirmar que las operaciones en la expresión se realicen en el orden esperado. Si no se esta seguro del orden de evaluación en una expresión compleja, se recomienda utilizar paréntesis para forzar el orden de evaluación. Asociatividad Operadores *, /, % +, <, <=, >, >= ==, != = Asociatividad izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha derecha a izquierda Pedro Chávez Lugo b = a*c x = c+d/a-f x = (c+d)/(a-f) x = c+(d/a)-f Programación en Java a<b d != z Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Precedencia Precedencia más alta () ++ * + > == && || = -/ >= != ! % < Pedro Chávez Lugo <= Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Precedencia Precedencia más alta () ++ * + > == && || = -/ >= != ! % < Pedro Chávez Lugo int a,b=6,c=8,d=2,e=4; a = b+c*d/e-d %2; <= Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Paréntesis, precedencia y asociatividad de operadores Precedencia Precedencia más alta () ++ * + > == && || = -/ >= != ! % < Pedro Chávez Lugo <= int a,b=6,c=8,d=2,e=4; a = b+c*d/e-d %2; boolean i; i = (a < b) && (c > d) || (e >= 4); Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operadores a nivel de bit Java define varios operadores a nivel de bit que se pueden enteros, byte, short, int, long y char. Op Significado Operador ˜ NOT a nivel de bit &= & AND a nivel de bit |= | OR a nivel de bit >>= >> Desp. der. (valor >> num) <<= << Desp. izq. (valor << num) a>>=2 Pedro Chávez Lugo Programación en Java aplicar a los tipos Significado AND y asignación OR y asignación Desp. der. y asignación Desp. der. y asignación a<<=2 Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operadores a nivel de bit Java define varios operadores a nivel de bit que se pueden enteros, byte, short, int, long y char. Op Significado Operador ˜ NOT a nivel de bit &= & AND a nivel de bit |= | OR a nivel de bit >>= >> Desp. der. (valor >> num) <<= << Desp. izq. (valor << num) a>>=2 a=1, b=˜a a=7,b=3 a=7,b=3 b = -2 c=a&b=3 c=a|b=7 Pedro Chávez Lugo a=16 a=16 aplicar a los tipos Significado AND y asignación OR y asignación Desp. der. y asignación Desp. der. y asignación a<<=2 b = a>>1 = 8 b = a<<1 = 32 Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de control Un lenguaje de programación utiliza sentencias de control para hacer que el flujo de ejecución avance o se bifurque en función de los cambios de estado en el programa. Las sentencias de control se clasifican en los grupos: - Selección. - Iteración. - Salto. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de selección Java admite dos sentencias de selección: if y switch. Estas sentencias controlan el flujo de ejecución en función de condiciones conocidas durante el tiempo de ejecución. if La sentencia if es una sentencia de bifurcación condicional, para dirigir el flujo de ejecución hacia dos caminos diferentes. Sintaxis: La condición es cualquier if(condición) expresión que devuelva un valor sentencia1; booleano y la cláusula else es else sentencia2; opcional. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de selección if anidados Un if anidado es una sentencia if que está dentro de otro if o else. i f ( i == 1 0 ) { i f ( j < 20) a = b ; i f ( k > 100) c = d ; else a = c ; } else a = d ; Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de selección if-else-if múltiples Una construcción if-else-if se basa en una secuencia de if anidados. Su formato es el siguiente: if(condición) sentencia; else if(condición) sentencia; else if(condición) sentencia; . . . else sentencia; Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Operador ternario Operador ? Java incluye un operador ternario que puede sustituir a ciertos tipos de if-else. Este operador es ?, sintaxis: expresión1? expresión2: expresión3 ; expresión1 puede ser cualquier expresión que dé como resultado un valor tipo boolean. Si expresión1 genera como resultado true, entonces se evalúa expresión2, en caso contrario se evalúa expresión3. Es necesario que expresión2 y expresión3 devuelvan el mismo tipo que no puede ser void. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de selección switch La sentencia switch es una sentencia de bifurcación múltiple, con el siguiente formato general: switch(expresión){ case valor1 : sentencias break; case valor2 : sentencias break; case valorN: sentencias break; default: } Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de iteración while, do-while, for Las sentencias while, do-while y for permiten crear lo que comunmente se denominan ciclos. while do-while while(condición){ cuerpo } do{ cuerpo }while(condición); for for(inicialización; condición; iteración){ cuerpo } Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Sentencias de salto break, continue, return Las sentencias break, continue y return transfieren el flujo de ejecución a otra parte del programa. continue break Finalizar a switch Finalizar un ciclo. La sentencia continue forza en un ciclo la ejecución de una nueva iteración descartando el procesamiento de la iteración actual. return return se utiliza para salir explı́citamente de un método, es decir hace que el control de flujo se vuelva al método llamante. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Arreglos Un arreglo es un conjunto de datos homogéneo, finito y ordenado. Los arreglos pueden tener una dimensión igual a uno (unidimensional) o mayor (multidimensional). Para acceder a un elemento del arreglo se utiliza un ı́ndice. Los arreglos en Java son objetos. Valor asociado al elemento del arreglo a Identificador o nombre del arreglo −45 6 0 72 1543 −89 0 62 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[8] Longitud del arreglo Pedro Chávez Lugo Programación en Java Indice o subindice del elemento en el arreglo Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Arreglos Arreglo unidimensional Un arreglo unidimensional es esencialmente una lista de variables del mismo tipo. Declaración tipo nombre[]; int dias del mes[];(null) nombre = new tipo[tamaño]; dias del mes = new int[12]; int dias del mes[] = new int [12]; int [] dias del mes = new int [12]; Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Arreglos Arreglos Multidimensional Los arreglos multidimensionales tienen asociado más de un ı́ndice. Declaración int dias del mes[][]; int dias del mes[][][]; Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Objeto Definición Pieza fundamental de la tecnologı́a orientada a objetos. Ejemplos: bicicleta, escritorio, automóvil, etc. En el mundo real los objetos comparten dos caracterı́sticas: estado y comportamiento. Ası́, por ejemplo un automóvil tiene como estado un color, modelo, número de puertas y de comportamiento se tiene apagado, encendido, acelerando, frenando. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Objetos Estado y comportamiento Estado - datos. Comportamiento - métodos de instancia (procedimientos). En la POO un objeto es una entidad que encapsula datos y métodos. Un objeto corresponde a un tipo de dato definido por una clase. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Clase Definición Una clase corresponde a un modelo de un objeto y un objeto corresponde a una instancia de una clase. Caracterı́sticas Define un tipo de dato. identificador class Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Clase Forma general class nombre de clase { tipo variable de instancia1 ; tipo variable de instancia2 ; //... tipo variable de instanciaN; método constructor1(parámetros){ //cuerpo del método } //... método constructorN(parámetros){ //cuerpo del método } tipo nombre de método1(parámetros){ //cuerpo del método } tipo nombre de métodoN(parámetros){ //cuerpo del método } } Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Clase Clase y objeto class Caja { double ancho; double alto; double largo; } Para crear un objeto se utiliza al operador new, que asigna memoria dinámicamente al objeto y devuelve la referencia al mismo. Caja micaja = new Caja(); o Caja micaja; micaja = new Caja(); Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Método constructor Constructor Un método constructor inicializa las variables (datos) de un objeto. Este tiene el mismo nombre de la clase. Los métodos constructores no devuelven ningún valor, ni siquiera void. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Métodos En Java es posible definir dos o más métodos que compartan el mismo nombre, dentro de la misma clase siempre y cuando la declaración de sus parámetros sea diferente. Cuando se produce esta situación se dice que los métodos están sobrecargados, y que el proceso es llamado sobrecarga de métodos (polimorfismo). Además de sobrecargar métodos normales, también se pueden sobrecargar los métodos constructores. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Control de acceso Encapsulación La encapsulación relaciona datos y código que opera sobre los mismos, pero además, la encapsulación proporciona otro atributo importante: control de acceso. El control de acceso de la encapsulación permite controlar el acceso a los miembros de una clase desde las diferentes partes de un programa, para impedir un mal uso de los mismos. Identificadores public private Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Control de acceso public Cuando se aplica a un miembro de una clase el especificador public, entonces puede tener acceso a ese miembro cualquier miembro de cualquier clase. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Control de acceso private Cuando se aplica a un miembro de una clase el especificador private, entonces sólo pueden tener acceso a ese miembro los miembros de su clase. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Clase String Cadena de caracteres La clase String permite crear objetos del tipo cadena de caracteres, la cual se especifica entre comillas dobles. Esta clase define varios métodos constructores: String() String(String) -etc Métodos de instancia: char CharAt(int index), int CompareTo(String), String concat(String), int length(), String replace (char oldchar, char newchar), String toLowerCase(), String toUpperCase(). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Clase Math Métodos para operaciones numéricas La clase Math tiene una colección de métodos estáticos para realizar operaciones numéricas: double abs(double), int abs(int), double max(double, double), int max(int,int), int min(int, int), double min(double,double), double random(), double sqrt(double), etc. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Herencia Pieza fundamental de la POO Una clase puede ser heredada por otra clase. La clase heredada se denomina superclase y la clase que hereda subclase. La palabra reservada extends es utiliza para especificar que una clase hereda otra clase. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Excepciones Manejo de errores Java ofrece un mecanismo para la gestión de excepciones. Una excepción es una condición anormal que surge en una secuencia de código en tiempo de ejecución (error en tiempo de ejecución). La excepciones pueden ser tratadas mediante las instrucciones try y catch. Las excepciones evitan que un programa deje de ejecutarse cuando se presenta un error. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Tipos de excepciones Manejo de errores Java define varios tipos de excepciones: ArithmethicException - Error aritmético, ej. división entre cero. ArrayIndexOutOfBoundsException - Indice de arreglo fuera de su lı́mite. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 1. Búscar en el disco duro al archivo javac.exe. La finalidad es obtener el directorio del jdk. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 2. Ejecutar el interprete de comandos (shell) de windows. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 3. Ejecutar el comando cmd con .. y enter. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 4. Ejecutar el comando cmd con .. y enter. La finalidad es ubicarse en la raı́z de unidad C. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 5. Ejecutar el comando cmd con el nombre del directorio que contiene al directorio java y enter. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 6. Ejecutar el comando cmd con el nombre del directorio java y enter. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 7. Ejecutar el comando cmd con el nombre del directorio jdk (presionar tecla Tab) y enter. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 8. Ejecutar el comando cmd con el nombre del directorio bin y enter. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 9. Los códigos de Java debe ser guardados en el directorio que contiene al archivo javac.exe obtenido en el paso 1. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows hola.java Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 10. Compilar con el programa javac.exe el archivo hola.java. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Esto genera un archivo de nombre y extensión hola.class (bytecode). Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Compilación y ejecución de código Java en Windows Paso 11. Ejecutar con el programa java.exe el archivo hola.class. Pedro Chávez Lugo Programación en Java Introducción Compilación e interpretación Programas de ejemplo Programación Orientada a Objetos Fundamentos del lenguaje Java Muchas Gracias. Pedro Chávez Lugo Programación en Java