Escolar Documentos
Profissional Documentos
Cultura Documentos
Programacion
Orientada a Objetos
Conceptos bsicos de la
tecnologa de objetos
Comenzaremos nuestra introduccin al tema de la orientacin
a objetos con cierta terminologa clave.
En cualquier parte del mundo real puede ver objetos: gente,
animales, plantas, automviles, aviones, edicios,
computadoras, etctera.
Los humanos pensamos en trminos de objetos. Los
telfonos, casas, semforos, hornos de microondas y
enfriadores de agua son slo unos cuantos objetos ms.
Los programas de cmputo, como los programas de que
escribamos, estn compuestos por muchos objetos de
software con capacidad de interaccin.
2
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
En ocasiones dividimos a los objetos en dos categoras:
animados e inanimados.
Los objetos animados estn vivos en cierto sentido; se
mueven a su alrededor y hacen cosas.
Por otro lado, los objetos inanimados no se mueven por su
propia cuenta. Sin embargo, los objetos de ambos tipos tienen
ciertas cosas en comn.
Todos ellos tienen atributos (como tamao, forma, color y
peso), y todos exhiben comportamientos (por ejemplo, una
pelota rueda, rebota, se in a y desina; un beb llora,
duerme, gatea, camina y parpadea; un automvil acelera,
frena y da vuelta; una toalla absorbe agua).
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
Estudiaremos los tipos de atributos y comportamientos que
tienen los objetos de software.
Los humanos aprenden acerca de los objetos existentes
estudiando sus atributos y observando sus comportamientos.
Distintos objetos pueden tener atributos similares y pueden
exhibir comportamientos similares.
Por ejemplo, pueden hacerse comparaciones entre los bebs y
los adultos, y entre los humanos y los chimpancs.
4
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
El diseo orientado a objetos (DOO) modela el software en trminos
similares a los que utilizan las personas para describir objetos del
mundo real.
Este diseo aprovecha las relaciones entre las clases, en donde los
objetos de cierta clase (como una clase de vehculos) tienen las
mismas caractersticas; los automviles, camiones, pequeos
vagones rojos y patines tienen mucho en comn.
El DOO tambin aprovecha las relaciones de herencia, en donde las
nuevas clases de objetos se derivan absorbiendo las caractersticas
de las clases existentes y agregando sus propias caractersticas
nicas.
Un objeto de la clase convertible ciertamente tiene las
caractersticas de la clase ms general automvil pero, de manera
ms especca, el techo de un convertible puede ponerse y quitarse.
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
El diseo orientado a objetos proporciona una manera natural
e intuitiva de ver el proceso de diseo de software: a saber,
modelando los objetos por sus atributos y comportamientos,
de igual forma que como describimos los objetos del mundo
real.
El DOO tambin modela la comunicacin entre los objetos.
As como las personas se envan mensajes unas a otras (por
ejemplo, un sargento ordenando a un soldado que
permanezca rme), los objetos tambin se comunican
mediante mensajes.
Un objeto cuenta de banco puede recibir un mensaje para
reducir su saldo por cierta cantidad, debido a que el cliente ha
retirado esa cantidad de dinero.
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
El DOO encapsula (es decir, envuelve) los atributos y las
operaciones (comportamientos) en los objetos; los atributos y
las operaciones de un objeto se enlazan ntimamente entre s.
Los objetos tienen la propiedad de ocultamiento de
informacin. Esto signi ca que los objetos pueden saber
cmo comunicarse entre s a travs de interfaces bien de
nidas, pero por lo general no se les permite saber cmo se
implementan otros objetos; los detalles de la implementacin
se ocultan dentro de los mismos objetos.
7
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
Por ejemplo, podemos conducir un automvil con efectividad,
sin necesidad de saber los detalles acerca de cmo funcionan
internamente los motores, las transmisiones y los sistemas de
escape; siempre y cuando sepamos cmo usar el pedal del
acelerador, el pedal del freno, el volante, etctera. Ms
adelante veremos por qu el ocultamiento de informacin es
tan imprescindible para la buena ingeniera de software.
8
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
Los lenguajes como Java son orientados a objetos.
La programacin en dichos lenguajes se llama programacin
orientada a objetos (POO), y permite a los programadores de
computadoras implementar un diseo orientado a objetos como un
sistema funcional.
Por otra parte, los lenguajes como C son por procedimientos, de
manera que la programacin tiende a ser orientada a la accin. En C,
la unidad de programacin es la funcin.
Los grupos de acciones que realizan cierta tarea comn se forman
en funciones, y las funciones se agrupan para formar programas. En
Java, la unidad de programacin es la clase a partir de la cual se
instancian (crean) los objetos en un momento dado.
Las clases en Java contienen mtodos (que implementan
operaciones y son similares a las funciones en C) y campos (que
implementan atributos).
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
Los programadores de Java se concentran en crear clases. Cada clase
contiene campos, adems del conjunto de mtodos que manipulan
esos campos y proporcionan servicios a clientes (es decir, otras
clases que utilizan esa clase).
El programador utiliza las clases existentes como bloques de
construccin para crear nuevas clases.
Las clases son para los objetos lo que los planos de construccin,
para las casas. As como podemos construir muchas casas a partir de
un plano, podemos instanciar (crear) muchos objetos a partir de una
clase.
Las clases pueden tener relaciones con otras clases. Por ejemplo, en
un diseo orientado a objetos de un banco, la clase cajero necesita
relacionarse con las clases cliente, cajn de efectivo, bveda,
etctera. A estas relaciones se les llama asociaciones.
@juanitourquiza
10
Conceptos bsicos de la
tecnologa de objetos
Al empaquetar el software en forma de clases, los sistemas de
software posteriores pueden reutilizar esas clases.
Los grupos de clases relacionadas se empaquetan
comnmente como componentes reutilizables.
La reutilizacin de cdigo es un proceso que ahorra tiempo y
esfuerzo; tambin ayuda a los programadores a crear sistemas
ms conables y efectivos, ya que las clases y componentes
existentes a menudo han pasado por un proceso extenso de
prueba, depuracin y optimizacin del rendimiento.
11
@juanitourquiza
Conceptos bsicos de la
tecnologa de objetos
Al empaquetar el software en forma de clases, los sistemas de
software posteriores pueden reutilizar esas clases.
Los grupos de clases relacionadas se empaquetan
comnmente como componentes reutilizables.
Clases,
objetos,es
mtodos
y variables
La reutilizacin
de cdigo
un proceso
quedeahorra tiempo y
instancia
esfuerzo; tambin
ayuda a los programadores a crear sistemas
ms conables y efectivos, ya que las clases y componentes
existentes a menudo han pasado por un proceso extenso de
prueba, depuracin y optimizacin del rendimiento.
12
@juanitourquiza
13
@juanitourquiza
@juanitourquiza
Ejercicio Practico
14
@juanitourquiza
15
Clase Persona
class Persona {
String nombre,apellido;
int edad;
//constructor de la clase persona que recibe por parametro el nombre apellido y edad
public Persona(String nombre, String apellido, int edad) {
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
}
//metodos que sirvan para obtener y poner los datos de la persona
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
@juanitourquiza
16
@juanitourquiza
Qu es Java EE7?
17
@juanitourquiza
Qu es Weld CDI?
18
@juanitourquiza
Qu es Weld CDI?
19
@juanitourquiza
20
@juanitourquiza
21
Facilidad de configuracin
Se elimina la mayor parte del cdigo repetitivo y la
configuracin de XML a partir de sus aplicaciones y mayor uso
de anotaciones
Soporte a aplicaciones Web con estado
Weld ha sido diseado para aplicaciones Web con estado,
incorpora el concepto de conversacin contextual
@juanitourquiza
22
@juanitourquiza
23
@juanitourquiza
24
@juanitourquiza
Caractersticas: CDI
25
@juanitourquiza
26
@juanitourquiza
27
@juanitourquiza
Caractersticas: ORM y
Persistencia
28
@juanitourquiza
Caractersticas: MVC
29
@juanitourquiza
Caractersticas: MVC
30
@juanitourquiza
31
@juanitourquiza
32
@juanitourquiza
33
@juanitourquiza
@juanitourquiza
35
@juanitourquiza
36
JBoss es un servidor de aplicaciones Java EE de cdigo abierto implementado en Java puro. Al estar basado en Java, JBoss
puede ser utilizado en cualquier sistema operativo para el que est disponible la mquina virtual de Java. JBoss Inc., empresa
fundada por Marc Fleury y que desarroll inicialmente JBoss, fue adquirida por Red Hat en abril del 2006.
El proyecto se nutre de una red mundial de colaboradores. Los ingresos de la empresa estn basados en un modelo de
negocio de servicios. JBoss implementa todo el paquete de servicios de J2EE.
Las Enterprise JavaBeans (tambin conocidas por sus siglas EJB) son una de las interfaces de programacin de
aplicaciones (API) que forman parte del estndar de construccin de aplicaciones empresarialesJ2EE (ahora JEE) de Oracle
Corporation (inicialmente desarrollado por Sun Microsystems).
@juanitourquiza
JavaServer Faces (JSF) es una tecnologa y framework para aplicaciones Java basadas en web que simplifica el
desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnologa que
permite hacer el despliegue de las pginas, pero tambin se puede acomodar a otras tecnologas
como XUL (acrnimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario)
37
@juanitourquiza
38
@juanitourquiza
39
@juanitourquiza
40
@juanitourquiza
41
@juanitourquiza
42
@juanitourquiza
43
Portabilidad
Las aplicaciones se ejecutan en el Servidor de Aplicaciones JBoss
Wildfly, o bien en JBoss Enterprise Application Platform (JBoss
EAP) y en otros servidores de aplicaciones Java EE, tales como
Glassfish etc., as como tambin en Apache Tomcat.
@juanitourquiza
44
@juanitourquiza
45
@juanitourquiza
46
@juanitourquiza
47
@juanitourquiza
48
@juanitourquiza
49
@juanitourquiza
50
@juanitourquiza
51
@juanitourquiza
Arquitectura
52
@juanitourquiza
Arquitectura
53
Arquitectura
@juanitourquiza
54
@juanitourquiza
55
Software Necesario
Antes de comenzar necesitaremos descargar e instalar las
siguientes aplicaciones en nuestro equipo.
Java Platform (JDK) versin 7.0, 8.0 o superior
(http://www.oracle.com/technetwork/java/javase/downloads
/index.html)
Eclipse como Entorno de desarrollo integrado
(http://www.eclipse.org/downloads/)
JBoss Tools (http://www.jboss.org/tools)
WildFly (Servidor de Aplicaciones de JBoss)
(http://wildfly.org/downloads/)
@juanitourquiza
Instalacin y Configuraciones
56
@juanitourquiza
Instalacin y Configuraciones
57
@juanitourquiza
58
@juanitourquiza
Instalacin y Configuraciones
59
@juanitourquiza
Instalacin y Configuraciones
60
Instalacin Java
Instalamos JDK con
las configuraciones
por defecto.
Haga doble clic jdk-8windows-x64.exe
(para Windows) para
ejecutar la
instalacin.
Tambin se debe
instalar el JRE.
@juanitourquiza
Instalacin y Configuraciones
61
@juanitourquiza
Descargar y descomprimir
Eclipse IDE
62
@juanitourquiza
Descargar Eclipse
63
@juanitourquiza
Instalacin Eclipse
64
Ejecute el archivo
ejecutable haciendo
doble clic en l:
<Eclipse_Directorio_D
escomprimido>/eclips
e/eclipse.exe (para
Windows) o
<Eclipse_Directorio_D
escomprimido>eclipse
/eclipse.sh (para
Linux/Mac OS).
@juanitourquiza
Instalacin Eclipse
65
@juanitourquiza
Instalacin Eclipse
66
Finalmente hacemos
un clic en
Workbench, para
comenzar a usarlo:
@juanitourquiza
Instalacin Eclipse
67
@juanitourquiza
68
@juanitourquiza
69
@juanitourquiza
Iniciando Eclipse
70
@juanitourquiza
71
@juanitourquiza
Eclipse
72
@juanitourquiza
Instalacin workspace
73
@juanitourquiza
74
@juanitourquiza
75
@juanitourquiza
JB Tools
76
@juanitourquiza
Instalacin JB Tools
77
@juanitourquiza
Instalacin JB Tools
78
@juanitourquiza
Instalacin JB Tools
79
@juanitourquiza
Instalacin JB Tools
80
@juanitourquiza
Instalacin JB Tools
81
Despus de descargar y
obtener todos los
componentes y plugins,
es posible que aparezca
un mensaje de
advertencia indicando
que hay libreras (jar) sin
firmar. No dar
importancia ya que es
normal, simplemente
aceptar la advertencia y
continuar.
@juanitourquiza
Instalacin JB Tools
82
Al finalizar la
instalacin aparecer
una ventana para
reiniciar el IDE, apara
que tengan efectos
los nuevos
componentes
instalados.
@juanitourquiza
Instalacin JB Tools
83
Descargar e instalar
Servidor de
Aplicaciones JBoss
Wildfly
Descargar Servidor
wildfly usando un
browser, ir a la
pgina oficial.
Click en la pestaa
Downloads
@juanitourquiza
Instalar Widfly
84
Descargar la ltima
versin Final.
Descargar la ltima
versin para Java
EE7 Full & Web
Distribution.
@juanitourquiza
Instalar Widfly
85
@juanitourquiza
Instalar Widfly
86
Luego necesitamos
revisar que este todo
configurado en el
Eclipse respecto al
JRE con el JDK que
tengamos instalado
en nuestro equipo,
como se muestra a
continuacin.
Abrir Preferences
@juanitourquiza
Configurando el JDK en
Eclipse
87
@juanitourquiza
Configurando el JDK en
Eclipse
88
@juanitourquiza
Configurando el JDK en
Eclipse
89
@juanitourquiza
Configurando el JDK en
Eclipse
90
@juanitourquiza
Configurando el JDK en
Eclipse
91
@juanitourquiza
Configurando el Servidor de
Aplicaciones JBoss Wildfly
en Eclipse
92
Luego seleccionamos el
servidor de aplicaciones
de ejecucin (Define a
New Server)
Expandimos en JBoss
Community
Seleccionamos la
versin Wildfly 8.x
Runtime
(correspondiente a la
descarga)
Clic Next >
@juanitourquiza
Configurando el Servidor de
Aplicaciones JBoss Wildfly
en Eclipse
93
@juanitourquiza
Configurando el Servidor de
Aplicaciones JBoss Wildfly
en Eclipse
94
@juanitourquiza
Configurando el Servidor de
Aplicaciones JBoss Wildfly
en Eclipse
95
@juanitourquiza
Configurando el Servidor de
Aplicaciones JBoss Wildfly
en Eclipse
96
@juanitourquiza
Resumen
97