Repaso de JAVA
Yhoan Andres Galeano Urrea
Hola mundo
Método Main, java es POO por defecto, Comandos básicos
Hola mundo Scanner
Paquetes, Scanner y variables
Tipos de datos
Operadores
Operadores Relacionales
Operadores Lógicos
Operadores Aritméticos
Estructuras de decisión
IF, SWITCH, IF ANIDADO
Estructuras Iterativas
While, Do While, For
Arrays y Matrices Simples
Foreach
Literales en Java
Comillas, Tabulador, Slash ...
Cadenas y algunos métodos
Substring, charAt, indexOf, lastIndexOf.
Diferencia entre equals y == al comparar una cadena.
Objeto StringBuffer
Constantes
Static y final
Conversiones de datos
Parse
Wrappers Tipos de datos
Tener en cuenta para las conversiones
Taller de algoritmos básicos con estructuras de control
POO
Que es la POO, Pilares de la POO y porque es el paradigma de programación mas utilizado
Clases y objetos
Las clases definen la estructura de sus objetos. Es decir que todos los objetos de una misma clase podrán almacenar el mismo tipo de información y tendrán la misma capacidad para manipularla.
Encapsulamiento
Private, Protected, Public (Getters and Setters)
Métodos con niveles de acceso
Niveles de acceso (encapsulamiento) y métodos static
Los métodos de una clase se escriben como funciones. Dentro de los métodos, podemos acceder a los atributos de la clase como si fueran variables globales.
Método toString()
Heredado por defecto de la clase Object
Definir y “crear” objetos
Para utilizar un objeto, no alcanza con definir su identificador (nombre de variable) y su tipo de datos. Además hay que “crearlo”.
Constructores
El constructor de una clase es un método “especial” a través del cual podemos crear los objetos de la clase.
Toda clase tiene (al menos) un constructor.
Podemos definirlo (programarlo) explícitamente o bien aceptar el constructor por defecto que Java definirá por nosotros en caso de que no lo hayamos programado.
Sobrecarga de Constructores
Diferentes parámetros y diferentes tipos de datos
Sobrecarga de métodos
Diferentes parámetros y diferentes tipos de datos
Convenciones de nomenclatura
Herencia
La herencia permite definir nuevas clases en función de otras clases ya existentes. Diremos que la “clase derivada” o la “subclase” hereda los métodos y atributos de la “clase base”.
Esto posibilita, partiendo de una base, redefinir el comportamiento de los métodos heredados y/o extender su funcionalidad.
Ejemplo herencia con FechaDetallada
¿No se heredan los constructores?
Utilizamos la palabra reservada super
Herencia en UML
Polimorfismo
Los objetos nunca dejan de reconocerse como miembros de una determinada clase. Por tal motivo, independientemente del tipo de datos de la variable que los esté conteniendo, estos ante la invocación de cualquiera de sus métodos siempre reaccionarán como su propia clase lo defina.
Ejemplos con las clases que hemos creado hasta el momento
Ejemplo polimorfismo con método static.
Objeto de tipo Object (Clase muestra conjuntos)
Retomemos a super con un ejemplo de herencia
Clase FechaDetallada con FechaHora
Referencia this para acceder a los métodos y atributos de la misma clase
Clases abstractas
Una clase abstracta es una clase que tiene métodos que no pueden ser desarrollados por falta de información concreta. Estos métodos se llaman “métodos abstractos” y deben desarrollarse en las subclases, cuando esta información esté disponible.
Ejemplo con figuras geométricas
¿?
Dejo planteado un interrogante para el lector: en la clase FiguraGeometrica sobrescribimos el método toString y dentro de este invocamos al método area (que es abstracto). ¿Esto tiene sentido?
Nota importante
En general las clases abstractas deben ser subclaseadas y toda clase que herede de una clase abstracta tendrá que sobrescribir los métodos abstractos de su padre o bien también deberá ser declarada abstracta y (por lo tanto) no se podrá instanciar.
Ejemplo con las figuras que heredan de la clase padre
Reto:
Constructores de clases abstractas
Crea el constructor de la clase FiguraGeometrica para que reciba el nombre de la figura en la cual se implementara. Ademas agrégale al método toString() este nombre para que el mensaje al llamar a TestFigura sea algo así:
Variables de instancia
Ejemplo con persona
Garbage Collector
El Garbage Collector es un proceso que
está constantemente buscando bloques
de memoria desreferenciados y
los libera.
Referencias estáticas
Dentro de los métodos estáticos de una clase, no podemos acceder variables o métodos que no lo sean.
En el siguiente ejemplo, definimos una variable de instancia a y un método también de instancia unMetodo.
Luego intentamos acceder a estos dentro del método main (que es estático) lo que genera errores de compilación.
Referencias estáticas
¿Como lo solucionamos?
Creando una instancia de la misma clase dentro del main o estableciendo el atributo y método como statics
Interfaces
Una interfaz en Java es una colección de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la lógica del comportamiento de los métodos.
Diferencia entre interfaz y clases abstractas.
La mayor diferencia entre estas dos es que una clase abstracta se puede heredar, mientras que una interfaz se implementa.
Ademas en JAVA se pueden implementar múltiples interfaces, lo contrario de hacer herencia, pues como sabemos solo se puede hacer herencia de una sola clase.
Ejemplo de implementación de Interfaces.
Talleres de POO en JAVA
3 Talleres
Collections
Cada grupo de proyecto seleccionara un tema especifico:
LinkedList
ArrayList
Vector
List
Map
Realizar exposición de cada tema con dos ejemplos mínimo.
Excepciones
Try, Catch, Finally
RuntimeException
HTML5, CSS3, JS
Sublime, Etiquetas mas utilizadas.
Hojas de estilo, tips, selectores
Eventos en JS, funciones
Bootstrap para hacer paginas responsive
J2EE
Lectura de HTTP - TCP - IP, Request con Get y Post, Forms
Servlets, y paginas JSP
Conexiones a base de datos
Conexión común y utilización del patrón Singleton
Patrón Singleton
Un patrón de diseño sugiere una solución eficiente y generalmente aceptada con la que podemos resolver un determinado tipo de problemas. En este caso, el problema que tenemos (o mejor dicho, el problema que vamos a tener) es el de obtener siempre la misma y única instancia de una clase.
Concretamente, estoy hablando de la conexión con la base de datos. Una vez establecida la conexión, debemos mantenerla instanciada para poderla utilizar durante toda la ejecución de la aplicación. Una única conexión es suficiente para ejecutar todos los accesos a la base de datos, por lo tanto, tenemos que evitar instanciarla más de una vez ya que el hecho de establecerla es costoso en términos de procesamiento, tráfico de red y tiempo.
Patrón Singleton
Una implementación simple del Singleton Pattern consiste en definir estático y privado al objeto que queremos que sea único y proveer un método de acceso estático para accederlo.
Dentro de este método, preguntamos si el objeto es null, en ese caso lo instanciamos y luego lo retornamos. Si no, simplemente lo retornamos.
Patrón Singleton
Ejemplo con conexión a base de datos y singleton pattern
Introducción a MYSQL
Crear tablas, Relaciones entre tablas (joins) y ejecutar Querys (MySQL WorkBench)
Repaso de JAVA
By Yhoan Andres Galeano Urrea
Repaso de JAVA
- 1,271