You are on page 1of 107

Capitulo 1

Sistemas Corporativos I
2006

Programas y Modelos
La gran mayora de los programas modelan algo.
Qu significa modelar?
Un modelo es una representacin simplificada. Incluye
caractersticas que se consideran importantes para el que
lo usa, a la vez que desecha otras que no lo son.
Por ejemplo, un modelo de un auto de plstico para un
nio, muestra los detalles del exterior y las ruedas, pero
obvia por completo el motor y la transmisin, una versin
ms sofisticada puede incluir un motor que funcione y unos
detalles muy realistas en el interior. Por supuesto,
mientras ms realista y detallado sea el modelo, ms
costosa ser su creacin.

Ejemplo de Modelado
Una empresa muy importante de Servicio de
Mantenimiento tiene un departamento de atencin
al cliente para recibir llamadas de reparacin. Para
atender estas peticiones de sus clientes la empresa
tiene 10 tcnicos.
Dicho departamento debe de tener un sistema que
permita controlar tanto las peticiones de cada
cliente como la ubicacin de sus tcnicos.

Solucin
Para esto, en dicho departamento se desarrollo un
esquema que modela el problema real:

Un tablero con el mapa de la ciudad


Un alfiler representa a cada mecnico
Un chinche representa a cada cliente
Una pequea etiqueta con informacin bsica se ubica
junto con el alfiler o al chinche.

Objetos, Comportamiento y
Clases
Los elementos del modelo en los programas Orientado por Objetos se llama

Objetos.
Los objetos que comparten cierto comportamiento se pueden agrupar en
distintas categoras llamadas clases.

Objetos: Veamos la siguiente comparacin:


Modelo de la Encargada

Modelo Java

La encargada del mantenimiento


modela cada uno de los 10 tcnicos
con un alfiler

En Java, los mecnicos se modelarn


por un objeto Tcnico y se instancian
10

La encargada modela a sus clientes


con chinches.

En Java, los clientes sern modelados


por objeto Cliente.

Cuando se produce una llamada de un


cliente, la encargada pincha un
chinche en el mapa.

En Java se instancia un objeto Cliente.

1
1

13
Elemento que representa

Mecnicos

17

21
Elemento que representa

Clientes

25

13

17

21

Representacin de Clases
Clase que representa

Clientes

Cliente

Clase que representa

Tcnicos

Tcnico

Juan Perez
X: 6 , Y: 7

Modelo de Tcnicos en el mapa con


alfileres
Cada tcnico tiene caractersticas
propias, como:

PROBLEM S.A.
X: 6 , Y: 12

Pedro Ortiz
X: 17 , Y: 12

Nombre
Calle1 (X)
Calle2 (Y)
KAOS S.A.
X: 19 , Y: 17

Modelo de Clientes en el mapa con


cinches
Cada cliente tiene caractersticas
propias, como:
Razn social
Calle1 (X)
Calle2 (Y)

Luis Rojas
X: 1 , Y: 22

Instancias
Clase que representa

Tcnicos

Tcnico

Tcnico

Nombre: Juan Prez


X: 6
Y: 7

Nombre: Luis Rojas


X: 1
Y: 22

Tcnico
Nombre: Pedro Ortiz
X: 17
Y: 12

Clase que representa

Clientes

Cliente
Nombre: PROBLEM S.A.
X: 6
Y: 12

Cliente
Nombre: KAOS S.A.
X: 19
Y: 17

Juan Prez
X: 6 , Y: 7

PROBLEM S.A.
X: 6 , Y: 12

Accin externa
Comportamiento asociado
mover()

Pedro Ortiz
X: 17 , Y: 12

KAOS S.A.
X: 19 , Y: 17

Luis Rojas
X: 1 , Y: 22

Accin externa
Comportamiento asociado
mover()

Juan Prez
X: 6 , Y: 7

PROBLEM S.A.
X: 6 , Y: 12

Pedro Ortiz
X: 17 , Y: 12
KAOS S.A.
X: 19 , Y: 17

