Unidad 1 POO

Post on 20-Jan-2016

80 views 0 download

Transcript of Unidad 1 POO

UNIDAD IFUNDAMENTOS DEL LENGUAJE

1.1. ENTORNO DE DESARROLLO

Cuestiones generales Java: inventado por SUN microsystems en 1989 por Bill JOE

Objetivos:Realizar aplicaciones para dispositivos electrónicos como:

PDA´s, Cámaras y Todo lo referente con semiconductores

Características:Simple: Potente, Similar a C++, No utiliza punteros.

Distribución: TCP / IP ,FTP y HTTP

Portable: Diferentes versiones de JAVA

Orientado a Objetos: EncapsulaciónHerencia / polimorfismo

Características:Robusto: Varios tipos de plataforma

Aplets: Aplicaciones hechas en JAVA que ocurren en programación WEB

Java Development Kit (JDK)• ¿Qué es el JDK?

– Conjunto de herramientas (programas y librerías) para el desarrollo en Java

– JRE (Java Runtime Environment)

– Distribución gratuita (Sun Microsystems Inc.)

• Java 2 Software Development Kit (SDK), Standard Edition• Documentación

– Informa sobre packages, clases e interfaces

– Descripción de las variables y métodos

– Relaciones jeráquicas

– En formato HTML.

– Descarga gratuita desde la web de Sun

Java Development Kit (JDK)• Instalación

– Computadora local o Unidad de Red– Ejecución en Consolas de MS-DOS– Variables de entorno:

• JAVAPATH: path completo del directorio donde está instalado el JDK

• PATH• CLASSPATH: librerías o clases de usuario

– Fichero Batch (*.bat)set JAVAPATH=C:\j2sdk1.4.2set PATH=.;%JAVAPATH%\bin;%PATH%set CLASSPATH=

– Programas:• appletviewer.exe• javac.exe• java.exe• javadoc.exe

Java Development Kit (JDK)

• Uso del JDK

Sin Error

ErroresErrores

Intérprete

(java.exe)

Intérprete

(java.exe)MiPrograma.java Compilador

(javac.exe)

Compilador

(javac.exe)

Editor de TextoEditor de Texto

MiPrograma.class

Entornos IDE (Integrated Development Environment)

• Ventajas:– Desarrollo más rápido (incorporan editor, etc)

– Incorporan librerías de componentes

– Fácil uso del Debugger

• Inconvenientes:– Fallos de compatibilidad entre plataformas

– Archivos de mayor tamaño

• Algunos IDE conocidos:– Jbuilder, de Borland

– Visual J++, de Microsoft

– Sun ONE Studio 4 update 1, Community Edition

Entornos IDE (Integrated Development Environment)

1.2. Configuracion del entorno de desarrollo

1.3. PALABRAS RESERVADAS

• 1. Abstract: Declara clases o métodos abstractos.• 2. Double: Tipo de Dato primitivo de punto flotante por

defecto (32 bits).• 3. Int: Tipo de Dato primitivo entero por defecto (32 bits).• 4. Strictfp: Especifica bajo que standard se calcularán las

operaciones con datos de punto flotante, para determinar el grado de precisión de los resultados.

• 5. Boolean: Tipo de Dato primitivo booleano (true o false).

• 6. Else: Evaluación de la condición lógicamente opuesta a un if o else if.

• 7. Interface: Declara interfases.• 8. Super: Hace referencia a la clase padre o al

constructor de la clase padre del objeto actual.

• 9. Break: Rompe el flujo normal del bloque de código actual.

• 10. Extends: Indica que una clase o interfase hereda de otra clase o interfase.

• 11. Long: Tipo de Dato primitivo entero (64 bits).• 12. Switch: Estructura de control condicional múltiple.• 13. Byte: Tipo de Dato primitivo entero (8 bits).• 14. final: Declara la clase, método o variable como

"definitiva".• 15. native: Indica que el método va a ser especificado en

