Sunteți pe pagina 1din 22

UNIVERSIDAD NACIONAL DE HUA

NCAVELICA
FACULTAD
INGENIERIA ELECTRONICA-SISTEMAS

LENGUAJE DE PROGRAMACIN II
PROGRAMACION ORIENTADA
A OBJETOS
Dr. Rafael Rojas Bujaico

Objetos
Qu son los objetos?
En informtica, un OBJETO es un conjunto de variables y de los
mtodos relacionados con esas variables.
Un poco ms sencillo: un objeto contiene en s mismo la
informacin y los mtodos o funciones necesarios para manipular esa
informacin.
Lo ms importante de los objetos es que permiten tener un control
total sobre 'quin' o 'qu puede acceder a sus miembros, es decir, los
objetos pueden tener miembros pblicos a los que podrn acceder
otros objetos o miembros privados a los que slo puede acceder l.
El problema a resolver se modela mediante componentes de cdigo
Estos miembros pueden ser tanto variables como funciones.
llamados objetos que son abstracciones de los objetos, animados e
inanimados, del mundo real.
Una abstraccin es una representacin parcial de los atributos y
comportamiento de un objeto real.
Los atributos son las caractersticas que definen al objeto y el
comportamiento representa lo que el objeto sabe hacer, su
funcionalidad.
El comportamiento de un objeto es modelado por piezas de cdigo
llamados mtodos. Los atributos y comportamiento representados
por el objeto son los que son relevantes al problema que se est

Por ejemplo, supongamos que estamos simulando el comportamiento


del consumo de
combustible de un automvil:
El objeto automvil tendr los atributos: coeficiente de arrastre,
cilindrada del motor, aceleracin, presin de las llantas, peso, etc.
Los mtodos que describen su comportamiento son: acelerar,
frenar, desplegar velocidad, desplegar nivel de gasolina, etc.
NOTA:
El color de la carrocera o el precio no sern atributos ya que no son
relevantes en el problema bajo estudio, como tampoco lo sern
obtener precio, establecer precio, obtener color, establecer color, etc.

Modelando un Problema usando POO


El primer paso para modelar un problema usando la POO es la
identificacin de los objetos que son relevantes para representar el
problema.
No todos los posibles objetos que podamos hallar son necesarios en
nuestro modelo. Los primeros candidatos a ser objetos son los
sustantivos (nombres comunes) en el enunciado de un problema.
Por ejemplo considere el siguiente problema:
Un amante de la msica y del cine desea catalogar su coleccin de
msica y pelculas. Desea realizar consultas de msica por ttulo,
autor, gnero, lbum, intrprete y perodo; mientras que para sus
pelculas desea hacer consultas por ttulo, gnero, actor, directo y
En este problema, los objetos ms obvios son cada una de las
perodo.
canciones y pelculas que el amante de la msica y el cine posee.
Los atributos de cada cancin son: ttulo, gnero, intrprete, autor
de letra, autor de msica, lbum, disquera, duracin y fecha; los de
cada pelcula son: el ttulo, gnero, actores principales, director,
compaa productora, duracin y fecha. Los mtodos de cada una
de esas canciones y pelculas nos deben permitir obtener y
establecer
losen
valores
de cada podra,
atributo,depor
establece
Sin embargo
este problema
serejemplo,
necesario,
otros
nombre,
obtnlos
nombre,
establece
gnero,
obtn
gnero, etc.
objetos como
intrpretes,
autores,
actores,
directores,
gneros,
fechas, e inclusive objetos compuestos de objetos como lista de
canciones, o listas de actores.

Clases
El segundo paso para modelar un problema usando la POO, es la
clasificacin de los objetos que son relevantes para representar el
problema en grupos de objetos que compartan el mismo tipo
de atributos y mtodos.
La lista de atributos y mtodos de cada grupo de objetos (un grupo
podra estar formada por un slo objeto) se conoce como una
clase, esto es, una clase son los atributos y mtodos
comunes a un grupo de objetos.
Una
constituye
unaelplantilla con la que se construyen objetos,
En elclase
superior
aparece
se
crean de
instancias
esa
nombre
la clase,deen
el clase.
central los atributos y en
el inferior sus mtodos.
Por ejemplo, las clases
Cancion y Pelicula del
problema
anterior
estaran
representados
por los diagramas de la
figura. Tambin se agrega
la clase Genero utilizada
para
representar
los
gneros de las canciones

