Está en la página 1de 6

Inicio Acerca De... ¿Que es CoDejaVu?

Indice de Contenido VideoTutoriales Java SE y Otros VideoTutoriales Android VideoTutoriales Java Web

domingo, 19 de mayo de 2013 Buscar este blog

Conceptos Básicos de Programación Orientada a Objetos Busca

En esta entrada veremos algunos conceptos de la Contacto


programación orientada a Objetos
(POO)............................................... Cristian Henao
Seguir 1.346
Muchas veces cuando empezamos a trabajar con lenguajes
de programación nos dicen que son orientados a Objetos y nos dan la teoría del Ingeniero de
"porqué" pero puede que al trabajar con ellos en la practica no sepamos Sistemas y
interpretarlo desconociendo el "como", y entonces seguimos desarrollando por Computación (Universidad del
simple inercia porque así fue que aprendimos pero tal vez no de la forma mas Quindío - Colombia)
óptima. Tecnólogo en Análisis y
Desarrollo de los Sistemas de
Información (Sena Quindío).
Vamos a ver algunos conceptos de POO de forma general, mas adelante
Especialista Tecnológico en
trabajaremos estos conceptos en casos prácticos para ver su aplicación...... desarrollo de Aplicaciones
móviles - Android
Adicionalmente les comparto un video con un ejemplo basicò sobre el trabajo con
objetos en java..... Empecemos!!! Blog :
http://codejavu.blogspot.com/
Programación OO. Facebook:
https://www.facebook.com/cod
javu
La programación orientada a Objetos básicamente define una serie de conceptos y
Google+:
técnicas de programación para representar acciones o cosas de la vida real basada
https://plus.google.com/u/0/+C
en objetos, a diferencia de otras formas de programación como por ejemplo la
ristianDavidHenaoHoyos
estructurada, con la POO trabajamos de manera distinta vinculando diferentes youtube: http://goo.gl/IiPNSy
conceptos tales como clases, objetos, métodos, propiedades, estados, herencia, Twitter : @chenaooo
encapsulación entre otros, generando cada vez interrelaciones en nuestro Linkedin :
desarrollo en pro del funcionamiento del sistema principal, definiendo el programa http://www.linkedin.com/pub/c
como un conjunto de estos objetos relacionados entre si. stian-david-henao-
hoyos/69/b90/84a
Veamos algunos de los conceptos principales..... Ver todo mi perfil

Clases.

Las clases son uno de los principales componentes de un lenguaje de


programación, pues en ellas ocurren todos los procesos lógicos requeridos para un
sistema, en si podemos definirlas como estructuras que representan objetos del
mundo real, tomando como objetos a personas, lugares o cosas, en general las
clases poseen propiedades, comportamientos y relaciones con otras clases del
sistema. (Ver Ejemplo...)

una clase se compone por tres partes fundamentales:

Nombre : Contiene el Nombre de la Clase.


Atributos : Representan las propiedades que caracterizan la
clase.
Métodos : Representan el comportamiento u operaciones, la Suscribete!!! Quieres seguir
este blog? Participa en el sitio
forma como interactúa la clase con su entorno.

En java se representa así :

1 /**Principal define el nombre de la Clase*/


2 public class Principal {
3 Seguidores (270) Siguiente
4 public String atributo="Esto es un atributo";
5
6 /**Esto es un método, donde se definen las operaciones*/
7 public void metodo(){
8 /**aqui van las sentencias que definen
9 * el comportamiento del método*/
10 }
11 }

Seguir
Objeto.

Los objetos representan una entidad concreta o abstracta del mundo real, en
programación básicamente se le conoce como la instancia de una clase en si es lo
que da el sentido a estas. Contactos G+
Cristian Henao
Al igual que las clases se componen de tres partes fundamentales:
Añadir a círculos

Estado: Representa los atributos o características con valores concretos del objeto.
Comportamiento : Se define por los métodos u operaciones que se pueden
realizar con el. Identidad : Es la propiedad única que representa al objeto y lo
diferencia del resto.

en la imagen, los moldes representan las clases, mientras


que las galletas obtenidas de estos moldes representan los
objetos instancias de estas clases, por ejemplo atributos del
objeto galleta podría ser sabor, color, tamaño etc......
1.346 me tienen en sus círculos. Ver to

En java se representa creando una instancia de la clase por