Luis Rojas
Diaz
X: 1 , Y: 22

Clase que representa

Tcnicos

Tcnico

Tcnico

Tcnico

Nombre: Juan Prez


X: 6
Y: 12

Nombre: Luis Rojas


X: 1
Y: 22

Nombre: Pedro Ortiz


X: 19
Y: 17

mover(6, 12)

mover( , )

mover(19, 17)

Clase que representa

Clientes

Cliente
Nombre: PROBLEM S.A.
X: 6
Y: 12

Cliente
Nombre: KAOS S.A.
X: 19
Y: 17

Cuando un
cliente llama, se
coloca un
chinche en el
mapa.

Juan Prez
X: 6 , Y: 12

PROBLEM S.A.
X: 6 , Y: 12

Pedro Ortiz
X: 19 , Y: 17

PEOR S.A
X: 10 , Y: 15
KAOS S.A.
X: 19 , Y: 17
Luis Rojas
X: 1 , Y: 22

Clase que representa

Tcnicos

Tcnico

Tcnico

Tcnico

Nombre: Juan Prez


X: 6
Y: 12

Nombre: Luis Rojas


X: 1
Y: 22

Nombre: Pedro Ortz


X: 19
Y: 17

mover(6, 12)

mover( , )

mover(19, 17)

Clase que representa

Clientes

Cliente
Nombre: PROBLEM S.A.
X: 6
Y: 12

Cliente
Nombre: KAOS S.A.
X: 19
Y: 17

Cliente
Nombre: PEOR S.A.
X: 10
Y: 15

Una vez se
tenga el
llamado de un
cliente, se
debe ubicar
un tcnico y
desplazarlo
hasta el
cliente para
que este haga
su trabajo.

Juan Perez
X: 6 , Y: 12

PROBLEM S.A.
X: 6 , Y: 12

Pedro Ortz
X: 19 , Y: 17
PEOR S.A.
X: 10 , Y: 15
KAOS S.A.
X: 19 , Y: 17

Luis Rojas
X: 1 , Y: 22

Juan Prez
X: 6 , Y: 12

Luis Rojas
X: 10 , Y: 15

ROBLEM S.A.
X: 6 , Y: 12

Pedro Ortz
X: 19 , Y: 17
PEOR S.A.
X: 10 , Y: 15
KAOS S.A.
X: 19 , Y: 17

Clase que representa

Tcnicos

Tcnico

Tcnico

Tcnico

Nombre: Juan Prez


X: 6
Y: 12

Nombre: Luis Rojas


X: 10
Y: 25

Nombre: Pedro Ortz


X: 19
Y: 17

mover(6, 12)

mover( 10, 15 )

mover(19, 17)

Clase que representa

Clientes

Cliente
Nombre: PROBLEM S.A.
X: 6
Y: 12

Cliente
Nombre: KAOS S.A.
X: 19
Y: 17

Cliente
Nombre: PEOR S.A.
X: 10
Y: 15

Programas y Modelos
Caractersticas de los modelos:
Ya sea un modelo del mundo real o uno hipottico, comparten las siguientes
caractersticas:
Los elementos del modelo representan otras entidades ms complejas;

por ejemplo, alfileres que se utilizan como representacin del personal de mantenimiento en un
mapa.

Estos elementos exhiben un comportamiento consistente;


por ejemplo, los alfileres indican posicin, y se pueden mover

Los elementos del modelo se pueden agrupar en categoras diferentes basndose en su


comportamiento comn;
por ejemplo, los chinches aparecen y desaparecen. Una vez que se han pinchado en el mapa, no se
mueven hasta que se quitan. Por el contrario, los alfileres permanecen todo el tiempo en el mapa
pero se pueden mover. (esto refleja el hecho de que el personal de mantenimiento viaja, pero las
localizaciones de los clientes, bien necesitan un servicio, o bien no).

Acciones externas sobre los elementos del modelo les hacen exhibir el
comportamiento asociado a los mismos;
por ejemplo, una mano mueve el alfiler.