Una CLASE es un proyecto, o prototipo, que define las variables y los


mtodos comunes a un cierto tipo de objetos.
Un poco ms sencillo: las clases son las matrices de las que luego se
pueden crear mltiples objetos del mismo tipo. La clase define las
variables y los mtodos comunes a los objetos de ese tipo, pero
luego, cada objeto tendr sus propios valores y compartirn las
mismas funciones.
Primero deberemos crear una clase antes de poder crear objetos o
ejemplares
de esa
clase.
Qu son los
mensajes?
Para poder crear una aplicacin necesitars ms de un objeto, y
estos objetos no pueden estar aislados unos de otros, pues bien,
para comunicarse esos objetos se envan mensajes.
Los mensajes son simples llamadas a las funciones o mtodos del
objeto con el se quiere comunicar para decirle que haga cualquier
cosa.

Principios de la Programacin Orientada a Objetos


1. Encapsulado
Uno de los principios de la POO es la encapsulacin (los otros dos
son la herencia y el polimorfismo). La encapsulacin es un
mecanismo que permite agrupar los datos (atributos) y el cdigo
(mtodos) que los manipulan y los mantiene alejados de posibles
interferencias y usos indebidos.
El acceso a los datos y mtodos es en forma controlada a travs de
una interfaz bien definida.
La base del encapsulado es la clase.
Cada atributo y mtodo tiene asociado un modificador de acceso
que establece quien tiene acceso a los atributos y mtodos de la
clase.
Los atributos y mtodos privados slo pueden ser accedidos
por el cdigo dentro de la clase.
Cualquier otro cdigo fuera de la clase no puede accederlos.
Los atributos y mtodos pblicos son los que pueden ser
accedidos desde fuera de la clase y constituyen la interfaz
de la clase.
NOTA:
En los diagramas de clase, los atributos y mtodos privados van
precedidos de un signo menos (-) y los pblicos por un signo ms

La ocultacin no quiere decir, sin


embargo,
que
sea
imposible
conocer lo necesario respecto a un
objeto y a lo que contiene. Si as
fuera no se podra hacer gran cosa
con l. Lo que sucede es que las
peticiones de informacin a un
objeto deben realizarse a travs de
mensajes dirigidos a l, con la
orden de realizar la operacin
pertinente.
La respuesta a estas ordenes ser
la informacin requerida, siempre
El hecho
de que cada
objeto sea
cpsula
que
el objeto
considere
queunaquien
facilita el enormemente
que autorizado
un
objeto
enva
mensaje est
determinado
pueda ser transportado a otro
para
obtenerla.
punto de la organizacin, o incluso a otra
organizacin totalmente diferente que precise
de l.

2. Herencia
El segundo principio de la POO es la herencia. El mecanismo de
herencia
permite:
Que una
clase herede las propiedades (atributos) y el
comportamiento (mtodos) de otra clase, evitando tener que
repetir el cdigo que se desea heredar.
Agrupar en una clase las propiedades (atributos) y
comportamiento (mtodos) comunes de dos o ms clases
escribiendo en una sola clase el cdigo comn a esas clases. Esas
clases heredan de la clase que tienen los atributos y mtodos
Lacomunes.
clase de las que heredan otras
clases se conoce como superclase
y las clases que heredan se llaman
subclases. Una subclase es una
versin especializada de una
superclase, que hereda todos los
atributos
y
mtodos
de
la
Por ejemplo, si agrupamos los
superclase y le aade otros.
atributos y mtodos de las clases
cancin y pelcula, del problema
sobre el amante de la msica y el
cine, en la clase Medio y de sta
ltima hacemos que hereden las
clases
Cancion
y
Pelicula,

Como deseamos que los atributos de la superclase sean visibles dentro


