Anda di halaman 1dari 49

CURSO: LENGUAJE

DE PROGRAMACIN
ORIENTADO A
OBJETOS

Qu es Java?

Un poco de Historia

En 1991, James Gosling cre un


lenguaje denominado Oak (roble) el
cual fue el predecesor de Java.
Su objetivo
era
establecer
un
lenguaje comn para los dispositivos
electrodomticos.
Se bas en C++ tratando de sacarle la
complejidad y la inseguridad que
presentaba.
Internet es una gran Red Mundial que
conecta mltiples ordenadores con
diferentes
sistemas
operativos
y
diferentes
arquitecturas
de
microprocesadores.
Entonces se rediseo el lenguaje para
desarrollar aplicaciones (applets) para

Tecnologa JAVA

Java como lenguaje de programacin


Veremos
que
existen
diferentes
lenguajes para escribir (programar)
aplicaciones. Unos son lenguajes
compilados y otros interpretados.
Java es un lenguaje interpretado

Cdigo compilado (I)

Hasta los 2000 la mayora de las aplicaciones se hacan con


lenguajes compilados. El ingeniero deba:

Crear el cdigo fuente (archivos con extensin .c, .cpp, etc)


Por medio de programas compiladores y enlazadores (link) crear el
cdigo ejecutable (archivos con extensin .com y .exe)
Cdigo fuente

Compilador/enlazador

Cdigo ejecutable

El cdigo ejecutable es dependiente del sistema


operativo. Para cada sistema hay un compilador
Si se quiere ejecutar en otro sistema operativo (SO) hay
que recompilar el cdigo fuente
Cdigo fuente

Compilador/enlazador
de S.O. X

Cdigo ejecutable para

Compilador/enlazador
de S.O. Y

Cdigo ejecutable para

el S.O.

el S.O.

X
Y

Cdigo compilado (II)

El programa resultante es ejecutado directamente desde el


sistema operativo
Al resultado final tambin se denomina cdigo mquina, es
decir, cdigo dependiente del sistema en el que se ejecuta
Es una solucin dependiente, pero muy eficiente

Cdigo interpretado (I)

El cdigo interpretado no es ejecutado


directamente por el sistema operativo.
Necesita un interprete para ser ejecutado
Cada sistema tiene su propio interprete
Cdigo fuente

Compilador

Programa ejecutado

Cdigo interpretable

Interprete

Ventaja: el cdigo interpretado no debe ser


modificado, ni recompilado cuando cambiamos
de sistema operativo. Cada sistema tiene su
propio interprete
Inconveniente: es menos eficiente que el cdigo
ejecutado

Java: cdigo interpretado

En muchos lenguajes (Cobol, C++, etc.) el programador crea un


programa (.exe) ejecutable por el sistema operativo.
En Java el cdigo fuente se escribe en archivos con extensin
.java
El compilador (javac) no genera un programa (.exe) ejecutable
directamente por el sistema operativo. Genera cdigo
interpretable, un archivo .class (byte code)
El archivo .class es ejecutado por el interprete, tambin
denominado MVJ (mquina virtual Java)
Tambin existen en Java compiladores que generan cdigo
ejecutable (.exe) a partir del byte code. Esto mejora la
eficiencia pero no es portable

Interpretes y portabilidad
Lenguajes
interpretados
Lenguajes
compilados

Nivel
ejecucin

Ejecutable
Windows

Ejecutable
Unix

C, C++

Ejecutable
Mac

Cada compilador es dependiente


del sistema operativo (SO): genera
un programa ejecutable (.exe) para
un SO. Si se quiere ejecutar en otro
SO, hay que usar su copilador
correspondiente

Intrprete
Windows

Cdigo
Java

Cdigo
nico a
interpretar

Java
Bytecodes

Intrprete
Unix

Intrprete
Mac

El compilador no es dependiente del


SO: genera byte codes (.class) que
puede ser interpretado por cada uno
de los interpretes del SO
correspondiente

Java Development Kit (JDK)


Java Runtime Environment (JRE)

