Fundamentos de Lenguaje de Programacin Java Fundamentos de

  • Slides: 39
Download presentation
Fundamentos de Lenguaje de Programación Java Fundamentos de Java 1

Fundamentos de Lenguaje de Programación Java Fundamentos de Java 1

ORIENTACIÓN A OBJETOS § Tipo abstracto de datos (TAD) § § Modelo conceptual representativo

ORIENTACIÓN A OBJETOS § Tipo abstracto de datos (TAD) § § Modelo conceptual representativo de un conjunto de objetos cuyas características sólo se pueden establecer a través de una colección de operaciones Encapsulamiento § Propiedad que permite reunir datos y operaciones al interior de una estructura única, restringir su acceso y ocultar información Fundamentos de Java 2

ORIENTACIÓN A OBJETOS § Jerarquía § § Propiedad que permite ordenar estructuralmente las abstracciones.

ORIENTACIÓN A OBJETOS § Jerarquía § § Propiedad que permite ordenar estructuralmente las abstracciones. Se presenta en las formas de especialización (herencia o relación es-un) y agregación (composición o relación tiene-un) Polimorfismo § Propiedad que permite a una entidad la adopción de múltiples formas. Se presenta en calidad de polimorfismo paramétrico, ad-hoc (sobrecarga) y jerárquico Fundamentos de Java 3

ORIENTACIÓN A OBJETOS § Caracterización § § § Un objeto es un modelo de

ORIENTACIÓN A OBJETOS § Caracterización § § § Un objeto es un modelo de una entidad concreta o abstracta Objetos de una misma categoría constituyen una clase Un objeto es un ejemplar (instancia) de una clase Los objetos interactúan mediante mensajes Un método (operación) se activa mediante un mensaje enviado al objeto Fundamentos de Java 4

ORIENTACIÓN A OBJETOS § Caracterización § § § Un atributo (dato) es una variable

ORIENTACIÓN A OBJETOS § Caracterización § § § Un atributo (dato) es una variable interna mantenida por un ejemplar Los atributos de un objeto representan su estado Los métodos de un objeto determinan su comportamiento (conducta) Un objeto es la combinación de estado y comportamiento Un miembro de una clase puede ser atributo o método Fundamentos de Java 5

ORIENTACIÓN A OBJETOS § Interacción entre objetos Un objeto (emisor) envía un mensaje a

ORIENTACIÓN A OBJETOS § Interacción entre objetos Un objeto (emisor) envía un mensaje a otro objeto (receptor) § El mensaje solicita la ejecución de una acción e incluye los datos necesarios para satisfacerla § El receptor que acepta un mensaje debe responder con la ejecución del método que satisface la petición § La clase del receptor determina que método se activa como respuesta a un mensaje § Fundamentos de Java 6

ORIENTACIÓN A OBJETOS § Transporte Jerarquía Mar Aire Dentro. Atmosfera Nieve Fuera. Atmosfera Fundamentos

ORIENTACIÓN A OBJETOS § Transporte Jerarquía Mar Aire Dentro. Atmosfera Nieve Fuera. Atmosfera Fundamentos de Java Tierra 1 -Persona n-Personas 7

ORIENTACIÓN A OBJETOS § Equivalencia entre paradigmas § Orientado a objetos § § §

ORIENTACIÓN A OBJETOS § Equivalencia entre paradigmas § Orientado a objetos § § § Objeto Clase Método Mensaje Jerarquía de clases Fundamentos de Java Procedimental § § § Variable Tipo Procedimiento Llamada Jerarquía de tipos 8

ORIENTACIÓN A OBJETOS § Herencia Todas las clases pertenecen a una estructura jerárquica §

ORIENTACIÓN A OBJETOS § Herencia Todas las clases pertenecen a una estructura jerárquica § Se puede definir una nueva clase a partir de una existente § La nueva clase se denomina subclase o clase derivada § La clase existente se denomina superclase o clase base § Fundamentos de Java 9

ORIENTACIÓN A OBJETOS § Herencia § § § Las subclases heredan tanto los atributos