un lenguaje diferente a Java.• 16. synchronized : Indica que el método, o bloque de

código deberá prevenir que no sean cambiados los objectos a afectar dentro del bloque o método.

• 17. case: Verifica cada valor evaluado en un a sentencia switch.

• 18. finally: Determina el bloque de código que se ejecutará siempre luego de un try asi sea que se capture o no una excepción.

• 19. new: Solicita al cargador de clases correspondiente, un objeto de esa clase.

• 20. this: Hace referencia el objeto actual o al constructor del objeto actual.

• 21. catch: Atrapa excepciones dentro de un bloque try• 22. float : Tipo de Dato primitivo de punto flotante (64

bits).• 23. package: Especifica el paquete al que pertenece esa

clase o interfase.

• 24. throw: Lanza una excepción mediante código.• 25. char: Tipo de Dato primitivo que almacena hasta un

caracter UNICODE (16 bits).• 26. for: Estructura de control cíclica.• 27. private: Modificador de visibilidad de atributos y

métodos limitándolos a la propia clase.• 28. throws: Especifica la(s) exceocione(es) que podría

lanzar el método.• 29. class: Declara clases• 30. goto: Palabra reservada que no es utilizada en el

lenguaje de programación Java.• 31. protected: Modificador de visibilidad de atributos y

métodos limitándolos a la propia clase, paquete e hijo(s).

• 32. transient: Indica que el objeto no se debe serializar.• 33. const: Palabra reservada que no es utilizada en el

lenguaje de programación Java.• 34. if: Estructura de control condicional.• 35. public: Modificador de visibilidad de clases,

interfaces, attributos y métodos haciéndolo visible al universo.

• 36. try: Declara un bloque de código que posiblemente lanzará una excepción.

• 37. continue: Rompe el flujo normal del bloque de código actual.

• 38. implements: Indica que una clase implementa a una (o varias) interfase(s).

• 39. return: Retorna (normalmente un valor) desde el método actual.

• 40. void: Indica que el método no retornará valor alguno.• 41. default: Modificador de visibilidad de clases,

interfases, atributos y métodos limitándolos a la clase y paquete.

• 42. import: Indica la(s) ruta(s) en la que se encuentran las clases y/o interfases usadas en el código

• 43. short: Tipo de Dato primitivo entero (16 bits).• 44. volatile: Indica que a la referencia de la variable

siempre se debería leer sin aplicar ningún tipo de optimizaciones ya que el dato almacenado tiene alta probabilidad de cambiar muy frecuentemente.

• 45. do: Estructura de control cíclica• 46. instanceof: Operador que determina si un objeto es

una instancia de una clase.• 47. static: Indica que el método, variable o atributo

pertenece a la clase y no a la instancia (objeto).• 48. while Estructura de control cíclica.

1.4. Comentarios

• Los comentarios en Java pueden hacerse de dos maneras:

Si sólo quiero comentario de una línea coloco // al inicio de es esta

// Este es el esqueleto de un programa en Java

class <nombre del Programa> {

// Definiciones globales

/* Este es el Método Principal*/

/* Otros Métodos*/

}

Si quiero comentario de mas de una línea coloco /* al inicio del comentario y */ al final

1.5. Tipos de datos

Los tipos de datos en Java pueden dividirse en dos categorías: simples y compuestos. Los simples son tipos nucleares que no se derivan de otros tipos, como los enteros, de coma flotante, booleanos y de carácter. Los tipos compuestos se basan en los tipos simples, e incluyen las cadenas, las matrices y tanto las clases como las interfaces, en general.

Datos sismplesa.) Tipos de datos enteros

Se usan para representar números enteros con signo. Hay cuatro tipos: byte, short, int y long.

Tipo Tamaño

byte 1Byte (8 bits)

short 2 Bytes (16 bits)

int 4 Bytes (32 bits)

long 8 Bytes (64 bits)

b.) Tipos de datos en coma flotante

