Está en la página 1de 9

Introduccin a la Programacin IPF1501

DuocUC

Unidad I Clase N 1

Qu es Java?
No es solo un lenguaje de programacin, si no que una PLATAFORMA para el
desarrollo de aplicaciones.
Es completamente orientado a objetos (OO). Usa una sintaxis conocida, tomando
sus estructuras sintcticas del lenguaje C++, adems, omite algunos conceptos
complejos de programacin como el manejo de memoria a bajo nivel (Punteros),
eliminando de raz la fuente de muchos problemas en las aplicaciones, problemas
casi siempre de un muy alto costo de correccin debido a su complejidad.
La plataforma Java se compone de los siguientes elementos:
-

Un lenguaje de programacin orientado a objetos (POO). Su sintaxis es


similar a la de C++.
Un ambiente de desarrollo capaz de transformar un programa en lenguaje
Java en un programa en cdigo Java denominado Java Byte Code. El Byte
Code no corresponde al lenguaje de una mquina en particular, sino que a
un cdigo intermedio independiente de la plataforma en la que se ejecutar
la aplicacin (JDK, refirase Arquitectura Java).
Un ambiente de ejecucin, al que se le denomina Maquina Virtual de Java o
Java Virtual Machine (JVM). En esencia la aplicacin corre sobre la JVM y es
esta es la que se preocupa que conversar con el SO correspondiente. Es la
encargada de implementar las bibliotecas estndares o libreras (JRE,
refirase Arquitectura Java).

La plataforma de Java otorga un ambiente de desarrollo multiplataforma, gracias a


la JVM, en el que las aplicaciones se escriben y prueban en una nica mquina,
para luego migrarlas o transportarlas, sin necesidad de modificaciones, entre
distintos SO (Write once, run anywhere).
La simplicidad de Java
Java es un lenguaje moderno completamente OO, lo que permite a los
programadores hacer un uso en forma natural de las nuevas tcnicas de anlisis y
diseo de aplicaciones. Utilizando la experiencia aprendida de sus predecesores (C
y C++) Java ha eliminado las complejidades que constituyen un riesgo para el
desarrollo de aplicaciones.
- Java no posee aritmtica de punteros, prctica que constituye el origen de
muchos errores de programacin, adems de ser muy difciles de detectar y
corregir.
- Java posee un recolector de basura o Garbage Collector (GC), perteneciente
a la JVM, que tiene la responsabilidad de liberar la memoria reservada por
nuestras aplicaciones que ya no se est utilizando.
- Java puede ser utilizado tanto en celulares, electrodomsticos como en
Internet (Web).
- Permite la realizacin de programas ms grandes y complejos, con equipos
de trabajo ms pequeos y en menos tiempo (No muy cercano a la realidad).

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Tipos de Java
J2SE/JSE Java Standard Edition, orientado al desarrollo de aplicaciones de
escritorio (similares a VB) y, lo ms importante, se utiliza en la creacin de librera
para ser utilizadas en los distintos tipos de Java.
J2EE/JEE Java Enterprise Edition, como su nombre lo dice est orientado al
desarrollo de sistemas empresariales, consta de una serie de normas que
determinan patrones y comportamientos, orientado fuertemente a aplicaciones
Web. Es en este tipo donde aparecen elementos como JSP, Servlet, Applet, EJB,
entre otros.
J2ME/JME Java Micro Edition, orientado al desarrollo de aplicaciones en
dispositivos mviles como celulares, GPS, PALM, PocketPC, etc.

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Historia
Lnea de tiempo
(Fuente: PC Magazine, vol. 17, No. 7, 7 Abril de 1998).

Enero 1991
Java nace como Oak, con el objetivo de permitir el desarrollo de aplicaciones para
electrodomsticos. Uno de los personajes ms relevantes del Green Team es
James Gosling.
Marzo 1993
SUN enfoca Oak hacia un proyecto de televisin interactiva de la Time Warner.
Silicon Graphics se gana la propuesta.
Agosto 1994
Se desecha el proyecto, y se pierde la propuesta.
Julio 1994
Sun orienta el potencial de Oak hacia Internet, donde se requiere correr
aplicaciones en estaciones en las que no se tiene el control sobre su configuracin,
apuntando la tecnologa hacia su actual funcionalidad.
Mayo 1995
Java es oficialmente presentado en la Sun World 1995. Netscape es la primera
empresa en adherirse al ambiente Java. Sun libera una versin alfa de su
navegador de Internet llamado Hot Java.
Diciembre 1995
Symantec libera el primer ambiente de desarrollo Java para Windows 95 y Windows
NT, llamado Symantec Caf, el que tiene un xito inmediato.
Enero 1996
Sun forma JavaSoft, para el desarrollo de productos basados en Java y para
trabajar con otros desarrolladores.
Enero 1996
Sun libera el ambiente de desarrollo Java 1.0 (JDK 1.0). Incluye el Java Applet
View, el compilador de Java y la primera JVM (JRE).
Febrero 1997
Sun libera JDK 1.1, que incluye la especificacin para Java Beans.
Abril 1997
Sun anuncia Personal Java orientado a desarrollar aplicaciones en dispositivos del
hogar y oficina.
JAVA HA VUELTO A SU ORIGEN!

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Arquitectura
La arquitectura de Java consta de dos grandes piezas conocidas bajo las siglas JDK
(Java Development Enviroment) y JRE (Java Runtime Enviroment), quienes tienen
distintas responsabilidades a la hora de compilar y ejecutar un programa Java.
JDK
Es el encargado de proveer las herramientas necesarias para llevar a cabo la
COMPILACIN (Archivo.java) del cdigo fuente Java y transformarlo en Byte Code
(Archivo.class).
Algunos incluyen otras piezas tales como editores de texto sensible y herramientas
de debug (Depuracin, bsqueda de errores), estos ambientes reciben el nombre
de IDE (Integrated Development Enviroment), en este curso utilizaremos BlueJ.
JRE
Es el ambiente que provee las herramientas necesarias para llevar a cabo la
EJECUCIN de un Byte Code. Es donde se encuentra la JVM, adems de un mdulo
conocido como Cargador de Clases y un Intrprete de Java.

