Introducción a la programación orientada a objetos en Java, qué son las clases, objetos, métodos, etc, así como una introducción a las librerías que contiene Java.
Esta es la cuarta clase y por ahora la última del curso de Introducción a Java, que también va a ser la mejor, no por ser la que finaliza de momento el curso, sino porque nos vamos a introducir en uno de los campos que son característicos en Java y que siempre cuesta un poco más de entender y encontrar información de calidad al respecto, como los objetos.
Java es un lenguaje de programación orientado a objetos (POO), eso quiere decir que tenemos que programar con un estilo específico, donde los programas se escriben con un lenguaje más cercano al de las personas y más parecido a como funciona el mundo. Desarrollar con POO, o por sus siglas en inglés OOP, es bastante común dentro de los lenguajes de programación de alto nivel y nos permite una serie de ventajas en el desarrollo de los programas informáticos.
"No vales por lo que sabes, vales por lo que tienes la capacidad de aprender, todo cambia demasiado rápido."
(Si sabes qué genio dijo esta frase, tuitéalo a @josedlujan para que te de un premio)
Programación Orientada a Objetos
POO o programación orientada a objetos es un paradigma de programación que está basado en entender la creación de programas tal como es la vida real, un universo de objetos que interaccionan entre si.
Un objeto es todo lo que vemos. Dentro de la programación orientada a objetos tenemos varias características como la herencia, polimorfismo, acoplamiento, encapsulamiento, entre otras.
Los objetos tienen unas características que son propias de todos los elementos de ese estilo. Por ejemplo, una televisión, un coche, etc. Todos tienen unas características que son comunes. No tienen por qué tener los mismos valores, pero sí el mismo tipo de características. Por ejemplo, una tele puede tener pulgadas (dimensiones), las pulgadas pueden variar y tenemos teles desde 14 pulgadas hasta 60, pero todas tienen una cantidad de ellas. Los coches pueden tener una marca, un modelo, un número de asientos, éstos pueden ser variables, pero todos los tienen.
En el vídeo se ve el concepto general de este paradigma de la programación, pero además se detiene en ver estos elementos que forman parte de la POO.
Qué es una Clase
Es una especie de "plantilla" que define las características y funcionalidades de un objeto. Digamos que es la definición de todos los objetos de un tipo en conctreto. Por ejemplo, la clase humano, puede tener una serie de características, color de ojos, brazos, piernas, cabeza, altura y luego el humano puede hacer diversas cosas, fisiológicas como comer y dormir, pero también acciones como correr o caminar.
Dentro de una clase vamos a encontrar:
Atributos:
Son todas las características que hacen que ese objeto
Métodos:
Son las acciones que puede llevar acabo el objeto que vamos a crear, casi siempre modifican los atributos del mismo. Aunque también pueden ser solo acciones.
Qué es un Objeto
Un objeto es un ejemplar de una clase. Obtenemos un objeto cuando le "damos vida a la clase". La clase es la es la definición de algo, pero no es algo con el que podamos trabajar o tocar. Cuando vamos a usar la clase tenemos que crear un objeto de esa clase. Por ejemplo, la clase humano, y el humano "pepe". A la clase no le puedo decir que ande, porque es solo una definición, pero a "pepe" ya sí le puedo pedir que ande a tal lugar.
Un objeto toma como referencia lo que dice en su clase, dando valores a sus características, por ejempoo un humano de ojos azules y 1.70 de estatura, y somos capaces de invocar sus métodos para pedirle que haga cosas.
Instanciar un objeto:
El termino "instanciar" un objeto lo utilizamos cuando creamos un ejemplar de una clase. Por ejemplo, voy a instanciar dos coches, un Audi A3 verde y un Seat Panda rojo. Ese proceso de crear un objeto a partir de lo definido en una clase es el proceso denominado instanciar.
Librerías en Java
Las librerías es un conjunto de código que normalmente realiza algo muy específico, siempre sirven de apoyo para algunos procedimientos u operaciones que se realizan dentro de un programa principal.
La idea detrás de las librerías es servir de base para construir programas mayores. Con las librerías disponibles nunca vas a resolver los problemas completos de un programa, sino que te podrás basar en ellas para no tener que partir todo desde cero y sobre todo, no repetir o tener que hacer asuntos que puedan ser muy utilizados en determinado tipo de programa. Por otra parte, las librerías facilitan que tengamos código separado, e implementarlo cuando sea necesario. Es decir, utilizar las librerías cuando lo necesitemos desde cualquier programa y mantener su código de manera independiente.
Java tiene una serie de liberías enorme que sirven para hacer infinidad de cosas. Además como Java es un lenguaje de programación de amplio espectro, sus librerías cubren también un gran abanico de posibilidades. Cuando realizas un programa necesitarás solo unas pocas de sus librerías y posiblemente haya muchas que no llegues a usar nunca en tu vida como programador.
Por concretar un poco más este asunto piensa que, cuando programas para web usas unas librerías, cuando trabajas en aplicaciones de escritorio usas otras, cuando programas apps de Android, también usas otras librerías específicas para éste sistema. Si quieres hacer cálculos matemáticos usas unas librerías, si quieres trabajar con gráficos usas otras, etc.
Por supuesto, cualquier programador puede crear una librería que considere útil para sus programas. La podrá usar en todos sus proyectos e incluso podrá "donarla" en Internet para que la usen otros programadores.
Ejemplos realizados
Todo lo que se explicó en la clase se vio también en código, centrando las explicaciones en crear algunos ejemplos de Programación Orientada a Objetos.
Clase Humano: En el vídeo se creó una clase llamada Humano, explicando todos los detalles que se han aprendido en la teoría. Es importante que puedas ver las explicaciones en la grabación, un poco más abajo. A continuación tienes el código producido.
public class Humano {
int Nbrazos;//Atributos
int Npiernas;
int Nojos;
String Cojos;
int hambre;
public void caminar(){}//metodos
public void respirar(){}
public void comer(int hambre){
hambre=0;
}
public Humano(){
hambre=10;
Nbrazos=2;
Npiernas =2;
Nojos = 2;
Cojos = "cafe";
}
public static void main(String[] args){
Humano juanito = new Humano();//instanciar
System.out.println(juanito.Nbrazos); // atributo
juanito.Nbrazos=1;//cambiando el atributo del objeto
System.out.println(juanito.Nbrazos);
//Humano pepito = new Humano();
}
}
Clase Hombre: Luego se introdujo brevemente un concepto fundamental en la Programación Orientada a Objetos como es la herencia, que nos permite crear unas clases basándonos en el código de otras, heredando sus métodos (funcionalidades) y atributos (características).
Se vio por la práctica, simplemente para crear una clase llamada Hombre que hereda de la clase Humano. Con este código. (recuerda ver las explicaciones del vídeo)
public class Hombre extends Humano {public Hombre(){
}
public static void main(String[] pepito){
Hombre merenganito = new Hombre();
System.out.println(merenganito.Nbrazos);
}
}
Conclusión
"Cualquier estúpido puede escribir código que una computadora entienda. Los buenos programadores escriben código que los humanos entienden"
Martin Fowler
Recuerda que esta introducción a Java tiene como objetivo dar unos pequeños pasos para comenzar con el lenguaje de Programación, aclarando algunos conceptos que son básicos para poder empezar a programar.
También debes saber que el universo Java es muy amplio y por ello, si quieres aprender también tendrás que saber en qué tarea vas a realizar, para especializarte y dedicarse a adquirir unos conocimientos u otros.
Nosotros este curso de introducción lo hemos hecho con el objetivo que tengas una base de Java suficiente para que puedas empezar a aprender desarrollo de aplicaciones para Android en su lenguaje nativo. La parte de desarrollo la podrás aprender también con nosotros y es que vamos a comenzar un Curso de desarrollo para Android en EscuelaIT.
En DesarrolloWeb.com también estamos publicando un Manual de desarrollo de apps en Android, pero irá más poco a poco. Te recomendamos acceder al curso de si quieres una formación más intensiva, personalizada y en la que además puedas practicar y crear tus propias aplicaciones. Ganarás tiempo y aprenderás de una manera más agradable y completa, con la ayuda de nuestro compromiso por tu aprendizaje.
De momento puedes descargar las diapositivas de esta charla.
Además ahora también puedes ver el vídeo de la grabación de esta clase.
José Dimas Luján
José Dimas es fundador de Ockham Ti, empresa de desarrollo de software, app móvi...