If you can't read please download the document
Upload
buicong
View
222
Download
2
Embed Size (px)
Citation preview
CONCEPTOS BSICOSPROGRAMACIN ORIENTADA A OBJETOS
Ing. Martha Tello
Introduccin Cuando hacemos referencia a la programacin
orientada a objetos estamos hablando de una nuevaforma de pensar acerca del proceso de descomposicinde problemas y de desarrollo de soluciones deprogramacin.
Se trata de descomponer el problema en acciones, enverbos. Por ejemplo el verbo pedir, el verbo hallar, elverbo comprobar, el verbo calcular
Introduccin
La POO es otra forma de descomponer problemas. Este nuevo mtodo de descomposicin es la
descomposicin en objetos. Intenta simular el escenario real del problema en los
programas. En el caso de los lenguajes orientados a objetos, como
es el caso de C++ y Java, el elemento bsico no es lafuncin, sino un ente denominado precisamente objeto.
Introduccin En un problema cualquiera de la realidad podremos ver
que hay: Entidades ( agentes u objetos)
Estas entidades poseen: Un conjunto de propiedades o atributos
Un conjunto de mtodos (muestran su comportamiento) Un conjunto de interrelaciones entre las entidades, guiadas por
el intercambio de mensajes
Las entidades del problema responden a estosmensajes mediante la ejecucin de ciertas acciones
Un primer ejemplo
Imaginemos la siguiente situacin:
Un domingo por la tarde estoy en casa viendo latelevisin, y de repente mi madre siente un fuerte dolorde cabeza; como es natural, lo primero que hago estratar de encontrar una caja de aspirinas.
Un primer ejemploDescripcin del problema en clave de objetos:
El objeto hijo ha recibido un mensaje procedente del objeto madre. El objeto hijo responde al mensaje o evento ocurrido
mediante una accin: buscar aspirinas. La madre no tiene que decirle al hijo dnde debe buscar,
es responsabilidad del hijo resolver el problema como considere ms oportuno. Al objeto madre le basta con haber emitido un mensaje.
Un primer ejemplo
El hijo no encuentra aspirinas y decide acudir a lafarmacia. La farmacutica desaparece para regresar al poco
tiempo con una caja de aspirinas en la mano. El hijo paga, se despide y vuelve a su casa. All le da una aspirina a su madre, la cual al cabo de un
rato comienza a experimentar una notable mejora hastala completa desaparicin del dolor de cabeza.
Un primer ejemplo: Objetos
Hijo: responde al mensaje de la madre para conseguiruna aspirina. Para ello entra en relacin con un nuevoobjeto Farmacutica: responde al mensaje o evento de
peticin del objeto hijo con la bsqueda de la aspirina. Elobjeto farmacutica es ahora el responsable de labsqueda de la aspirina. Farmacutica: lanza un mensaje al objeto hijo
solicitando el pago del importe. Hijo: responde a tal evento con la accin de pagar.
Un primer ejemplo: ObjetosLos objetos se diferencian por: Caractersticas o propiedades Un conjunto de acciones que realizaban en respuesta a
unos eventos. Los objetos tienen propiedades distintas, como: color
del cabello, el grado de simpata o el peso. Todos tienen un conjunto de atributos en comn por ser
ejemplos de una entidad superior llamada serhumano. A este patrn de objetos (ser humano) lo llamaremos
clase
Un primer ejemplo: Objetos Se observa que los objetos son instancias o casos
concretos de las clases. Las clases no son ms que plantillas que definen las
variables y los mtodos comunes a todos los objetos deun cierto tipo. La clase ser humano tendr, entre sus muchas
variables miembro o variables que la componen:color del cabello, color de los ojos, estatura, peso, etc. A partir de una clase se podrn generar todos los
objetos que se deseen especificando valoresparticulares para cada una de las variables definidas porla clase.
Programacin OO
La programacin orientada a objetos se basa en laprogramacin de clases. Un programa se construye a partir de un conjunto de
clases. Una vez definida e implementada una clase, es
posible declarar elementos de esta clase de modosimilar a como se declaran las variables del lenguaje (delos tipos primitivos int, double, String, ). Los elementos declarados de una clase se denominan
objetos de la clase.
Concepto de Clase Una clase es una plantilla que define las variables y los
mtodos que son comunes para todos los objetos de un cierto tipo. Las plantillas para crear objetos son denominadas
clases.
La definicin de una clase se realiza en la siguiente forma:[public] class Classname {// definicin de variables y mtodos...}
Caractersticas importantes de las clases: Todas las variables y mtodos de Java deben
pertenecer a una clase. No hay variables y funcionesglobales. Si una clase deriva de otra (extends), hereda todas sus
variables y mtodos. Una clase slo puede heredar de una nica clase (en
Java no hay herencia mltiple). En un fichero no puede haber ms que una clase
public. Este fichero se debe llamar como la clase publicque contiene con extensin *.java.
Concepto de Objeto
Un objeto es un ejemplar concreto de una clase. Lasclases son como tipos de variables, mientras que losobjetos son como variables concretas de un tipodeterminado.
Un objeto es una instancia (ejemplar) de una clase. Laclase es la definicin general y el objeto es lamaterializacin concreta (en la memoria del ordenador)de una clase.
Concepto de Objeto
Los elementos declarados de una clase se denominanobjetos de la clase. De una nica clase se pueden declarar o crear
numerosos objetos. La clase es lo genrico: es el patrn o modelo para
crear objetos. Cada objeto tiene sus propias copias de las variables
miembro, con sus propios valores, en general distintosde los dems objetos de la clase.
Ejemplo: Bicicleta
Ejemplo: BicicletaUn objeto bicicleta en el mundo real tendra variables queindicaran el estado actual de la bicicleta:
Su velocidad es de 20 km/h, cadencia de pedaleo 90r.p.m y color rojo. Estas variables se conocen como variables instancia o
variables miembro porque contienen el estado de unobjeto bicicleta particular En programacin orientada a objetos, un objeto
particular se denomina una instancia.
Ejemplo: Bicicleta El objeto bicicleta podra tener mtodos para frenar,
cambiar la cadencia de pedaleo, y cambiar de marcha. Estos mtodos se denominan formalmente mtodos
instancia o mtodos miembro, ya que cambian elestado de una instancia u objeto bicicleta particular.
Creacin de un objeto
El fenmeno de crear objetos de una clase se llamainstanciacin. Los objetos se manipulan con referencias. Una referencia es una variable que apunta a un objeto. Las referencias se declaran igual que las variables de
Tipos primitivos (tipo nombre). Los objetos se crean (se instancian) con el operador de
instanciacin new.
Ejemplo: Crear un Objeto
Punto p;p = new Punto();
Se declara una referencia (p) que es de Tipo Punto. Lareferencia no apunta a ningn sitio. Se crea un objeto de Tipo Punto y se hace que la
referencia p apunte a l. Se puede hacer ambasoperaciones en la misma expresin:
Punto p = new Punto();
Ejemplo: Crear un Objeto
Datos primitivos: int i = 5;Referencias y objetos: Punto p = new Punto();p.x = 1;p.y = 3;
Concepto de Mtodo
Conjunto de instrucciones a las que se les asocia unnombre de modo que si se desea ejecutarlas, slo bastao referenciarlas a travs de dicho nombre en vez detener que escribirlas. El trmino se refiere a las porciones de cdigo
asociadas exclusivamente con una clase (mtodos declase o mtodos estticos) o con un objeto (mtodosde instancia). Los mtodos representan acciones que puede realizar
un objeto.
Concepto de Mtodo
Un bloque de cdigo que tiene un nombre
Recibe unos parmetros o argumentos (opcionalmente)
Contiene sentencias o instrucciones para realizar algo(opcionalmente)
Devuelve un valor de algn Tipo conocido(opcionalmente)
Mtodos: Sintaxis
La sintaxis global es:
Tipo_Valor_devuelto nombre_mtodo (lista_argumentos ) {
bloque_de_codigo;}
Mtodos: Sintaxis
La lista de argumentos se expresa declarando el tipo ynombre de los mismos (como en las declaraciones devariables). Si hay ms de uno se separan por comas.
int sumaEnteros ( int a, int b ) {int c = a + b;return c;
}
Uso de mtodos
Los mtodos se invocan con su nombre, y pasando lalista de argumentos entre parntesis. El conjunto se usacomo si fuera una variable del Tipo devuelto por elmtodo.
int x;x = sumaEnteros(2,3);
Mtodos: Termino void El hecho de que un mtodo devuelva o no un valor es
opcional. En caso de que devuelva un valor se declarael tipo que devuelve. Pero si no necesita ningn valor,se declara como tipo del valor devuelto, la palabrareservada void.
void haceAlgo() {. . .
} Cuando no se devuelve ningn valor, la clasula return
no es necesaria.
Concepto de Package
Es una agrupacin de clases. Existen una serie de packages incluidos en el lenguaje
( jerarqua de clases que aparece en el API de Java). El usuario puede crear sus propios packages. Lo habitual es juntar en packages las clases que estn
relacionadas. Todas las clases que formen parte de un package
deben estar en el mismo directorio.
Concepto de Package
Existen dos formas de utilizar import: para una clase ypara todo un package:
import es.ceit.jgjalon.infor2.ordenar.QuickSort.class;import es.ceit.jgjalon.infor2.ordenar.*;
Que deber