Se usan para representar números con partes fraccionarias. Hay dos tipos de coma flotante: float y double. El primero reserva almacenamiento para un número de precisión simple de 4 bytes y el segundo lo hace para un numero de precisión doble de 8 bytes.

Tipo Tamaño

float 4 Byte (32 bits)

double 8 Bytes (64 bits)

c.) Tipo de datos boolean

Se usa para almacenar variables que presenten dos estados, que serán representados por los valores true y false. Representan valores bi-estado, provenientes del denominado álgebra de Boole.

d.) Tipo de datos carácter

Se usa para almacenar caracteres Unicode simples. Debido a que el conjunto de caracteres Unicode se compone de valores de 16 bits, el tipo de datos char se almacena en un entero sin signo de 16 bits.

Java a diferencia de C/C++ distingue entre matrices de caracteres y cadenas.

Literales carácter

Representan un único carácter (de la tabla de caracteres Unicode 1.1) y aparecen dentro de un par de comillas simples. De forma similar que en C/C++. Los caracteres especiales (de control y no imprimibles) se representan con una barra invertida ('\') seguida del código carácter.

Descripción Representación Valor Unicode

Caracter Unicode \udddd

Numero octal \ddd

Barra invertida \\ \u005C

Continuación \ \

Retroceso \b \u0008

Retorno de carro \r \u000D

Tabulación horizontal \t \u0009

Línea nueva \n \u000A

Comillas simples \’ \u0027

Comillas dobles \" \u0022

Números arábigos ASCII 0-9 \u0030 a \u0039

Alfabeto ASCII en mayúsculas A.-Z \u0041 a \u005A

Alfabeto ASCII en minúsculas a.-z \u0061 a \u007A

Números arábigos ASCII 0-9 \u0030 a \u0039

Alfabeto ASCII en mayúsculas A.-Z \u0041 a \u005A

Alfabeto ASCII en minúsculas a.-z \u0061 a \u007A

e. Conversión de tipos de datos

En Java es posible transformar el tipo de una variable u objeto en otro diferente al original con el que fue declarado. Este proceso se denomina "conversión", "moldeado" o "tipado". La conversión se lleva a cabo colocando el tipo destino entre paréntesis, a la izquierda del valor que queremos convertir.

Por ello se establece la norma de que "en las conversiones el tipo destino siempre debe ser igual o mayor que el tipo fuente":

Tipo Origen Tipo Destino

byte double, float, long, int, char, short

Short double, float, long, int

Char double, float, long, int

int double, float, long

long double, float

float double

Datos compuestosVectores y Matrices

Una matriz es una construcción que proporciona almacenaje a una lista de elementos del mismo tipo, ya sea simple o compuesto. Si la matriz tiene solo una dimensión, se la denomina vector.

En Java los vectores se declaran utilizando corchetes ( [ y ] ), tras la declaración del tipo de datos que contendrá el vector. Por ejemplo, esta sería la declaración de un vector de números enteros (int):

int vectorNumeros[ ]; // Vector de números

Se observa la ausencia de un número que indique cuántos elementos componen el vector, debido a que Java no deja indicar el tamaño de un vector vacío cuando le declara. La asignación de memoria al vector se realiza de forma explícita en algún momento del programa.

Para ello o se utiliza el operador new:

int vectorNumeros = new int[ 5 ]; // Vector de 5 números

O se asigna una lista de elementos al vector:

int vectorIni = { 2, 5, 8};

Cadenas

En Java se tratan como una clase especial llamada String. Las cadenas se gestionan internamente por medio de una instancia de la clase String. Una instancia de la clase String es un objeto que ha sido creado siguiendo la descripción de la clase.

Cuando Java encuentra una constante de cadena, crea un caso de la clase String y define su estado, con los caracteres que aparecen dentro de las comillas dobles.

Vemos un ejemplo de cadena declarada con la clase String de Java:

String capitalUSA = "Washington D.C.";

String nombreBonito = "Amelia";

1.6. Variables

Declaracion de variables

• Ejemplo:

int a,b,c,d,e;

int a=56,b=90,c=23;

float promedio,sueldo;

double promedio=34.67,sueldo=34.6;

1.7. Constantes.

Todas las variables y constantes deben ser declaradas antes de su uso.

Para declarar constantes, se utiliza la palabra reservada final.

final <tipo> <identificador> [=] <valor>

Ej:

final float pi=3.14;

1.8. Operadores.

Operadores Aritméticos

El lenguaje Java soporta varios operadores aritéticos - incluyendo + (suma), - (resta), * (multiplicación), / (división), y % (módulo)-- en todos los números enteros y de coma flotante.

Operador Uso Descripcion

+ Op1+Op2 Suma op1 y op2

- Op1-Op2 Resta op2 de op1

* Op1*Op2 Multiplica op1 y op2

/ Op1/Op2 Divide op1 por op2

% Op1%Op2 Obtiene el resto de dividir op1 por op2

Además, existen dos operadores de atajos aritméticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.

Operador Uso Descripcion

++ op++ evalúa el valor antes de incrementar

++ ++op evalúa el valor después de incrementar

-- op-- evalúa el valor antes de decrementar

-- --op evalúa el valor después de decrementar

Ejemplo:

int x=0, a =1,b=2;

x=a+b--;

System.out.println(x);

System.out.println(a+","+b);

a=1;

b=2;

x=a+--b;

System.out.println(x);

System.out.println(a+","+b);

Operadores Relacionales y Condicionales

Los valores relacionales comparan dos valores y determinan la relación entre ellos.

Operador Uso Devuelve true si

> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2

< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2

== op1 == op2 op1 y op2 son iguales

!= op1 != op2 op1 y op2 son distintos

Operadores condicionales

Operador Uso Devuelve true si

&& op1 && op2 op1 y op2 son verdaderos

|| op1 || op2 uno de los dos es verdadero

! ! op op es falso

Operadores de asignación y sus equivalentes.

Operador Uso Equivale a

+= op1 += op2 op1 = op1 + op2

-= op1 -= op2 op1 = op1 - op2

*= op1 *= op2 op1 = op1 * op2

/= op1 /= op2 op1 = op1 / op2

%= op1 %= op2 op1 = op1 % op2

&= op1 &= op2 op1 = op1 & op2

|= op1 |= op2 op1 = op1 | op2

^= op1 ^= op2 op1 = op1 ^ op2

1.9. Sentencias.

Una sentencia dentro del lenguaje Java terminará cuando se encuentre el simbolo “;”(punto y coma).

Esto indica al lenguaje que este es el final de dicha sentencia, a excepcion de las estructuras de control(p.e. If, do,switch, etc...) asi como el uso de algunas otras otras estructuras(p.e. Try, thread, e)tc...

1.10. Conversión de tipos de datos (cast).

En Java es posible realizar conversiones en todos los tipos básicos, con excepción de boolean, que es incompatible con el resto de los tipos.

Las conversiones de tipo pueden realizarse de dos maneras: implícitamente y explícitamente.

Conversión implícita.

Las conversiones implícitas se realizan de manera automática, es decir, el valor o expresión que se va a asignar a una variable es convertido automáticamente por el compilador, antes de almacenarlo en la variable.

Ejemplo:

int i;

byte b = 30;

i = b;

En este ejemplo, el dato de tipo byte almacenado en la variable "b" es convertido en "int" antes de asignarlo a la variable "i".

Conversiones explícitas.

Cuando no se cumplan las condiciones para una conversión implícita, ésta podrá realizarse de manera explícita utilizando la siguiente expresión:

variable_destino = (tipo_destino) dato_origen;

Con esta expresión obligamos al compilador que convierta "dato_origen" a "tipo_destino" para que pueda ser almacenado en "variable_destino".

P.Ejemplo:

Double d; Char c;

c = (char)d;

1.11. Estructuras de control.

Tarea: Investigar las estructuras de control en Java:

•If•If-else•Switch•For•While•Do-while