Conceptos de Programacin
Orientada a Objetos

Definiciones de Objeto
Abstraccin de software que modela todos
los aspectos relevantes de una realidad.
Representacin de la realidad que tiene
estructura, estado y comportamiento.
Entidad real o abstracta acerca de la cual
se almacenan datos y operaciones que
operan sobre ellos

OBJETO = ESTADO + MTODOS


Estado
Conjunto de Atributos
Condicin actual del
objeto
Vara dinmicamente
No es accesible desde
afuera
No es directamente
modificable desde
afuera

Mtodos
Puertos de entrada del
objeto
Responden a mensajes
Unifica forma de
entrada al objeto

Representacin de un Objeto

Tcnico
Nombre: Juan Prez
X: 19
Y: 17

mover(19, 17)

Qu es la Programacin
Orientada a Objetos?
Es una nueva manera de enfocar la programacin.
Un programa contiene objetos que responden a los
mensajes que se les envan.
Un Mensaje (llamada a una funcin) es una peticin
a un objeto para que haga algo.
A las acciones que realizan los objetos se les llama
Mtodos.

Todos los objetos son ejemplares de una


categora o Clase. El mtodo invocado
por un objeto en respuesta a un mensaje
queda determinado por la clase del
receptor.
Todos los objetos de una clase dada
usan el mismo mtodo de respuesta a
mensajes similares.

Definicin de Clase
Grupo de objetos marcado por
caractersticas comunes que incluyen
estructura y comportamiento
Los objetos son instancias de una clase
Los mtodos del objeto son virtuales:
Solo estn definidos en la clase

Origen de las Clases

Cosas tangibles: Persona, Vehculo, producto, ...


Papeles que representa: Agente, profesor, vendedor, ...
Eventos: Aterrizaje, Suspensin, Venta, Devolucin, ...
Interaccin: Prstamo, Matrcula, Registro Pblico, ...
Organizaciones: Financiera, Sindicato, ...
Conceptos: Proyecto, Materia, ...
Localizaciones: Punto de Venta, Bodega, Oficina, ...
Visibles en la interfaz: Icono, Imagen, Ventana, ...
Dispositivos: Sensor, Lector de Tarjeta, Teclado, Pantalla, ...

Caractersticas Programacin OO
Encapsulacin
Caja Negra

Polimorfismo
Permitir usar un nombre para especificar una clase
general de acciones

Herencia
Un objeto puede adquirir las propiedades de otro

UML
Unified Modeling Language

UML
El Lenguaje de Modelamiento
Unificado (UML - Unified Modeling
Language) es un lenguaje grfico para
visualizar, especificar y documentar
cada una de las partes que comprende
el desarrollo de software.

UML
UML entrega una forma de modelar
cosas conceptuales como lo son
procesos de negocio y funciones de
sistema, adems de cosas concretas
como lo son escribir clases en un
lenguaje determinado, esquemas de
base de datos y componentes de
software reusables.

UML
UML: ALGUNOS DIAGRAMAS
Diagrama de Casos de Uso
Diagrama de Interaccin
Diagrama de Clases

UML
Diagrama de Casos de Uso (Use Case)
El diagrama de casos de uso representa la
forma en como un Cliente (Actor) opera
con el sistema en desarrollo, adems de la
forma, tipo y orden en como los elementos
interactan (operaciones o casos de uso).

UML
Diagrama de Interaccin
El diagrama de interaccin, representa la forma en como
un Cliente (Actor) u Objetos (Clases) se comunican entre
si en peticin a un evento. Esto implica recorrer toda la
secuencia de llamadas, de donde se obtienen las
responsabilidades claramente.
Dicho diagrama puede ser obtenido de dos partes, desde
el Diagrama Esttico de Clases o el de Casos de Uso

UML
Diagrama de Clases
Un diagrama de clases sirve para
visualizar las relaciones entre las clases
que involucran el sistema.

Modelo de Clases
Un diagrama de clases esta compuesto por
los siguientes elementos:
Clase: atributos, mtodos y visibilidad.
Relaciones: Herencia, Composicin,
Agregacin, Asociacin y Uso.

