Zusammenfassung der Ressource
Java
- Introducción a TDA
- Solución de problemas para
grandes programas
- Modularidad y
Reutilización de
software
- Organiza:
- El programa en subprogramas (módulos)
- Agrupa:
- En subprogramas compilados
indepndientemente
- Modularización:
- Diseñar los módulos o contenedores sintácticos
- Unidad de compilación
- Capacidad de la compilación
independiente de subprogramas
- Encapsulación
- Agrupar
- Subprogramas con datos que manipulan
- Ventajas:
- Mayor modularidad
- Mejor mantención
- Movilidad
- Ocultamiento de la información
- Abstrae detalles de implementación
- Cambios en la implementación no
afectan otros objetos
- Tipos de Datos Abstractos (TDAs)
- Corresponde:
- A una encapsulación que incluye:
- La representación de un tipo de dato específico
- Las operaciones asociadas a ese tipo
- Objeto es:
- Una instancia de un TDA
- Ocultamiento de Información
- Mediante controles de acceso
- Problemas de Reuso
- Requieren ser adaptadas para el nuevo uso
- Entender la implementación del TDA
- Introducción a OO
- Programa es:
- Conjunto de objetos correspondientes a una abstracción
- Comunicación entre objetos:
- Mensajes a algún método, el cual puede retornar objetos
- Mesajes pueden alterar el estado del objeto
- Objeto
- Tiene estado (variables) y comportamiento (metodos)
- Encapsulamiento mediante metodos
- Manipulación de estado mediante métodos
- Mensajes
- Objetos interactúan enviándose mensajes
- Consiste:
- Identificador del objeto
- Identificador del método
- Parámetros
- Clase
- Representa:
- Conjunto de objetos comunes
- Un objeto es la instancia de una clase
- Herencia
- Capacidad de usar datos abstractos ya definidos sin alterarlos
- La reutilización se da al definir TDAs adicionales al TDA base
- Las clases que heredan de una clase base (superclase) se
denominan derivadas (subclases)
- Una subclase heredera puede hacer override de un método
- Ventajas
- Subclases proveen comportamiento en base a la superclase
- Definir clases abstractas que representan el comportamiento de las
clases heredadas
- Herencia Múltiple
- Una clase hereda de dos o mas clases
- Problemas
- Colisión de nombres
- Pérdida de eficiencia
- Desorganización
- Poliformismo
- Permite
- Crear variables del tipo superclse
referenciando a objetos de cualquier subclse
- Adaptar métodos de la superclase con otra
implementación
- Se debe
- Hacer ligado dinamico al invocar al un metodo
- Clases y métodos Virtuales
- Aveces no tiene sentido la creación de ciertos objetos
- Definir un prototipo a ser implementado por clases
derivadas
- Clase virtual tiene estos métodos
- Interfaces
- Definen un protocolo
- interacción de objetos sin conocer su clase
- Varias clases pueden implementar una interfaz
- Obligatorio implementar todos los métodos
- Utilidad
- Capturar similitudes entre clases no relacionadas
- Revelar una interfaz de programación
- Introducción a Java
- Orígenes
- James Gosling inicia un proyecto independiente de la plataforma
- Desarrolla OAK (Lenguaje de programación)
- Aparece WWW y Mosaic
- SUn anuncia Java con soporte de applets
- Versión J2se1.5-Beta disponible
- Tecnología
- Orientado a objetos
- Sintaxis similar a C++
- Plataforma
- Máquina Virtual Java (JVM)
- Java API
- Caracteristicas
- Simple y Orientado a objetos
- Robusto y Seguro
- Interpretado, neutro de la arquitectura y portable
- Distribuido y alto desempeño
- Mejor interactividad de aplicaciones
- Permite enlace y carga dinámica de clases
- Aplicación
- Ejecuta la función main de una clase
- Confiables (pueden leer, escribir, crear o
borrar archivos
- Conceptos
- Conjunto de Caracteres
- Utiliza Unicode (caracteres de 16 bits)
- Lee ASCII convirtiendo a Unicode
- Pocos editores usan Unicode
- Identificadores
- Deben
- Comenzar con una letra, incluido _ o $
seguido de letras o dígitos
- Se diferencia mayusculas de minúsculas
- Palabras reservadas no pueden ser identificador
- Variable
- Item de datos nombrado por un identificador
- Tiene:
- Un tipo y debe ser declarado
- Ambito que define su visibilidad en el programa
- Tipos de Datos
- Define los posibles valores para una variable
- Tiene dos categorías:
- Primitivos (único valor de tamaño)
- Referencias (dirección a un conjunto de valores)
- Direcciones implicitas (no soporta punteros)
- Valores Iniciales
- Se puede inicializar en su declaración
- Operadres
- Se asocia por precedencia
- Paréntesis cambia la precedencia
- Tipos de operadores
- Aritméticos
- Incremento y Decremento
- Relacionales
- Al bit
- Condicional
- De asignación
- Expresiones
- Se evalúa de izquierda a derecha
- Cada operando se evalúa antes de realizar la operación
- Cada expresión tiene un tipo
- Conversión de tipo
- Conversión implícita es automática en valores primitivos
- Conversión Explícita se denomina cast
- Control de flujo
- Sentencias y Bloques
- Toda sentencia termina con ; y un bloque se forma con { y {
- Sentencia if-else
- Control de flujo basico condicional
- Sentencia switch
- Evalua una expresión entera para seleccionar un caso sino salta a default
- Sentencia while y do-while
- Repetición controlada por expresión booleana
- Sentencia for
- Permite controlas la repetición para un rango de valores
- Sentencia break, continue y return
- Sale de cualquier bloque o bucle
- Modificador final
- en 3 situaciones:
- Variable, no puede ser modificada
- Método, no puede ser redefinido
- Clase, no puede derivar
- La clase Object
- Todas las clase tienen a Object como raíz
- Tiene metodos útilez que podemos usar
debido a la herencia
- metodos equals y hashCode
- deben ser redefinidos conjuntamente
- son iguales si tienen el mismo codigo hash
- Clase y Objeto
- Modificadores
- public
- Solo es accesible por el mismo paquete
- abstract
- No puede ser instanciada
- final
- No puede ser derivada
- Variables Mienbros
- Variables que no son estáticos y tienen sus
propias instancias y estados
- Control de acceso
- Disponibilidad de métodos y variables en la clase
- Para controlar el acceso:
- Privado
- Accesibles por la propia clase
- Paquete
- Solo accesibles por código
- Protegido
- Accesibles por una subclase
- Púlico
- Son accesibles por cualquier clase
- Constructores y creacion de objetos
- Un objeto recién creado debe inicializar las variables miembro
- Referencia this
- Solo si es no estático y se refiere al objeto actual
- se usa implícitamente al comienzo de cada miembro
referenciado en el código
- Sobrecarga de métodos
- Permite tener varios métodos con un mismo nombre
- Se calza según los parámetros usados
- Miembros Estáticos
- Es único para toda una clase
- Variable miembro estática
- Variable única para los objetos de una clase
- Método estático
- Se invoca en nombre de toda la clse
- Recolección de basura
- Realiza recolección automática de basura
- Ventajas
- No requiere invocar al administrador de memoria
- No se produce problema de dangling
- Metodo finalize
- Finaliza antes de librear memoria
- Util cuando se usan recursos no de Java
- Método toString
- invoca en cualquier expresión en que el objeto
aparezca con los operadores + y +=
- Clases anidadas
- Permite definir una clase como miembro de otra clase
- Packages
- contiene
- Clases, interfaces, y subpaquetes relacionados entre sí
- Facilita la distribución del software
- Existen paquetes propios de Java
- Excepciones
- Corresponde a un evento que interrumpe el flujo
normal de la ejecución
- Permite reaccionar ante errores de ejecución
- Ventajas
- Separa el código de los errores
- Propaga errores a través de los métodos activos en el stack
- Permite agrupar errores y diferenciarlos
- Cláusula finally
- Al momento de lanzar una excepción se detiene el
procesamiento del método
- Se usa la cláusula finally, que se ejecuta haya o no
excepción antes de retornar
- Streams
- Java provee más de 60 clases de streams
- Las Clases básicas sólo permiten leer o escribir bytes o caracteres
- Archivos
- Permite tener representación abstracta de archivos y directorios
- Mediante la clase File podemos acceder a
métodos como:
- Crear directorio, renombrar, borrar, sendero del archivo,
listar directorio, etc
- Patrones de Diseño
- FactoryMethod
- Una fáblica es un patrón que devuelve un objeto dependiendo de la información proveída
- Devuelve una clase abstracta o interfaz
- Singleton
- Objeto que requiere tener una sola instancia
- Mejora el rendimiento y asegura recursos no
compartidos
- Patrones de diseño empresariales
- View Helper
- Session Facade
- Data Access Object