El JRE es un paquete de software desarrollado por


Sun que contiene la JVM y todo lo necesario para
ejecutar programas Java + apis de java

El JDK es otro paquete que incluye todo lo


necesario para crear y ejecutar programas Java
(incluye el JRE, compilador, paquete de desarrollo
de aplicaciones java).

Puede descargar las ltimas versiones en


www.sun.com

Desarrollo y ejecucin de un Programa Java

Cdigo Fuente
(Archivo.java)

Compilador
(javac)

Archivo compilado
Bytecode
(Archivo.class)

JVM
(java)
Programa
en ejecucin

Qu ventajas tengo
como desarrollador?

Comenzar rpidamente.
Escribir menos cdigo, 4 veces menos que
en C++.
Desarrollar programas ms rpidamente.
Eliminar dependencias de la plataforma.
Escribir una vez, ejecutar en cualquier parte.

Java est en Todas Partes


Printers

Game Consoles

TVs

Robots

PDAs

Webcams
Consumer ElectronicsCash Registers

Medical Equipment
Telescopes

STBs
Lottery Terminals

Java Exitos en las Empresas

IDEs de desarrollo :

Mostrar informacin
La regla : ESCRIBIR
El smbolo :

En seudocdigo

En diagrama de flujo

La sentencia : cout

En C++

La clase : System

En Java

Variables

Numero, Carcter, Texto, Logico

Tipo de dato :
Identificador :
Valor :

Estructura de datos de entrada

BufferedReader leer = new BufferedReader(new


InputStreamReader(System.in));

Fundamentos de la Programacin
Orientada a Objetos
1.Antecedentes de la POO

La programacin orientada a objetos(POO) es


una forma especial de programar, mas cercana
a como expresaramos las cosas en la vida real,
que otros tipos de programacin.
Durante aos, los programadores se han
dedicado
a
construir
aplicaciones
muy
parecidas que resolvan una y otra vez los
mismos problemas. Para conseguir que los
esfuerzos de los programadores puedan ser
utilizados por otras personas se cre la POO, la
cual usa una serie de normas y estndares para
cumplir este objetivo.

Programacin Estructurada Vs. POO


El desarrollo de la POO empieza a destacar
durante la dcada de los 80 tomando en cuenta
la programacin estructurada, a la que engloba
y dota de nuevos elementos para el diseo y
desarrollo de software.
La POO permite a los programadores desarrollar
software, de forma que est organizado en la
misma manera como el problema que se trata
de modelizar (Analizar).
La
Programacin
Estructurada
es
una
programacin de diseo Arriba-Abajo(TopDown), donde las instrucciones del programa se
van
ejecutando
una
detrs
de
otra

Que
permita
expresarlos
procedimientos y funciones

mediante

En cambio, la POO estructura los datos en


objetos que pueden que pueden almacenar,
manipular, y combinar informacin de modo
analtico, lgico y funcional.
En la actualidad, la POO es un estndar de
programacin utilizado por una gran mayora de
programadores y las distintas herramientas de
anlisis y diseo de sistemas utilizado por los
profesionales en informtica. Por otro lado, los
lenguajes de programacin de la actualidad son
orientados a objetos(Entre los que podemos
citar estn: Java, Microsoft Visual Studio.Net).

Ventajas de POO
a) Uniformidad.- Ya que la representacin de
los objetos que lleva, implica tanto el anlisis
como el diseo y la codificacin de los mismos.
Esto quiere decir que nos permite una mejor
integracin entre las diferentes etapas del
desarrollo de un proyecto informtico.
b) Flexibilidad.Al tener relacionado los
procedimientos que manipulan los datos con los
datos a tratar, cualquier cambio que se realice
sobre ellos quedar reflejado automticamente
en cualquier lugar donde estos aparezcan.

c) Reusabilidad.- De esta forma, el desarrollo


de un programa puede llegar a ser una simple
combinacin de objetos ya definidos donde
estos estn relacionados de una manera
particular.
Con la POO tenemos que aprender a pensar las
cosas de una manera distinta, para escribir
nuestros programas en trminos de objetos,
propiedades, mtodos.