Modelo de Clases
CLASE
Es la unidad bsica que encapsula toda
la informacin de un Objeto (un objeto
es una instancia de una clase). A travs
de ella es posible modelar el entorno en
estudio (una Casa, un Auto, una Cuenta
Corriente, etc.).

Modelo de Clases
En el diagrama de
Clases, una clase es
representada por un
rectngulo que
posee tres
<Nombre Clase>
divisiones:
<Atributo>
<Mtodo>()

Modelo de Clases
En donde:
Superior: Contiene el nombre de la Clase
Intermedio: Contiene los atributos (o variables de
instancia) que caracterizan a la Clase (pueden ser private,
protected o public).
Inferior: Contiene los mtodos u operaciones, los cuales
son la forma como interacta el objeto con su entorno
(dependiendo de la visibilidad: private, protected o
public).

Ejemplo:
Mecanico
nombre
X
Y
mover(x, y)

Cliente
razonSocial
X
Y

Modelo de Clases
RELACIONES ENTRE CLASES
Cardinalidad de relaciones
En UML, la cardinalidad de las relaciones
indica el grado y nivel de dependencia, se
anotan en cada extremo de la relacin y stas
pueden ser:
uno o muchos: 1..* (1..n)
0 o muchos: 0..* (0..n)
nmero fijo: m (m denota el nmero).

Herencia (Especializacin/Generalizacin)
Indica que una subclase hereda los mtodos y
atributos especificados por una Super Clase,
por ende la Subclase adems de poseer sus
propios mtodos y atributos, poseer las
caractersticas y atributos visibles de la Super
Clase (public y protected).

Ejemplo
Vehiculo
ruedas
puertas
mostrarCaracteristicas()

Camioneta
carga
cargar()

Auto
descapotable
Encender()

Agregacin
Para modelar objetos complejos, no bastan los
tipos de datos bsicos que proveen los lenguajes:
enteros, reales y secuencias de caracteres.
Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador
de la aplicacin, se tienen dos posibilidades:

Por Valor: Es un tipo de relacin esttica, en donde el


