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