Bases sobre las cuales se fundamenta la


programacin orientada a objetos.
Los elementos ms importantes que deben
tener los objetos de software, para cumplir
con el paradigma de orientacin a objetos
son:
Abstraccin.

Modularidad.

Jerarqua.

Encapsulamie
nto.

Polimorfismo.

Abstraccin

La abstraccin es el proceso en el cual separamos las


propiedades ms importantes de un objeto, de las que
no lo son. Es decir, por medio de la abstraccin
definimos las caractersticas esenciales de un objeto
del mundo real, los atributos y comportamientos que lo
definen
tal, para
modelarlo
objeto
En el como
proceso
dedespus
abstraccin
noen un
debemos
de
software. por la implementacin de cada mtodo o
preocuparnos
atributo, solamente debemos definirlo de forma
general. Por ejemplo, supongamos que deseamos
escribir un programa para representar el sistema solar,
por medio de la abstraccin, podemos ver a ste
sistema como un conjunto de objetos, algunos de estos
objetos son los planetas, que tienen un estado, dado
por sus caractersticas fsicas, digamos, tamao, masa,
entre
otras,
estos
objetos
tendrn
tambin
comportamientos : la translacin y la rotacin, pueden

Visualizar las entidades que deseamos trasladar a


nuestros programas, en trminos abstractos, resulta
de gran utilidad para un diseo optimo de nuestro
software, ya que nos permite comprender ms
fcilmente la programacin requerida.
En la tecnologa orientada a objetos la herramienta
principal para soportar la abstraccin es la clase.
Podemos definir a una clase como una descripcin
genrica de un grupo de objetos que comparten
caractersticas comunes, dichas caractersticas se
especificadas en sus atributos y comportamientos. En
otras palabras, una clase es un molde o modelo en
donde se especifican
las caractersticas que definen a un objeto de manera
general, a partir de una clase podemos definir
objetos particulares. En programacin orientada a

Un ejemplo servir para clarificar estos conceptos.


Definamos a la clase persona, esta clase tendr
ciertos atributos, por ejemplo edad, sexo y nombre
entre otros. Las acciones o comportamientos que
podemos definir para esta clase son, por ejemplo,
respirar, caminar, comer, etc. Estas son, para
nuestro caso, las caractersticas que definen a
nuestra clase
persona. Un objeto instanciado de est clase
podra ser Juan Prez, de sexo masculino y de 35
aos de edad, quin se encuentra caminando.
Estos atributos son conocidos formalmente en
programacin orientada a objetos como variables
de instancia por que contienen el estado de un
objeto particular en un momento dado, en este
caso Juan Prez. As mismo, los comportamientos

Hay que tener cuidado de no confundir un


objeto con una clase, una gelatina de fresa y
una gelatina de limn son objetos de la
misma clase (o del. mismo molde), pero con
atributos (o sabores) diferentes.

Modularidad
Dentro de la programacin orientada a objetos, la
modularidad juega un papel muy importante. Una
vez que hemos representado una situacin del
mundo
real
en
un
programa,
tenemos
regularmente como resultado, un conjunto de
objetos de software que constituyen la aplicacin.
La modularidad, nos permite poder modificar las
caractersticas de la clase que definen a un objeto,
de forma independiente de las dems clases en la
aplicacin. En otras palabras, si nuestra aplicacin
puede
dividirse
en
mdulos
separados,
normalmente clases, y estos mdulos pueden
compilarse y modificarse sin afectar a los dems,
entonces dicha aplicacin ha sido implementada

Encapsulamiento.
Tambin referido como ocultamiento de la
informacin, el encapsulamiento es la propiedad de
la orientacin a objetos que nos permite asegurar
que la informacin de un objeto le es desconocida a
los dems objetos en la aplicacin. Es muy
frecuente referirse a los objetos de software como
cajas negras, esto se debe principalmente a que no
necesitamos, dentro de la
programacin orientada a objetos, saber como esta
instrumentado un objeto para que este interacte
con los dems objetos.