ORIENTACIÓN A OBJETOS § Herencia § § § Las subclases heredan tanto los atributos como los métodos de la superclase La herencia es transitiva Una subclase tiene todas las propiedades de la superclase y otras más (extensión) Una subclase constituye una especialización de la superclase (reducción) Un método de superclase es anulado por un método homónimo definido en la subclase Fundamentos de Java 10

ORIENTACIÓN A OBJETOS § Constructores Un constructor es un método especial que tiene el

ORIENTACIÓN A OBJETOS § Constructores Un constructor es un método especial que tiene el mismo nombre de la clase § El constructor se invoca automáticamente para § crear [e inicializar] un objeto de su clase § inicializar un objeto (recién creado) de su clase § Se provee un constructor sin parámetros cuando se omite ese método en la clase § Un constructor de subclase se ejecuta después que el constructor de su superclase § Fundamentos de Java 11

ORIENTACIÓN A OBJETOS § Constructores § § Los constructores se pueden combinar con la

ORIENTACIÓN A OBJETOS § Constructores § § Los constructores se pueden combinar con la capacidad de sobrecarga (dos o más cuerpos de método con un mismo nombre) Destructores Un destructor es un método especial invocado automáticamente justo antes de la eliminación de un objeto § Un destructor de subclase se ejecuta antes que el destructor de su superclase § Fundamentos de Java 12

CÓDIGOS EN JAVA § Programa Colección de objetos que se comunican entre sí §

CÓDIGOS EN JAVA § Programa Colección de objetos que se comunican entre sí § Conjunto de archivos de clase § § Aplicación § § Programa que incluye una clase con un método llamado main() Applet § Programa que se ejecuta desde un navegador dotando de interactividad a una página Web Fundamentos de Java 13

CÓDIGOS EN JAVA § Servlet § § . java § § Programa que se

CÓDIGOS EN JAVA § Servlet § § . java § § Programa que se ejecuta para proveer contenido dinámico desde un servidor Web Archivo que contiene el código fuente de una clase en Java . class § Archivo que contiene el código byte resultante de la compilación del respectivo archivo. java Fundamentos de Java 14

PAQUETES Y PROTECCIÓN DE CLASES § § § La biblioteca de clases java es

PAQUETES Y PROTECCIÓN DE CLASES § § § La biblioteca de clases java es un conjunto de paquetes jerárquicamente organizados Un paquete contiene clases lógicamente relacionadas y agrupadas bajo un nombre El paquete java. io agrupa las clases que permiten la entrada y salida de datos Un paquete puede contener otros paquetes Un paquete puede ser creado por el usuario Fundamentos de Java 15

PAQUETES Y PROTECCIÓN DE CLASES El nombre completo de una clase consta del nombre

PAQUETES Y PROTECCIÓN DE CLASES El nombre completo de una clase consta del nombre de la clase precedido del nombre del paquete, por ejemplo java. lang. System § La protección de una clase determina su relación con las clases de otros paquetes § Se distinguen dos niveles de protección: § De paquete (predeterminado) § Público § Fundamentos de Java 16

IMPORTACIÓN DE CLASES Se puede usar una clase de otro paquete dando su nombre

IMPORTACIÓN DE CLASES Se puede usar una clase de otro paquete dando su nombre completo o importándola § import java. lang. System permite referirse a la clase System omitiendo java. lang § Para importar un paquete completo se reemplaza el nombre de una clase por un * § import java. lang. * importa todas las clases públicas del paquete java. lang que se usen en un programa § Fundamentos de Java 17

CONTROL DE ACCESO § Existen cuatro niveles y tres modificadores de acceso: De paquete

CONTROL DE ACCESO § Existen cuatro niveles y tres modificadores de acceso: De paquete (por omisión) § Público (public) § Privado (private) § Protegido (protected) § § Un miembro declarado sin modificador de acceso es accesible por cualquier clase perteneciente al mismo paquete Fundamentos de Java 18

CONTROL DE ACCESO Un miembro declarado public es accesible por cualquier otra clase o

CONTROL DE ACCESO Un miembro declarado public es accesible por cualquier otra clase o subclase que desee utilizarlo § Un miembro declarado private es accesible sólo por los métodos de su propia clase § Un miembro declarado protected es accesible por cualquier clase del mismo paquete o cualquiera de sus subclases § Fundamentos de Java 19