Programa
Fuente en
Java (.java)

Cargador de
clases

Intrprete de
Java

Compilador de
Java (JDK)

JRE

JDK
JVM
Programa
Compilado en
Java Byte
Code (.class)

Autor: Prof. Ivn Pez Mora

Sistema Operativo
(SO)

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Programacin Orientada a Objetos


La Programacin Orientada a Objetos (POO u OOP segn sus siglas en ingls) es un
paradigma de programacin que usa objetos y sus interacciones para disear
aplicaciones y programas computacionales. Est basado en varias tcnicas,
incluyendo herencia, abstraccin, polimorfismo, y encapsulamiento. Su uso se
populariz a principios de la dcada de 1990. Actualmente son muchos los
lenguajes de programacin que soportan la orientacin a objetos entre ellos Java.
Conceptos
Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya
conocidos. Entre ellos destacan los siguientes:
Objeto: Entidad provista de un conjunto de propiedades o atributos y de
comportamiento o funcionalidad conocidos como mtodos. Corresponden a los
objetos reales del mundo que nos rodea, o a objetos internos del sistema o
programa. Corresponde a una instancia de una clase.
Clase: Definiciones de las propiedades y comportamientos de un tipo de objeto
concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas.
Propiedad o atributo: Contenedor de un tipo de datos asociados a un objeto (o a
una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se
define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado
por la ejecucin de algn mtodo.
Mtodo: Algoritmo asociado a un objeto (que se define en las clases), cuya
ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de
vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede
producir un cambio en las propiedades del objeto, o la generacin de un "evento"
con un nuevo mensaje para otro objeto del sistema.
Evento: Un suceso en el sistema (tal como una interaccin del usuario con la
mquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como
evento, a la reaccin que puede desencadenar un objeto, es decir la accin que
genera.
Mensaje: Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de
sus mtodos con ciertos parmetros asociados al evento que lo gener.
Estado interno: Es una propiedad invisible de los objetos, que puede ser
nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para
indicar distintas situaciones posibles para el objeto (o clase de objetos).

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Caractersticas
Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de
programacin o lenguaje le definen como "orientado a objetos", pero hay un
consenso general en que las caractersticas siguientes son las ms importantes:
Abstraccin: Es el proceso de generalizacin o agrupamiento de objetos, es decir,
es el proceso en el cual se intenta mirar el modelo de objetos desde un nivel ms
alto buscando un objeto que contenga de forma generalizada a otros.
Por ejemplo, imaginemos que estamos en casa sentados viendo TV de pronto
nuestra atencin se centra en nuestros perros (para este caso de nombre Pillin y
Camila), vamos a aplicar el concepto de abstraccin e intentemos llevar a Pillin y
Camila a un diagrama OO.
Pillin y Camila son objetos (tienen caractersticas distintas, como color, tamao,
etc.) si quisiramos representar a Pillin y Camila en un nivel ms abstracto
deberamos decir que son de la clase Perro, ahora si queremos subir un nivel de
abstraccin ms podramos decir que la clase Perro y la clase Gato (que es una
abstraccin de las mascotas de mi vecino llamados Luna y Estrella) corresponden a
la clase Mamfero y si quisiramos generalizar an ms subiendo otro nivel de
abstraccin podramos decir que la clase Mamfero extiende (extends) de la clase
Animal.

El diagrama quedara as:

Animal

Nivel Abstraccin: 3

Nivel Abstraccin: 2

Reptil

Nivel Abstraccin: 1

Nivel Abstraccin: 0

Autor: Prof. Ivn Pez Mora

Pillin

Ave

Mamfero

Perro

Gato

Camila

Luna

Estrella

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Herencia: Como en la vida real, la herencia es el legado o cualidad que nos dejan
nuestros antecesores o personas mayores (en la mayora de los casos), en Java
sufre una leve modificacin y se dice que es el mecanismo en el cual un Padre
hereda (extends) cualidades a un Hijo y esas cualidades son nada ms que
atributos o mtodos, en otras palabras cdigo Java, por esta razn la herencia se
utiliza para ordenar nuestro esquema de clases y para la reutilizacin de cdigo.
Por ejemplo recordemos el esquema anterior basndonos en la herencia y se podra
traducir de la siguiente manera:
La clase Perro extiende de la clase Mamfero, quien a su vez extiende de la clase
Animal.
Eso quiere decir que todas los atributos y mtodos que tiene implementada la clase
Animal se encuentran, tambin, en la clase Mamfero y que a su vez todas las
propiedades y mtodos de la clase Mamfero se encuentran en la clase Perro.
La clase Perro posee atributos y mtodos de la clase Animal?
R: Si, al hacer herencia se heredan todos los atributos y mtodos inclusive los ya
heredados anteriormente.
La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados de objetos
preexistentes.

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Encapsulamiento: Es el trmino utilizado en la POO que describe la accin en la


cual se definen mtodos y propiedades (como definicin, no sus valores) especificas
de una clase, que las caracteriza en el mundo real. Est ntimamente relacionada
con el Principio de ocultacin de informacin, definiendo que partes estarn ocultas
y cuales visibles.
Por ejemplo, tenemos la clase Ampolleta y vamos a aplicar la encapsulacin para
poder definir su estructura de clase (definir atributos y propiedades, y sus
respectivas visibilidades):
Atributos o valores IMPORTANTES de una Ampolleta
-

Estado (si esta encendida o apagada) (Privado)

Mtodos IMPORTANTES de una Ampolleta


-

Encender
Apagar
Energizar la ampolleta
Desenergizar la ampolleta

(Pblico)
(Pblico)
(Privado)
(Privado)

En relacin a la visibilidad de los atributos, recordemos que los atributos son


variables que contienen datos o valores y en Java SIEMPRE los datos son privados.
A menos que explcitamente te definan lo contrario, el manejo de los valores de los
atributos de Java SIEMPRE debe ser a travs de mtodos de la clase y nunca
directamente utilizando los atributos.
Ahora, en los mtodos encontramos algunos pblicos y otros privados y esto
depende del aislamiento que se quiera tener en los sistemas, solo los mtodos
pblicos podrn ser accesados desde otros objetos, mientras que los mtodos
privados solo se podrn invocar desde la misma clase.
En este caso se declararon dos mtodos pblicos que corresponde al conocimiento
natural de las acciones que realiza una ampolleta Encender y Apagar estos pueden
ser invocados desde otros objetos de nuestra aplicacin, quienes a su vez (y de
forma interna, en la misma clase) invocan a los mtodos privados Energizar y
Desenergizar.

Autor: Prof. Ivn Pez Mora

Marzo 2008

Introduccin a la Programacin IPF1501


DuocUC

Unidad I Clase N 1

Polimorfismo: Se dice que dos objetos son polimrficos cuando poseen una
interfaz comn (generalmente una clase abstracta) pero que al momento de
heredar y sobrescribir los mtodos tienen un comportamiento distinto.
Este trmino es el ms complicado de entender y generalmente se le da menos
importancia, pero es uno de los ms poderosos ya que permite tener una alta
cohesin y un bajo acoplamiento de los modelos de clases.
Por ejemplo, tenemos una clase abstracta llama Figura que tiene un mtodo
implementado llamado Dibujar Contorno, de esta clase extienden dos llamadas
Triangulo y Cuadrado en ambas se sobrescribe el mtodo de la clase padre y se
implementa el necesario para cumplir con el objetivo: Dibujar la figura
correspondiente. A simple vista nos damos cuenta que ambas clases son
polifrmicas ya que ambas heredan de la clase Figura, ambas sobrescribieron el
mtodo Dibujar Contorno y al llamar al mismo mtodo pero en clases distintas
producen resultado completamente distintos (en este caso un tringulo y un
cuadrado respectivamente).
Cohesin: Que todas las clases tengan un fin en comn y lgico, por ejemplo en
una clase Auto se debera implementar atributos y mtodos que me permitan
acelerar, frenar, doblar (Izq. y Der.) y NO que se preocupe de los datos
pertenecientes al seguro. Un buen diseo siempre busca mantener una ALTA
COHERSIN.
Acoplamiento: Es la interdependencia que existe entre clases, esto ocurre
normalmente cuando una clase necesita saber demasiados detalles internos de otra
clase para su buen funcionamiento, es decir rompe con el esquema del
encapsulamiento y produce que la mantencin del sistema sea tediosa y complicada
(no es el principio de Java). En un buen diseo mientras ms BAJO ACOPLAMIENTO
mejor.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo
natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica
cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificacin por quien no tenga derecho a
acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder
a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno
de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso
directo a los datos internos del objeto de una manera controlada y limitando el
grado de abstraccin. La aplicacin entera se reduce a un agregado o
rompecabezas de objetos.

Autor: Prof. Ivn Pez Mora

Marzo 2008

También podría gustarte