Generalmente una clase se define en dos partes,


una interfaz por medio de la cual los objetos que
son instanciados de la misma interactan con los
dems
objetos
en
la
aplicacin,
y
la
implementacin de los miembros de dicha clase
(mtodos y atributos). Retomando dos de los
ejemplos anteriores, supongamos que deseamos
realizar una aplicacin en donde deben interactuar
el objeto Mercedes Benz, instancia de la clase
automvil y el objeto Juan Prez, instancia de la
clase Persona. Ambos objetos pueden ser vistos
como cajas negras las cuales se comunican por
medio de una interfaz. El objeto Mercedes no sabe
como esta implementado el objeto Juan Prez y
viceversa. Concretamente, el encapsulamiento

Una aplicacin orientada a objetos esta constituida,


como mencionamos anteriormente, por mdulos.
Estos mdulos se implementan mediante clases,
las
cuales
representan,
generalmente,
abstracciones de objetos del mundo real. Es por
medio del encapsulamiento que podemos definir
los atributos y los mtodos de una clase para que
los objetos que se instancian de sta trabajen
como unidades independientes de los dems
objetos con los que interactan. En otras palabras,
con el encapsulamiento ganamos modularidad, y
adems protegemos a los objetos de ser
manipulados de forma inadecuada por objetos
externos.

Jerarqua
Una vez que hemos definido una clase, por
ejemplo la clase bicicleta, con sus atributos y
mtodos, tal vez necesitemos definir una nueva
clase especfica para las bicicletas de carreras.
Es obvio que sta nueva clases compartir
elementos en comn con la clase bicicleta, es
decir, la clase bicicleta de carreras ser un
subconjunto de la clase bicicleta.

La tecnologa orientada a objetos nos permite


definir jerarquas entre clases y jerarquas entre
objetos. Las dos jerarquas ms importantes que
existen son la jerarqua es un que precisa la
generalizacin y especificacin entre clases y la
jerarqua es parte de en la cual se delimita la
agregacin de objetos.
Comnmente, a la jerarqua es un se le conoce
como herencia. La herencia simple es la propiedad
que nos permite definir una clase nueva en trminos
de una clase ya existente. Regresando al ejemplo, si
podemos decir que una bicicleta de carreras es
una bicicleta, entonces podemos definir a la clase
bicicleta de carreras a partir de la clase bicicleta.
Existirn casos en los cuales se necesite definir una

En cuanto a la jerarqua de agregacin, tambin


conocida como inclusin, podemos decir que se
trata del agrupamiento lgico de objetos
relacionados entre si dentro de una clase.
Supongamos que tenemos que definir a la clase
automvil, pero adems hemos definido ya a la
clase volante. Si podemos expresar la oracin, un
volante es parte de un automvil, entonces
podemos instanciar un objeto de la clase volante,
para definir a la clase automvil. En este caso, se
dice que automvil es una agregacin y volante es
un agregado de automvil.

Polimorfismo
Muchas veces es necesario que un mismo
comportamiento o accin se realice de diferentes
maneras, por ejemplo, supongamos que deseamos
implementar a la clase mamferos, supongamos
tambin que uno de los mtodos que deseamos
implementar para esta clase, es el que permita a tales
mamferos desplazarse de forma natural. Nos
encontraremos entonces con que para algunos
mamferos el desplazamiento se realizar por medio
de caminar, como es en el caso de las personas, para
otros el desplazamiento natural ser nadar, como en
el caso de los delfines e inclusive para otros, el
desplazamiento se lograr por medio de volar, como
sucede con los murcilagos. En otras palabras, un
mismo
comportamiento,
en
este
caso
el

Dentro de la programacin orientada a objetos


puede modelarse esta situacin del mundo real, en
objetos de software, gracias al polimorfismo. El
polimorfismo es la propiedad por la cual una
entidad
puede
tomar
diferentes
formas.
Generalmente est entidad es una clase, y la forma
en que se consigue que tome diferentes formas es
por medio de nombrar a los mtodos de dicha
clase con un mismo nombre pero con diferentes
implementaciones.