medio de la palabra new al hacer eso creamos el objeto de Historial CoDejaVu
la clase y podemos hacer uso de los métodos o atributos de esta (dependiendo de
la visibilidad de los mismos ) por medio de un punto (.) así: ► 2018 (11)
► 2017 (15)
1 /**Creamos el objeto como instancia de la clase Principal*/ ► 2016 (4)
2 Principal miObjeto= new Principal();
3 miObjeto.atributo="Este es el nuevo valor del atributo para el objet ► 2015 (4)
4 miObjeto.metodo(); ► 2014 (17)
▼ 2013 (59)
► diciembre (2)
En este video veremos la aplicaciòn de los conceptos anteriores...
► noviembre (2)
► octubre (4)
Ejemplo Programacion Orien…
► septiembre (4)

► agosto (4)
► julio (3)
► junio (8)

▼ mayo (18)
Polimorfismo en Java
Interfaces en Java
Clases Abstractas
Clases en Java
Herencia en Java
Herencia. Conceptos Básicos de
Programación Orientada
La herencia en java representa lo que conocemos de herencia Obje...

en el mundo real, básicamente mediante esta obtenemos las ¿ String Vrs StringBuffer
características o rasgos comunes de nuestros padres o abuelos, Vrs StringBuilder ?
en java es el mismo enfoque permitiendo la creación de nuevas Comparando Fechas En
clases basadas en clases ya existentes, con las cuales podemos Java
obtener las características de las clases padres, heredando Agrupando Tareas en
campos, atributos, métodos o funcionalidades. Jenkins
Ejecutar Tareas En Jenkins
En Java solo se puede heredar de una sola clase padre y se representa mediante la
Adicionar Proyectos en
palabra extends (Ver Ejemplo...) Jenkins
1 public class Animal{ Creación de Usuarios en
2 public String tamaño; Jenkins
3
4 public void comer(){ Opciones de Seguridad en
5 /**Comportamiento.....*/ Jenkins
6 }
Instalación Jenkins en
7 }
Windows.
8
9 class Perro extends Animal{ Integración Continua,
10 Primeros Pasos Con
11 public int dientes; Jenkins
12
13 public void correr(){ Instalación JDK
14 /**Comportamiento.....*/ Leer Archivo Properties en
15 } Java
16 }
17 Despliegue de Aplicación
18 class Paloma extends Animal{ Web Con Ant
19
20 public int plumas; ► abril (14)
21
22 public void volar(){
23 /**Comportamiento.....*/ Categorias
24 }
25 } Abstract (2) Abstract Factory (
Adapter (2) Apache Ant (
continuous integration (6) contr
Encapsulamiento. de versiones (3) Eclipse (15
Excepciones (1) google code (
Este concepto es uno de los mas importantes en términos de seguridad dentro de Herencia (4) Integració
nuestra aplicación, la encapsulación es la forma de proteger nuestros datos dentro continua (6) Interface (3) jav
del sistema, estableciendo básicamente los permisos o niveles de visibilidad o
acceso de nuestros datos
(23) Java Swin
(27) jboss (5) jboss seam (
Jboss Tools (2) JDialog (3) JDK (4
Se representa por 3 niveles :
Jenkins (7) JSF (14) MVC (
MySql (2) Observer (2) Patrone
Público: Se puede acceder a todos los atributos o métodos de la
de Diseño (8) PerGem space (
clase. Protegido: Se puede acceder a los atributos o métodos solo
Plugin (4) Polimorfismo (
en la misma jerarquía de herencia. Privado: Solo se puede acceder
Programación Orientada
a los atributos o métodos de la clase en la que se encuentran. Objetos (8) Properties (
repositorio (3) seam gen (
con la Encapsulación mantenemos nuestros datos seguros, ya que Singleton (2) svn (5)
podemos evitar que por ejemplo se hagan modificaciones al estado o
comportamiento de un objeto desde una clase externa, una buena practica es Lo Mas Visto
trabajar con métodos setter y getter que permiten manipular nuestros datos de
forma segura. Ejemplo Modelo
Vista Controlador
en Java lo representamos así: En la entrada sob
patrones de Diseñ
se habla sobre
1 public class Principal{ el patrón MVC , en esta
2 oportunidad vamos explicar
3 public String atributo1; un ejemplo practico donde se
4 private String atributo2; apl...
5 protected String atributo3;
6 Conceptos Básicos d
7 /**Métodos Set y Get para trabajar con las variables*/ Programación
8 Orientada a Objetos
9 public String getAtributo2() { En esta entrada
10 return atributo2; veremos algunos conceptos
11 } de la programación orientada
12 a Objetos
13 public void setAtributo2(String atributo2) { (POO)...............................
14 this.atributo2 = atributo2; .............. Muc...
15 }
16 Ejemplo
17 } JFileChooser
Nuevamente
regreso con un
Clases Abstractas. ejemplo práctico
sobre uno de los componente
Java Swing .............. el día
La abstracción permite resaltar la parte mas representativa de algo, ignorando de hoy les traigo el
detalles para centrarse en lo principal. JFileChooser ...

Ejemplo de
La imagen es muy fácil de identificar, con base a ella podemos crear una clase Polimorfismo En
persona, o la Java
En esta entrada
vamos a trabajar
clase hombre, humano entre otras, pero obviamente vemos que la un ejemplo rápido y simple
aplicando el concepto de
imagen no tiene elementos como ojos, nariz, boca, rostro en
Polimorfismo , en el post
general, ni dedos, pies, manos o cuello....... pero entonces porque anterior vimos algunas
decimos que es una persona?.........Precisamente aquí estamos consi...
aplicando el concepto de abstracción, ya que nos fijamos en lo mas
representativo de algo, en este caso vemos que se tiene una Ejemplo
JOptionPane
cabeza, tronco, brazos y pies, con esto es suficiente para saber que
Nuevamente
es una persona sin fijarnos en los detalles mencionados después de otra
anteriormente. semana muy
Las clases abstractas permiten crear métodos generales con un comportamiento pesada sin poder darle vuelta
al Blog, regreso para finaliza
común para otras clases concretas sin importar sus características ni el la secuencia de entradas
comportamiento que usen para dichos métodos. sobre Java Swi...

La Abstracción en java solo tiene lógica mediante la Herencia, ya que una clase ¿Eclipse o
Netbeans?
abstracta posee al menos un método abstracto el cual no tiene implementación, el
Hola, en esta
comportamiento de estos métodos lo definen las clases concretas que lo hereden. oportunidad quier
Podemos usarlos cuando existan varias clases con características o acciones hacer un break en
comunes pero con diferentes comportamientos..............mediante el uso de la las entradas sobre Java
Swing.......................... ¿Y
herencia y componentes abstractos hacemos mas óptima y organizada nuestra
Porqué?........... porque a...
aplicación. (hay que tener en cuenta que a diferencia de las clases concretas, las
clases abstractas no se pueden instanciar). (Ver Ejemplo...) Como crear
Interfaces Grafica
en Eclipse con
En Java representamos la abstracción mediante la palabra reservada abstract, así:
WindowBuilder
Después de much
meditarlo, voy a explicarles
cómo crear aplicaciones con
1 public abstract class Principal{ interfaz gráfica desde Eclipse
2 similar a como se hace en ...
3 /**Método Abstracto sin implementación*/
4 public abstract void metodoAbstracto(); Ejemplo Eventos
5 del Teclado en Jav
6 } En la entrada
7 anterior tocamos
8 class subClase extends Principal{ tema de los
9 eventos del Mouse, en esta
10 @Override ocasión continuaremos
11 public void metodoAbstracto() { trabajando con Eventos pero
12 /**Implementación definida por la clase concreta*/ ahora del Tecla...
13 }
14
Ejemplo
15 }
Conectando Java
con MySql
En esta entrada
Interfaces. vamos a tocar uno
de los puntos fundamentales
en el desarrollo de software,
no vamos a entrar en detalle
Las interfaces son el mecanismo que utiliza Java para simular la de que es una B...
herencia múltiple, como mencionamos en Java solo se puede extender
de una sola clase, mediante el uso de interfaces esto se puede simular Comparando
ya que el lenguaje permite implementar el numero de interfaces que Fechas En Java
En esta entrada
necesitemos, básicamente son clases completamente abstractas, es
veremos uno de lo
común relacionarlas con un contrato en el que se define que se debe procesos obligado
hacer, así cada clase concreta que implemente una interfaz esta obligada a cuando se trabaja en este
implementar todos los métodos que la compongan. campo del desarrollo de
Software, sin importar el
lenguaje q...
las interfaces definen lo que la clase que la implemente deberá hacer, mas no la
forma como lo hará.
CoDejaVu!!!
al decir que las interfaces son clases completamente abstractas significa que todos
CoDejaVu no es mas que la idea
sus métodos lo son y por ende no poseen implementación, no requieren el uso de
aportar un poco de conocimiento
la palabra reservada abstract, ya que al ser completamente abstracta todo dentro colaboración a los que lo pued
de ella lo es, al igual que las clases abstractas la implementación de necesitar, y retribuir un poco de lo que
los métodos depende de las clases concretas que las usen. podido aprender... no espero que much
sigan mis Entradas, o dejen comentario
Se debe tener en cuenta que toda variable definida en una solo espero que esto pueda ser de utilid
interfaz automáticamente se convierte en una constante, además tampoco se para alguien... y si le sirve a alguien m
puede instanciar una interfaz..... (Ver Ejemplo...) porque no compartirlo?

En java se representan con la palabra interface y se usan con la palabra


implements así: Enlaces
1 interface InterfacePrincipal { Paperblog
2 Hace 5 semanas
3 public void metodoAbstracto();
4
5 public String otroMetodoAbstracto();
6
7 }
8
9 public class Principal implements InterfacePrincipal{
10
11 public void metodoAbstracto() {
12 /**Implementación definida por la clase concreta*/
13 }
14
15 public String otroMetodoAbstracto() {
16 /**Implementación definida por la clase concreta*/
17 return "retorno";
18 }
19 }

Polimorfismo.

Este tal vez sea uno de los conceptos de la programación orientada a objetos mas
usados pero muchas veces sin saber que se aplica ya que el concepto inicialmente
puede ser un poco confuso, básicamente mediante el polimorfismo programamos
de forma general en lugar de hacerlo de forma especifica, se usa cuando se
trabajen con la herencia y objetos de características comunes los cuales comparten
la misma superClase y árbol jerárquico, al trabajar con este concepto optimizamos
y simplificamos en gran medida nuestro trabajo.

básicamente podemos definirlo como la capacidad que tienen


los objetos de comportarse de múltiples formas sin olvidar que
para esto se requiere de la herencia, en si consiste en hacer
referencia a objetos de una clase que puedan tomar
comportamientos de objetos descendientes de esta.

con el polimorfismo usamos la generalización olvidando los detalles concretos de


los objetos para centrarnos en un punto en común mediante una clase padre.

Tomando como ejemplo la imagen anterior, podemos decir que un objeto de la


clase FiguraGeometrica puede usarse para referirse a cualquier objeto de
cualquier subClase de FiguraGeometrica.............. en otras palabras una figura
geométrica puede ser un cuadro, un triángulo, un cuadrado o cualquier figura que
en términos generales sea geométrica...... (Ejemplo1) (Ejemplo2)

Veamos este proceso como se representa en Java.

1 class FiguraGeometrica{
2
3 }
4
5 class Cuadrado extends FiguraGeometrica {
6
7 }
8
9 class Triangulo extends FiguraGeometrica {
10
11 }
12
13 class Circulo extends FiguraGeometrica{
14
15 }
16
17 public class Principal{
18
19 public void metodo(){
20 /**Puedo crear objetos concretos*/
21 FiguraGeometrica miFiguraGeometrica = new FiguraGeometrica();
22 Cuadrado miCuadro=new Cuadrado();
23
24 /**Puedo crear objetos polimorficos*/
25 miFiguraGeometrica=miCuadro;
26
27 /**Objeto Cuadrado de tipo FiguraGeometrica*/
28 FiguraGeometrica miCuadrado= new Cuadrado();
29 /**Objeto Circulo de tipo FiguraGeometrica*/
30 FiguraGeometrica miCirculo=new Circulo();
31 /**Objeto Triangulo de tipo FiguraGeometrica*/
32 FiguraGeometrica miTriangulo=new Triangulo();
33 }
34 }

Como vemos en el ejemplo la clase FiguraGeometrica puede convertirse en


cualquier figura que se encuentra en su jerarquía de Herencia pudiendo utilizar las
propiedades que compartan entre ellas, hay que tener presente que solo se permite
el polimorfismo de clases padre a clases hija mas no al contrario, mas adelante
explicaremos este concepto en detalle...

Hasta aquí vimos algunos de los principales conceptos de la programación


Orientada a Objetos, en futuras entradas trabajaremos otros ejemplos y
aplicaciones, ya que cada concepto posee sus restricciones con respecto al proceso
de desarrollo.

También te podría Interesar.


Herencia en Java.
¿ String Vrs StringBuffer Vrs StringBuilder ?
Comparando Fechas En Java
Tutorial Aplicaciones Web con Jboss Seam
Despliegue de Aplicación Web Con Ant
Instalación del servidor de aplicaciones JBoss
Trabajando con SVN desde Eclipse

¿Hay algo que quieras anexar o comentar sobre esta entrada? no dudes en
hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando
al botón "Participar en este sitio" para darte cuenta de mas entradas como
esta ;)

Publicado por Cristian Henao

Etiquetas: Abstract, Clase, Encapsulación, Herencia, Interface, java, Objeto, Polimorfismo, POO,
Programación Orientada a Objetos

46 comentarios:

Anónimo 19 de agosto de 2013, 19:03


Te felicito por tu blog , excelentemente explicado...

Ricardo
Venezuela
Responder

Respuestas

Cristian David Henao Hoyos 20 de agosto de 2013, 4:23


Esa es la Idea hacer facil lo dificil ;)

Responder

Anónimo 16 de septiembre de 2013, 0:19


GRACIAS

También podría gustarte