EXCEPCIONES Una excepción es un evento que impide la continuidad de ejecución de un

EXCEPCIONES Una excepción es un evento que impide la continuidad de ejecución de un programa § Las excepciones proporcionan una manera limpia de verificar errores § Se puede capturar y manejar una excepción en un intento por evitar que se detenga la ejecución del programa § Las clases Exception y Error son subclases de la clase Throwable § Fundamentos de Java 20

EXCEPCIONES Exception cubre las fallas recuperables § Error cubre las fallas no recuperables §

EXCEPCIONES Exception cubre las fallas recuperables § Error cubre las fallas no recuperables § En un método, el código que podría lanzar (throw) una excepción debe incluirse en un bloque try § Al ocurrir una falla, el método lanza una excepción para que intervenga el bloque catch que la manejará § Fundamentos de Java 21

MIEMBROS ESTÁTICOS Un atributo static se puede utilizar aunque no existan objetos de su

MIEMBROS ESTÁTICOS Un atributo static se puede utilizar aunque no existan objetos de su clase § Mediante el nombre de su clase, otra clase puede acceder a un atributo public static § Un método static § no tiene referencia this, por lo cual no puede ser invocado por un objeto de su clase § puede acceder a miembros static de su clase, pero no a miembros no static de la misma § Fundamentos de Java 22