de sus subclases le asignamos el modificador de acceso protegido que
en los diagramas de clase se denota con el smbolo de nmero (#).
Note, que en los diagramas de clase la herencia se representa
mediante una flecha con punta en forma de tringulo
apuntando a la superclase.
Importante
Puedes crear una clase a travs de una clase existente, y esta clase
tendr todas las variables y los mtodos de su 'superclase', y adems
se le podrn aadir otras variables y mtodos propios.

3. Polimorfismo
El tercer principio de la POO es el polimorfismo. El polimorfismo
permite que una subclase redefina el comportamiento de un
mtodo de su superclase.
Esa redefinicin o sobreescritura de mtodos se da cuando la
superclase y la subclase tienen un mtodo que tiene la misma
firma (el mismo nombre y la misma lista de parmetros) y el
mismo
(Tipoinvocamos
del valor aque
regresan),
pero difieren
en el
Si
en latipo
subclase
un mtodo
sobrescrito,
el mtodo
cuerpo
delser
mtodo.
invocado
el de la subclase ya que el mtodo de la superclase
queda oculto por su homnimo de la subclase ya que tienen el mismo
nombre. Si queremos invocar al mtodo sobrescrito de la superclase
podemos super.nomMetodoSuperClase(lista
hacerlo usando la siguiente
sintaxis:
de argumentos)
El Polimorfismo no es otra cosa que la posibilidad de construir
varios mtodos con el mismo nombre, pero con relacin a la
clase a la que pertenece cada uno, con comportamientos
diferentes.
Esto conlleva la habilidad de enviar un mismo mensaje a
objetos de clases diferentes. Estos objetos recibiran el mismo
mensaje global pero responderan a l de formas diferentes;
Ejemplo, un mensaje "+" a un objeto ENTERO significara
suma, mientras que para un objeto STRING significara

Codificacin de Clases en Java


El cdigo de una clase en Java se almacena en un archivo con el
mismo nombre de la clase y con la extensin .java.
La sintaxis de una clase en Java es:
[package nomPaquete;]
[directivas import]
public class NomClase
{
[declaraciones de atributos]
[constructor]...
[mtodo]...
}
Donde nomPaquete es el nombre del paquete en el que se almacenar el cdigo
bytecode de la clase.
Un paquete es una carpeta o subdirectorio que contiene una o ms clases que estn
relacionadas.
Los paquetes tienen una estructura jerrquica. Esto es, un paquete puede
contener paquetes que a su vez pueden contener paquetes, etc., por lo que
nomPaquete es la trayectoria al paquete deseado.

Las directivas import permiten importar la definicin de una clase.


La sintaxis de una directiva import es:
import ruta.NomClase
Donde ruta es la secuencia de paquetes, separados por puntos,
que hay que seguir para llegar a la clase deseada NomClase.
Nomclase es el nombre de la clase.
Cada una de las declaraciones de atributos tiene la siguiente sintaxis:
[modificadorAcceso] tipo nomAtributo[,nomAtributo]...

Donde modificadorAcceso es el modificador de acceso del atributo. Los


modificadores de acceso se usan para establecer el mbito de un
identificador, es decir en qu parte de un programa puede usarse el
identificador.
Los tipos de modificadores de acceso que se pueden emplear en las declaraciones de
atributos y mtodos se muestran en la tabla
tipo es el tipo del atributo y
puede ser uno de los tipos
predefinidos (char, byte, short,
int, long, float o double) o una
clase.

Constructores
Un constructor de una clase es un mtodo al que se invoca
cuando se crea una instancia de esa clase. Realiza toda la
inicializacin
del uno
nuevo
objeto.
Se puedenecesaria
definir cero,
o ms
constructores para una clase.
Si no se define un constructor, el compilador crea uno por
ausencia, el cual no tiene parmetros.
Todos los constructores se crean por el mecanismo de
sobrecarga. Esto es, tienen el mismo nombre que es el mismo de
la clase y difieren en el nmero y tipo de parmetros.
No se especifica el tipo que regresa el constructor.
El nombre del constructor es el nombre de la clase.
La sintaxis de un constructor es:
public nomClase([lista de parmetros])
{
[declaraciones de variables locales]
sentencias
}
lista de parmetros es una lista de declaraciones de
parmetros separadas por comas (,).

Cada una de las declaraciones de parmetros tiene la siguiente sintaxis:


tipo nomParametro
Donde tipo es el tipo del parmetro y puede ser uno de los tipos predefinidos
(char, byte, short, int, long, float o double) o una clase.
nomParametro es el nombre del parmetro.
Cada una de las declaraciones de variables locales tiene la siguiente sintaxis:
tipo nomVariable[,nomVariable]...;

Donde tipo es el tipo de la variable local y puede ser uno de los tipos
predefinidos (char, byte, short, int, long, float o double) o una clase.
nomVariable es el nombre de la variable local.
Las sentencias pueden ser sentencias de expresin o simple, compuestas o
bloques y de control.

Mtodos
La sintaxis de un mtodo es:
[modificadorAcceso] tipo nomMtodo(lista de parmetros)
{
declaraciones de variables locales
sentencias
}

Donde modificadorAcceso es el modificador de acceso del mtodo, los modificadores


de acceso que pueden tener los mtodos se muestran en la tabla

tipo es el tipo del valor regresado por el mtodo y puede ser uno de los tipos
predefinidos (char, byte, short, int, long, float o double) o una clase.

nomMetodo es el nombre del mtodo.


Los parmetros, las variables locales y las sentencias de los mtodos tienen la
misma sintaxis que las de los constructores.

Parmetros
Un parmetro es un mecanismo mediante el cual un constructor o un mtodo
reciben un valor que requiere para realizar su tarea. Ese valor, llamado
argumento, le es enviado al constructor o al mtodo al invocarlos.
Por cada parmetro que tenga la definicin de un constructor o de un mtodo
deber haber un argumento en su invocacin y ese argumento deber ser del
mismo tipo que el parmetro.

Sobrecarga
En una clase podemos tener dos o ms mtodos o constructores que tengan el
mismo nombre y que se distingan por el nmero y/o tipo de sus parmetros.
En este caso se dice que los mtodos o constructores estn sobrecargados.
El cdigo de los mtodos o constructores son diferentes.

Mtodos de Acceso
Si se desea tener acceso a los atributos privados o protegidos de una clase
podemos emplear mtodos llamados de acceso. Para el atributo
tipo nomAtributo;
los mtodos:
public tipo getNomAtributo()
{
return nomAtributo;
}

nos regresa el valor del atributo y


public void setNomAtributo(tipo nomParametro)
{
nomAtributo = nomparametro;
}

permite modificar el valor del atributo.

Convenciones de Codificacin de Clases


Note que por convencin, en la codificacin de las clases:
Los nombres de los paquetes empiezan con una letra minscula.
Los nombres de las clases empiezan con una letra mayscula.
Los nombres de los atributos empiezan con una letra minscula.
Los nombres de los mtodos empiezan con una letra minscula.
En los identificadores compuestos por dos o ms palabras, las palabras siguientes a
la primera empiezan con una letra mayscula. Una alternativa es separar las
palabras con el carcter (_).
Los identificadores de los mtodos de acceso empiezan con las palabras get y set
seguidas del nombre del atributo con la primera letra de ste en maysculas.

Codificacin de SubClases en Java


La sintaxis para definir una subclase es la
siguiente:
[package nomPaquete;]
[directivas import]
public class NomClase extends NomSuperClase
{
[declaraciones de atributos]
[constructor]...
[mtodo]...
}
La palabra reservada extends establece que la clase dada por NomClase
hereda de la clase NomSuperClase.
Los atributos, constructores y mtodos declarados y definidos aqu son
propios de la subclase.
Los atributos y mtodos de la superclase tambin forman parte de la

Constructores en las Subclases


Si la superclase tiene uno o ms constructores y ninguno de ellos es el
constructor por ausencia, entonces todos los constructores de una subclase
de esa superclase deben de invocar a uno de los constructores de la
superclase y esa invocacin debe ser la primera instruccin del constructor.
Lo anterior se debe a que cuando se crea un objeto de una subclase primero
debe llamarse al constructor de la superclase.
La invocacin de uno de los constructores de la superclase tiene la siguiente
sintaxis:
super(lista de los argumentos);
La palabra reservada super es una referencia a la clase padre de la clase en
que se usa dicha palabra.

Objetos

Clase

Ejemplo de Clase y Objeto, usando la Notacin UML

CODIFICACIN DE LA CLASE EMPLEADO

S-ar putea să vă placă și