2. Conceptos bsicos de POO


a.- Clase
La clase es una plantilla o patrn a partir del cual
se crean muchos objetos similares, tambin se
podra definir una clase como la agrupacin de
objetos que poseen caractersticas comunes

b.- Propiedades de la clase


Las propiedades o atributos son las caractersticas
descriptivas de la clase. Cuando definimos una
propiedad especificamos su nombre y su tipo de
dato.
Ejemplos:

Propiedades de la Clase Alumno:


Apellidos (Tipo de Dato String)
Nombres (Tipo de Dato String)
Edad
(Tipo de Dato int)
Talla
(Tipo de Dato double)

c.- Mtodos de la clase


Son las funcionalidades, acciones o habilidades de
una clase. Los mtodos son funciones que estn
asociadas a un objeto. Los mtodos responde a la
pregunta:Qu es lo que es capaz de hacer la
clase?
Ejemplos:

Mtodos de la Clase Alumno:


Estudiar()
Hablar()
decirSuEdad()
Mtodos de la Clase Calculadora:
Sumar(4,5)
Restar(3,2)
Multiplicar(4,3)
Dividir(4,5)
Nota:
Algunos mtodos reciben entre los parntesis:
dato, los cuales sirven al mtodo para realizar su
tarea. Estos datos son conocidos como argumentos
del mtodo.

d.- Objeto Instanciado


Los objetos instanciado son ejemplares resultantes
de una clase. Cuando creamos un ejemplar tenemos
que especificar la clase a partir de la cual se crear.
Esta accin de crear un objeto a partir de una clase
se llama instanciar
(Que viene de una mala
traduccin de la palabra instance que en ingles
significa ejemplar).
Por ejemplo, un objeto instanciado de la clase
fraccin es por ejemplo 3/5.
Todo objeto instanciado hereda automticamente
las propiedades y mtodo de su clase base.

e.- Estado de un objeto


Cuando tenemos un objeto sus propiedades toman
valores. Por ejemplo, cuando tenemos una fraccin
la propiedad numerador tomar
un valor en
concreto,
como por ejemplo 1 y la propiedad
denominador puede tomar el valor de 3. A estos
valores se llama estados de un objeto.
Para acceder a un estado de un objeto, para ver su
valor o cambiarlo se utiliza el operador punto.
Ejemplo:
objFraccion.numerador=2
objFraccion.numerador=25

Actividad
Investigar los siguientes temas:
Definicin de una clase en java
Modificadores de clase
Representacin UML de una clase
Declaracin de objetos
Modificadores de acceso en Mtodos y
Atributos de una clase.
Sobrecarga de Mtodos
Constructores y destructores

Ejemplos:
Se desea calcular el sueldo de un empleado,
teniendo su nombre, apellido, horas trabajadas,
costo por hora de 5 dlares y bajo las siguientes
condiciones:
Horas trabajadas<=40 no tiene bonificacin
Horas Trabajadas<=50, 20% de bonificacin
Horas trabajadas<=60, 30% de bonificacin
Horas trabajadas >=60, 40%
Nadie puede ganar menos de 100 y mas de 400
dlares.

Empleado
-Nombre
-Apellido
-HorasTrabajadas
-Sueldo
+EstablecerNombre()
+EstablecerApellido()
+EstablecerHorasTrabajad
as()
+DevolverNombre()
+DevolverApellido()
+DevolverHorasTrabajada
s()
+CalcularSueldo()

Ejercicio:
1.-Cree una aplicacin visual en Java basado en POO
que cambie una cantidad de dlares a soles y
muestre el tipo de cambio resultante.
2.- Cree una aplicacin visual en Java basado en
POO que calcule el descuento por faltas de un
trabajador, si se sabe que por cada inasistencia la
empresa descuenta el doble del salario de un da,
finalmente muestre el descuento y el neto a
percibir.

Anda mungkin juga menyukai