TIPOS DE DATOS § Categorías de tipos de datos: § Primitivos Enteros [byte (1

TIPOS DE DATOS § Categorías de tipos de datos: § Primitivos Enteros [byte (1 byte), short (2 bytes), int (4 bytes), long (8 bytes) y char (2 bytes)] § Reales [float (4 bytes) y double (8 bytes)] § Lógico [boolean (1 byte)] § § Referenciados Clases § Interfaces § Arreglos § Fundamentos de Java 23

TIPOS DE DATOS § Además, el paquete java. lang proporciona las clases: § §

TIPOS DE DATOS § Además, el paquete java. lang proporciona las clases: § § § § Byte Character Short Integer Long Float Double Boolean Fundamentos de Java 24

CONSTANTES SIMBÓLICAS § Una constante simbólica es un dato de algún tipo primitivo, inicializado

CONSTANTES SIMBÓLICAS § Una constante simbólica es un dato de algún tipo primitivo, inicializado explícitamente y precedido del calificador final § puede incluir el calificador static § puede definirse como § atributo de clase § local a un método § § definida como local a un método, NO puede ser declarada static Fundamentos de Java 25

CONSTANTES SIMBÓLICAS § Cuando una constante simbólica aparece como atributo de clase mediante final

CONSTANTES SIMBÓLICAS § Cuando una constante simbólica aparece como atributo de clase mediante final static, sólo se crea una copia de ella para todos los objetos de esa clase § final, se crea una copia de ella para cada objeto de esa clase (poco útil) § Fundamentos de Java 26

VARIABLES § Para acceder a la representación en memoria de variables de tipo primitivo

VARIABLES § Para acceder a la representación en memoria de variables de tipo primitivo se usa direccionamiento directo § referenciado se usa direccionamiento indirecto § Una variable puede ser atributo (ámbito de clase) o local (ámbito de bloque) § La referencia a un objeto declarado final es una referencia constante a ese objeto § Fundamentos de Java 27

OPERADORES § Aritméticos § § Relacionales § § <, >, <=, >=, !=, ==

OPERADORES § Aritméticos § § Relacionales § § <, >, <=, >=, !=, == Lógicos § § +, -, *, /, % &&, ||, &, |, !, Unarios § !, ~, -, ++, -- Fundamentos de Java 28

OPERADORES § Sobre bits § § &, |, , <<, >>> De asignación ++,

OPERADORES § Sobre bits § § &, |, , <<, >>> De asignación ++, --, =, +=, -=, *=, /=, %= § <<=, >>>, &=, |=, = § § Condicional § ? op 1 ? op 2 : op 3 Fundamentos de Java 29

CREACIÓN DE OBJETOS Una clase es una plantilla para crear objetos § Un objeto

CREACIÓN DE OBJETOS Una clase es una plantilla para crear objetos § Un objeto se crea con el operador new § Si la memoria disponible para representar el objeto es § suficiente, el operador new retorna una referencia al nuevo objeto § insuficiente, el operador new lanza el error Out. Of. Memory. Error § Fundamentos de Java 30

CONSTRUCTORES La ejecución de un constructor inicializa los atributos de un objeto recién creado

CONSTRUCTORES La ejecución de un constructor inicializa los atributos de un objeto recién creado § Un constructor implícito asigna los valores § especificados en la declaración § predeterminados por el lenguaje § § Un constructor explícito no puede ser void ni retornar un valor § admite parámetros y puede ser sobrecargado § no puede ser final ni static § Fundamentos de Java 31

ASIGNACIÓN DE OBJETOS El operador de asignación no sirve para copiar un objeto en

ASIGNACIÓN DE OBJETOS El operador de asignación no sirve para copiar un objeto en otro § La semántica de obj 1 = obj 2 es la identidad de los objetos obj 1 y obj 2 § Se puede copiar un objeto en otro mediante § un método exclusivo para ello ó § un constructor de copia § § El constructor de copia permite inicializar un nuevo objeto a partir de otro existente Fundamentos de Java 32

DESTRUCTORES § § § Un destructor es un método único con el nombre predefinido

DESTRUCTORES § § § Un destructor es un método único con el nombre predefinido finalize Puede contener sentencias acordes con la desaparición del objeto Por omisión se provee uno implícito Cuando no quedan referencias que apunten a un objeto, éste se transforma en basura La invocación del destructor es automática cuando se recolecta un objeto basura Fundamentos de Java 33

FLUJOS DE E/S ESTÁNDAR § La clase System proporciona tres flujos estándares que se

FLUJOS DE E/S ESTÁNDAR § La clase System proporciona tres flujos estándares que se mantienen activos durante la ejecución de un programa: System. in destinado a la entrada de datos por teclado § System. out destinado a la salida de datos por pantalla § System. err destinado a la salida de errores por pantalla § Fundamentos de Java 34

FLUJOS DE E/S ESTÁNDAR Un objeto de la clase Input. Stream. Reader convierte un

FLUJOS DE E/S ESTÁNDAR Un objeto de la clase Input. Stream. Reader convierte un flujo de bytes en caracteres § La clase Buffered. Reader provee el método read. Line() para leer una línea de texto § Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader flujo. E = new Buffered. Reader(isr); in § isr flujo. E La clase Print. Stream provee el método println(<arg>) para desplegar <arg> como una línea de texto Fundamentos de Java 35

CLASE Leer public class Leer { public static String dato() { String sdato =

CLASE Leer public class Leer { public static String dato() { String sdato = ""; try { // Definir un flujo de caracteres de entrada Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader flujo. E = new Buffered. Reader(isr); sdato = flujo. E. read. Line(); } catch (IOException e) { System. err. println("Error: " + e. get. Message()); } return sdato; } Fundamentos de Java 36

CLASE Leer public static short dato. Short() { try { return Short. parse. Short(dato());

CLASE Leer public static short dato. Short() { try { return Short. parse. Short(dato()); } catch (Number. Format. Exception e) { return Short. MIN_VALUE; } } public static int dato. Int() { try { return Integer. parse. Int(dato()); } catch (Number. Format. Exception e) { return Integer. MIN_VALUE; } } Fundamentos de Java 37

CLASE Leer public static long dato. Long() { try { return Long. parse. Long(dato());

CLASE Leer public static long dato. Long() { try { return Long. parse. Long(dato()); } catch (Number. Format. Exception e) { return Long. MIN_VALUE; } } public static float dato. Float() { try { Float f = new Float(dato()); // Crea un objeto Float return f. float. Value(); // Retorna un valor float } catch (Number. Format. Exception e) { return Float. Na. N; } } Fundamentos de Java 38

CLASE Leer public static double dato. Double() { try { Double d = new

CLASE Leer public static double dato. Double() { try { Double d = new Double(dato()); return d. double. Value(); } catch (Number. Format. Exception e) { return Double. Na. N; } } } // Fin de la clase Leer Fundamentos de Java 39