tiempo de vida del objeto incluido esta condicionado por el
tiempo de vida del que lo incluye. Este tipo de relacin es
llamada Composicin (el Objeto base se construye a partir
del objeto incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde
el tiempo de vida del objeto incluido es independiente del
que lo incluye. Este tipo de relacin es llamada Agregacin
(el objeto base utiliza al incluido para su funcionamiento).

Ejemplo
Almacen

Cuenta

Cliente

Se destaca:
Un Almacn (Almacen) posee Clientes y Cuentas (los
rombos van en el objeto que posee las referencias).
Cuando se destruye el Objeto Almacen tambin son
destruidos los objetos Cuenta asociados, en cambio no son
afectados los objetos Cliente asociados.
La composicin (por Valor) se destaca por un rombo relleno.
La agregacin (por Referencia) se destaca por un rombo
transparente.
La flecha en este tipo de relacin indica la navegabilidad del
objeto referenciado. Cuando no existe este tipo de
particularidad la flecha se elimina.

Asociacin
La relacin entre clases conocida como
Asociacin, permite asociar objetos que
colaboran entre si. Cabe destacar que no
es una relacin fuerte, es decir, el tiempo
de vida de un objeto no depende del otro.

Ejemplo
Cliente

OrdenCompra

0..*

Un cliente puede tener asociadas


muchas rdenes (Orden) de Compra, en
cambio una orden de compra solo puede
tener asociado un cliente.

Un mtodo sencillo para


identificar objetos
Escriba el problema
Subraye lo siguiente:
sustantivos: candidatos a clases
verbos: candidatos a mtodos
adjetivos: candidatos a atributos

Ejercicio
TIENDA DE MASCOTAS
Se tiene una tienda de animales domsticos (mascotas) y se
requiere clasificar las mascotas con el objetivo de tener una
administracin del inventario de la tienda.
En la tienda se venden perros, gatos, pjaros y peces.
Se debe tener en cuenta la raza de los perros y el tipo de comida
(en lata o seca), la raza de los gatos, si tiene garras (con garras o
sin garras), el tipo de pjaro (loro, canario, etc.) y su pas de
origen, el tipo de pez (ngel, nen, etc.) y el tipo de agua (dulce
o salada) en el que han de vivir.

Ejercicio
TIENDA DE
MASCOTAS

Perro
Raza
tipoComida

Mascota
precio

Gato
raza
tieneGarras

Pajaro
tipo
paisOrigen

Pez
tipo
tipoAgua

Ejercicio
Figuras Geomtricas
Se desea crear una aplicacin para dibujar figuras
geomtricas. Con la aplicacin se podr dibujar:
cuadrilteros, crculos y tringulos. Entre los
cuadrilteros deber representar cuadrados y
rectngulos. Adems de proveer la flexibilidad de
poder expandir dicha lista de figuras geomtricas
para mejoras de la aplicacin a futuro

Ejercicio
Figuras Geomtricas
FiguraGeometrica
calcularArea()
Cuadrilatero
Circulo

Cuadrado

Rectangulo

Triangulo

Ejercicio
Biblioteca
Disee las clases necesarias para
modelar una biblioteca, donde existan
libros de distintos tipos.

Ejercicio
TIENDA DE MSICA
Se tiene un almacn de msica, en el cual se venden cds de toda clase de
autores.... Esta tienda est pensando en desarrollar un programa que le entregar
a diferentes usuarios para que puedan hacer sus compras desde su computador y
a usted le ha sido asignada esa labor. El programa deber permitir:
Hacer bsquedas por autor.
Hacer bsqueda por ttulo del cd.

A medida que se van viendo los cds, se pueden escoger 1 o varias copias, las
cuales irn al carrito de compras...
Manejo del carrito de compras:
En cualquier momento se podr ver el carrito de compras, a la vez que quitarle
elementos al carrito.
Opciones para el carrito de compras:
Ver Cds que tiene en el momento
Quitar algn cd que ya no quiera comprar

A la hora de la compra: Mostrar todo el carrito con el total de cds que va a


comprar

Enlaces Recomendados
TUTORIAL DE UML:
http://www.dcc.uchile.cl/~psalinas/uml/introduc
cion.html

Repaso Programacin
COMPONENTES DE UN LENGUAJE
Constantes
Precedencia de operadores
Estructura general de un programa
Instruccin de Asignacin
Entrada y salida
Control de instrucciones
Composicin secuencial
Composicin condicional
Composicin iterativa o repetitiva

Repaso Programacin
Ejercicios
Desarrollarlos con E/S y como funciones:

duplicarValor
elevarCuadrado
raiz
pitagoras (usando los dos anteriores)
condicional:
esPar

Introduccin

Java
CONCEPTOS DE
PROGRAMACION ORIENTADA
POR OBJETOS EN EL
LENGUAJE JAVA

La Tecnologa JAVA

Por qu Java?
Multiplataforma
Es OOP
Fcil de aprender (comparado con C y C+
+)
Pblico (http://www.sun.com)
Lenguaje por excelencia de Internet
Riqusimo en libreras

Compilado o Interpretado?
Una vez

Prog.java
FUENTE

Compilador

Prog.class
INTERMEDIO

Byte Code
(Cd. de la Plataforma)

Por cada
ejecucin

Prog.class
INTERMEDIO

Interpretador

Prog.exe
lnea-a-lnea

Programe una vez y


Prog.java

Compilador
Prog.java

Java API
Interpretador

Interpretador

Interpretador

Java VM

Plataforma Basada
en Hardware

Windows
(32 Bits)

Solaris

Mac OS

EL J2SE

Ambiente de desarrollo (jsdk)

Ambiente de distribucin (jre)

Los IDE - Ambientes de


Desarrollo Integrados

Ejemplo: TextPad

Programacin Orientada a Objetos


OOP nuevo paradigma
Nueva
Nuevapropuesta
propuestaaacrisis
crisisdel
delsoftware
software
Reutilizacin
Reutilizacinde
decomponentes
componentes
Reduccin
Reduccindel
delcosto
costodel
delsoftware
software
Acercamiento
Acercamientodel
delcomputador
computadoraalalarealidad
realidad
Facilita
Facilitaproyeccin
proyeccinde
delos
losobjetos
objetosreales
realesen
enobjetos
objetos
computacionales
computacionales

Problemas
ProblemasReales?
Reales?
La
Laorientacin
orientacinaaobjetos
objetossera
seralalams
msapropiada!!!
apropiada!!!

Propiedades de la OOP
Elemento Bsico

Propiedades

Clase-Objeto

Atributos
Atributos(Variables)
(Variables)
Comportamientos
Comportamientos(Mtodos)
(Mtodos)

Encapsulamiento
Herencia
Polimorfismo
Composicin

Clase - Objeto
CLASE

OBJETO
rbol de Manzana
rbol de Naranja
rbol de Aguacate
rbol de Zapote

RBOL
Abstraccin
(MOLDE)

INSTANCIAR
EJEMPLARIZAR

Concreto

Clase
Una clase bien diseada debe tener en general Atributos y Comportamiento
class Planeta {
Atributos: Variables de instancia y de clase (Abstraccin de datos)
Mtodo o mtodos constructores. Llevan el nombre de la clase.
Otros Mtodos
Mtodos que dan el comportamiento.
Mtodos de acceso a variables privadas: set ( entregan), get (reciben).
Mtodos de clculo
Mtodos de dibujo
Etc...
} // Fin de la Clase
ENCAPSULAMIENTO

Objetos
Creacin de objetos Planeta :

Planeta Marte = new Planeta( );

Planeta Tierra = new Planeta(6400, atmosfera);

Programa
Un programa puede tener una o ms clases
Los programas pueden ser aplicaciones o applets (entre otros
como JavaServers :JSP, Servlets)

Mtodo main

Mtodo init

APLICACIN

APPLET

Es autnoma

Se puede ejecutar en un Explorador

Clases y Objetos
Declaracin
public class Punto{
private int y = 0;
private int x = 0;
.......
}

public class
Rectangulo{ private int
ancho = 0; private int
alto = 0; private Punto
origen = new Punto();

Intanciacin
new Rectangulo();

new Punto();

x
y

Tipos
Primitivos

Tipos
Referenciado
u objeto

ancho
alto
origen

x
y

Ejemplo

Ejemplo

CONSTRUCTOR
SOBRECARGADOS

METODOS DE
INSTANCIAS

Ciclo de vida de un Objeto


El ciclo de vida de un objeto consiste en:.
Creacin

Uso

Destruccin

Creacin
Creacin
Declaracin: se le indica al compilador el nombre y
tipo del objeto declarado.
Instanciacin: se aloca memoria para el objeto
mediante el operador new.
Inicializacin: se inicializa el objeto invocando
constructores. Una clase puede tener mltiples
constructores, todos con el mismo nombre, pero
diferente nmero y tipos de argumentos. Java provee
un constructor de default, sin argumentos, que no
hace nada.

Uso
Uso
Los objetos se manipulan usando el operador punto (.),
de dos formas distintas:
Accediendo directamente a sus variables de instancia
Invocando mtodos de instancia

Java provee un mecanismo de control de acceso, que permite que una clase pueda
restringir o habilitar el acceso a sus variables (de instancia/clase) y mtodos (de
instancia/clase).

Destruccin
La plataforma JAVA provee un Garbage Collector que
peridicamente libera la memoria ocupada por objetos ya
no usados.

Antes que un objeto sea recolectado por el Garbage Collector, el sistema


de ejecucin de Java invoca al mtodo finalize() para liberar recursos del
sistema como archivos y sockets abiertos. Este proceso se llama
finalizacin.
El mtodo finalize es heredado de la clase Object. Toda clase debera
sobre escribir el mtodo finalize para realizar el proceso de finalizacin
adecuado para los objetos de su clase.

Cuerpo

Declaracin

Creacin de Clases

Los valores por default, asumidos por el compilador JAVA son: no public, no
abstract, no final, subclase de Object y no se implementan interfaces.

o
b
li
g
a
t
o
r
i
o

Clases Finales
Una clase final es una clase que no puede ser extendida, es
inmutable, no cambia.
Una clase final establece que nadie podr heredar de dicha clase; esto
es ninguna podr extenderla.
Porque crear clases finales?
Seguridad: Una subclase es similar a la superclase y, adems puede
implementar un comportamiento peligroso. Es posible a travs de
una subclase obtener informacin privada de la superclase. Por
ejemplo: la clase String del paquete java.lang es una clase final ya
que es vital para el funcionamiento del compilador y del intrprete.
Al no poder extenderse, cualquier clase que use String estar usando
la clase java.lang.String.
Diseo: Por razones de diseo, una clase que est conceptualmente
bien definida no tendra que ser subclaseada.

Clases Abstractas
Se define una clase abstracta cuando se quiere manipular
un conjunto de clases a travs de una interfaz comn.
Una clase abstracta slo puede ser extendida, pero nunca
puede ser instancida.
Una clase abstracta se declara anteponiendo
modificador abstract a la palabra clave class.
abstract class InstrumentoMusical{.....}

el

Una clase abstracta puede contener mtodos abstractos y


mtodos con implementacin.

Clases Abstractas

No existe un instrumento musical genrico. Los


instrumentos musicales hacen las mismas cosas pero de
diferente manera. No es lo mismo afinar un piano que una
flauta ni que una guitarra

Clases Abstractas
Los mtodos
abstractos no
tienen cuerpo;
no tienen
implementacin

Componentes de la declaracin de
Variables

Cuerpo de una Clase


Es la implementacin de la clase. Se definen: constructores,
variables y mtodos que determinan la forma de inicializarse,
el estado y el comportamiento de los objetos.
-Constructores: cumplen la funcin de inicializar los nuevos
objetos pertenecientes a la clase.
public Pila() {
items = new Vector(10);
}
public Pila(int tamao) {
items = new Vector(tamao);
}

Especificacin de acceso a los


Constructores
private

ninguna clase puede crear instancias, excepto la misma clase a


travs de un mtodo de clase

protected

solamente los objetos pertenecientes a las subclases pueden crear


instancias

public

cualquier objeto puede crear instancias de la clase

package

solamente los objetos pertenecientes a clases del mismo package


pueden crear instancias

Si en la clase no se define ningn constructor, el compilador insertar


uno, que se denomina constructor por default o nulo. El constructor
nulo no tiene argumentos e inicializa todas las variables de instancia del
objeto de acuerdo a la inicializacin dada en la declaracin. Si no se
definieron valores de inicializacin entonces, se asigna
automticamente un valor de inicializacin por default de acuerdo al
tipo de dato de la variable de instancia

Invocacin a un constructor de la
superclase
class ThreadAnimacion extends Thread {
int framesPorSegundo;
int numImagenes;
Image[] imagenes;
ThreadAnimacion (int fps, int num) {
super(ThreadAnimacion);
this.framesPorSegundo= fps;
this.numImagenes=num;
this.imagenes= new Image(numImagenes);
for (int i=0; i<= numImagnes; i++) {
.................
// se cargan las imgenes
..................
}
}
}

Invocacin a un constructor de la
misma clase
public class Punto {
int x;
int y;
public Punto () {
this (0,0);
}
public Punto (int a, int b) {
x=a;
y=b;
}
}

Componentes de la declaracin de
Mtodos

Ejemplo: Receptor de Mensaje


(Objeto MONITOR)

a el de pantalla plana
Cambia el brillo -

Monitor
(El receptor del mensaje)

Aumntalo

Ejemplo: Receptor de Mensaje


(Objeto MONITOR)
Instancia predefinida de la clase

modela

PrintStream

Cosa que es
modelada
por el objeto

se refiera a

System.out
Referencia

Objeto

println (Bienvenidos a Java)


comportamiento
(mtodo)

detalles

System.out . println(Bienvenidos a Java)


referencia al receptor

mensaje

Ejemplo: Receptor de Mensaje


(Objeto MONITOR)
Referencia

Mensaje

System.out . println(Bienvenidos a Java)

se refiera a

modela

es enviado a

Instancia predefinida de la clase

PrintStream
Receptor
(un objeto)

Definicin de Clases
class nombreClase
{

private int variable;

Atributo
Metodo Constructor

public nombreClase() {
}

Metodo

public void nombreMetodo() {


System.out.println(Bienvenido a Java);

Delimitadores

}
public static void main(String[] args) {
nombreClase app = new nombreClase();
}
}

Metodo principal en modo aplicacin

Estructura de la definicin de un
Dominio de retorno
mtodoAcceso

Declaracin de parmetros

PROTOTIPO

Dominio del parmetro

public void nombreMetodo(String parmetro)


{
String variable;
variable = parametro;
System.out.println(variable);
}
CUERPO DEL MTODO

Uso del parmetro

Estructura deDominio
la definicin
de
un
de retorno
mtodo
(2)
Declaracin de parmetros
Acceso

PROTOTIPO

Dominio del parmetro

public int nombreMetodo2(int parametro)


{
int variable;

Uso del parmetro

variable = parametro + 2;
return variable;
}
Respuesta al llamado
CUERPO DEL MTODO

Creacin de la Primera Aplicacin

Crear un archivo Fuente Java.


Compilar dicho archivo Fuente
Ejecutar el Programa

Creacin de un archivo fuente


Java
Un archivo fuente contiene texto, escrito
en el lenguaje de programacin Java, se
puede usar cualquier editor de texto
para crear y editar ficheros fuente.

Compilar el archivo fuente en


un fichero de bytecodes.
El compilador de Java, javac, toma el
archivo fuente y lo traduce en
instrucciones que la Mquina Virtual
Java (Java VM) puede entender. El
compilador pone estas instrucciones en
un archivo de bytecodes.

Ejecutar el programa contenido en el


archivo de bytecodes
La mquina virtual Java est
implementada por un intrprete Java,
java. Este intrprete toma el archivo de
bytecodes y lleva a cabo las instrucciones
traducindolas a instrucciones que el
computador puede entender

Bytecodes
En Java, se puede escribir una vez y ejecutar en
cualquier parte
Cuando se compila un programa, no se generan
instrucciones para una plataforma especfica.
En su lugar, se generan bytecodes Java, que son
instrucciones para la Mquina Virtual Java (Java VM).
Si la plataforma- sea Windows, UNIX, MacOS o algn
navegador de Internet-- tiene la Java VM, podr
entender los bytecodes

INTRODUCCIN AL JDK
JDK:

Java Development Kit

Versin
Ubicacin del jdk
Ejecutables

Ejemplos

Libreras

Programa inicial en java


Crear un archivo Fuente Java
Utilizando cualquier editor de texto:

Compilar dicho archivo Fuente


javac HolaMundo.java

Compilacin

Ejecucin
Ejecutar el Programa
Java HolaMundo

OTRO EJEMPLO
Monitor
volumen : int
brillo : int
mostrarMensaje(mensajeAMostrar : String) : void
setVolumen(nuevoVolumen : int) : void
getVolumen() : int
aumentarBrillo() : void
disminuirBrillo() : void

EJERCICIO/TAREA:
Implementar la clase Automvil:
Desarrollar un programa que muestre las caractersticas
del Automvil (mostrarCaracteristicas() )
Automovil
numeroRuedas
numeroPuertas
setNumeroRuedas(nR : Integer)
setNumeroPuertas(nP : Integer)
getNumeroRuedas() : Integer
getNumeroPuertas() : Integer
mostrarCaracteristicas()

You might also like