CONCEPTOS BÁSICOS PROGRAMACIÓN ORIENTADA · PDF fileUn primer ejemplo: Objetos Hijo : responde al mensaje de la madre para conseguir una aspirina. Para ello entra en relación con

  • 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