Fundamentos POO

Embed Size (px)

Citation preview

  • 8/4/2019 Fundamentos POO

    1/38

    Fundamentos de Orientacina Objetos

  • 8/4/2019 Fundamentos POO

    2/38

    Introduccin

    Smula (1961...)

    Smula (1967...)

    SmallTalk (1972-...)

    C++ (1983...)

    Eiffel (1985...) Java 1 (1995...)

    60-70's 80's 90's

    Self (1986...)Modula 3 (1986...)

    ADA(1979-...)

    Ruby (1991...)

    C#(2000...)

    Booch (1991...)

    OMT (1991...) Objectory(1992...)

    OBA,MOSES,

    FUSION

    (1994...)

    RUP , POO(1999...)

    Java 2 (2002...)

    2000's

    Php(2001...)

    Punto net(2006...)

  • 8/4/2019 Fundamentos POO

    3/38

    Programacin Lineal

    Programa:

    Secuencia de instrucciones que describenla solucion

    Conjunto de instrucciones y operaciones enun solo metodo llamado Main

  • 8/4/2019 Fundamentos POO

    4/38

    Programacin Procedimiental

    Programa:

    Secuencia de instrucciones que describenla solucion

    Conjunto de llamadas a funciones

    Codigo y datos: separados, sin ningunaconeccin formal

    Codigo --> funciones Datos --> estructuras

  • 8/4/2019 Fundamentos POO

    5/38

    Programacin Orientada a Objetos

    Todo es un objeto, descrito por caracteristicasy acciones.

    Caracteristicas --> datosAcciones --> funciones que operan sobre los

    datos

    Programa:

    Conjunto de objetos que se relacionan entresi,

    Comunicandose" a traves de mensajes.

  • 8/4/2019 Fundamentos POO

    6/38

    En programacin orientada por objetosun programa es una comunidad de agentes(objetos) que interactuan entre ellos.

    Cada objeto tiene un rol en la solucindel problema

    Cada objeto provee un conjunto de

    servicios (o mtodos)Los servicios de un objeto son usados por

    otros objetos.

    Programacin Orientada a Objetos

  • 8/4/2019 Fundamentos POO

    7/38

    OO provee objetos como el principalmedio para abstraer y estructurar un

    sistema.Un objeto puede modelar entidades delmundo real, puede capturarabstracciones de fenmenos complejos,

    puede representar artefactos desoftware (pilas, grficos, ).

    Programacin Orientada a Objetos

  • 8/4/2019 Fundamentos POO

    8/38

    PROYECTO: Conjunto de paquetes, librerias,archivos, etc., que modelan un programainformtico

    PAQUETE: En Java es un contenedor de clasesque permite agrupar las distintas partes de unprograma cuya funcionalidad tienen elementoscomunes.

    Programacin Orientada a Objetos

  • 8/4/2019 Fundamentos POO

    9/38

    CLASE: Descripcin de un objeto. Consta deuna serie de mtodos y datos que resumen lascaractersticas de este objeto.

    VARIABLES: Caractersticas que aplican alobjeto para el uso del usuarioMENSAJES: Lenguaje de comunicacion entreobjetos, para poder trabajar en conjunto yconstruir as aplicaciones

    INSTANCIA: Se llama instancia a todo objetoque derive de algn otro. De esta forma, todoslos objetos son instancias de algn otro

    Programacin Orientada a Objetos

  • 8/4/2019 Fundamentos POO

    10/38

    Propiedades de la POO

    http://elvex.ugr.es/decsai/builder/intro/5.html

  • 8/4/2019 Fundamentos POO

    11/38

    Abstraccin

    Visin simplificada de una realidad Enfocarse en lo esencial.

    POO intenta abstraer lo mas importante de

    un objeto: Estado del objeto (Atributos).

    Comportamiento del objeto (Mtodos).

    Comportamientos comunes entre objetosrelacionados.

  • 8/4/2019 Fundamentos POO

    12/38

    Abstraccin

  • 8/4/2019 Fundamentos POO

    13/38

    Propiedades de los Objetos I

    Las propiedades son como las variables enprogramacin estructurada, que pueden tomar unnico valor o varios y pueden ser de un tipo o dedistintos.

    La gran diferencia con estructurada es que puedenheredarse de un objeto a otro.

    Existen 3 propiedades para los objetos:

    Encapsulacin: agrupa datos y procedimientos. Polimorfismo: un mismo nombre de procedimiento o un

    smbolo de una operacin pueden realizar varias tareas. Herencia: se pasan componentes de una clase a otra.

  • 8/4/2019 Fundamentos POO

    14/38

    Propiedades de los Objetos II

    Tenemos 2 tipos de propiedades:

    Propias: dentro del propio objeto.

    Un pequeo ejemplo de un objeto y sus propiedades: Los atributos son ( Tipo, titular y saldo) ms abajo

    estn los mtodos:

    Atributospropios

    http://www.programacion.com/bbdd/articulo/dondo_poo/

  • 8/4/2019 Fundamentos POO

    15/38

    Propiedades de los objetos III Heredadas: definidas en otro objeto

    (antepasado), se las llama propiedadesmiembro; el objeto las posee por el

    simple hecho de ser miembro de unaclase.

    Atributosheredados

    Volar

    Comer

    .....

    http://javacafesv.blogspot.com/2009/03/herencia-multiple-en-java-conveniente-o.html

  • 8/4/2019 Fundamentos POO

    16/38

    Propiedades de las clases

    Son datos especficos de una clase.

    Definidos por un nombre (sustantivos) y con los atributos(propiedades) que van a poseer (sustantivos o adjetivos).

    Deben ser nicos aunque el mismo nombre de un atributo puedeestar en distintas clases.

    Definen la estructura de una clase y la de sus objetos.

    La declaracin como pblicas significa que podr utilizarse encualquier parte del programa.

    Para acceder a un atributo hay que indicarle el nombre delobjeto al que pertenece

  • 8/4/2019 Fundamentos POO

    17/38

    Tipos de atributos

    Public visible dentro y fuera de la clase;desde todo el programa.

    Private slo accesible desde dentro de laclase.

    Protected atributo no accesible desdefuera de la clase, slo por mtodos de lapropia clase o subclases.

  • 8/4/2019 Fundamentos POO

    18/38

    Clases y ObjetosUna clase es un molde con el que se fabrican losobjetos

    F1

    V1

    V2

    F2

    F3

    F4F5

    F6F1

    V1

    V2

    F2

    F3

    F4F5

    F6

    F1

    V1

    V2

    F2

    F3

    F4F5

    F6

    F1

    V1V2

    F2

    F3

    F4F5

    F6

    F1

    V1

    V2

    F2

    F3

    F4F5

    F6

    ClaseO1

    O2

    O3O4

  • 8/4/2019 Fundamentos POO

    19/38

    Clase

    Es la plantillas que describe a un conjunto deobjeto, con los mismos

    atributos (variables)

    metodos (funciones)

    relacionesUn objeto es una instancia de una clase.Los objetos creados a partir de una clase,

    Tienen una estructura idntica, Pero identidad propia

  • 8/4/2019 Fundamentos POO

    20/38

    Clase

    Clase --> TDA

    Tipo de Dato Abstracto

    Es la definicion de un nuevo tipo de dato

    Un objeto es la variable de dicho tipo

    Ejemplo:

    Clase: Perro Objetos: Balto, Firulais, etc

  • 8/4/2019 Fundamentos POO

    21/38

    Ejemplo de Clase

    Objetos bicicletas

    Abstrados en

    Clase Bicicleta

    Atributos

    Tamao de frameTamao de llantaMaterial ...

    Mtodos

    Cambio

    MoverFrenar...

  • 8/4/2019 Fundamentos POO

    22/38

    Ejemplo de Clase

    public class Alumno

    {

    private String nombre;private String domicilio;

    public Alumno(String n, String d)

    {}

    public void setNombre (String n)

    {}public String getNombre()

    {}

    }

    UML

    Java

    Alumno

    -nombre:: String-domicilio: String

    +Alumno (n:String, d:String)+setNombre(n:String):void

    +getNombre():String

  • 8/4/2019 Fundamentos POO

    23/38

    Estructura de una Clase

  • 8/4/2019 Fundamentos POO

    24/38

    /* Alumno.java */class Alumno {

    String nombre,direccion;int edad;void setNombre(String n) {

    nombre = n;}

    String getNombre() {return nombre;

    }void setEdad(int e) {

    edad = e;}int getEdad() {

    return edad;}void setDireccion(String d) {

    direccion = d;}String getDireccion() {

    return direccion;}

    }

    Implementacin de una clase

  • 8/4/2019 Fundamentos POO

    25/38

    Instancia

    Una instancia es un objeto creado a partirde una clase.

    La clase describe la estructura de lainstancia (informacin y comportamiento),mientras que el estado actual de la instanciaes definido por las operaciones ejecutadas.

  • 8/4/2019 Fundamentos POO

    26/38

    Qu es un objeto?

    Un objeto es una abstraccin de un conjunto decosas del mundo real de tal forma que:

    Todos los elementos del conjunto (las instancias)tienen las mismas caractersticas.

    Todas las instancias estn sujetas a y conformanlas mismas reglas.

    Mundo Real Software

    Abstraccin

  • 8/4/2019 Fundamentos POO

    27/38

    Comportamiento de los objetos

    La caracterizacin del comportamientoes suficiente para disear el sistema. Elcomportamiento real del objeto puedeser implementado y refinado de acuerdocon las necesidades.

  • 8/4/2019 Fundamentos POO

    28/38

    Caractersticas: Identidad

    Clasificacin

    Herencia

    Polimorfismo

    Estas caractersticas pueden ser usadas enforma independiente, pero juntas secomplementan.

    Caracteristicas de los objetos

  • 8/4/2019 Fundamentos POO

    29/38

    Identidad

    Variable Direccin

    unCredito 10001324unDebito 54647875unaCuenta 87896545

    unaCuentadeAhorros 87020486

    Una tabla de smbolos

    caballoDoris

    Residencia de Doris

    Mi Computadora

    Una bicicleta roja

    cuenta bancaria

    antena parablica

  • 8/4/2019 Fundamentos POO

    30/38

    Clasificacin

    Vehculo

    Punto

    Figura

    Animal

    (1,3)

    (2,2)

    (2,1)

    (5,2.5)

  • 8/4/2019 Fundamentos POO

    31/38

    Instancia

    Alumno alumno3 = new Alumno(Jose Lopez, Centenario); alumno3:Alumno

    nombre = Jose Lopezdomicilio = Centenario

    alumno2:Alumno

    nombre = Abel Garcadomicilio = Los ceibos

    alumno1:Alumno

    nombre = Juan Perezdomicilio = Las Peas

    Alumno-nombre:: String-domicilio: String

    +Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String

    Creacin de instancias u objetos a partir de la clase Alumno:

    Alumno alumno1 = new Alumno(Juan Perez, Las Peas);

    Alumno alumno2 = new Alumno(Abel Garcia, Los ceibos);

  • 8/4/2019 Fundamentos POO

    32/38

    Constructor

    Mtodo especial con el mismo nombre de laclase.

    Es llamado automticamente cuando un

    objeto de una clase es creado.Se encarga inicializar las variables del objeto.

    Puede tomar argumentos pero no puedenretornar un valor.

    Se puede tener ms de un constructor en unaclase.

  • 8/4/2019 Fundamentos POO

    33/38

    Constructor

    Permite instanciar objetos de la clase

    alumno1 = new Alumno(Juan Perez, Las Peas);

    alumno2 = new Alumno(Abel Garcia, Los Ceibos);

    Alumno

    -nombre:: String

    -domicilio: String+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String

  • 8/4/2019 Fundamentos POO

    34/38

    Ejemplo de Constructor

    public class Count {

    private int count;

    public Count( ) {

    count = 0;}

    public Count (int number) {

    count = number;

    }

    }

    Count contador = new Count( );

  • 8/4/2019 Fundamentos POO

    35/38

    Relaciones entre objetos

    Tiene: a un objeto pertenecen objetosde otras clases

    Ejemplo: Un computador tiene un teclado

    Conoce: un objeto conoce datos sobreobjetos de otra clase

    Ejemplo: un estudiante conoce en que curso

    se registro

    Es un: un objeto comparte caracteristicascon otra clase

    Ejemplo: un estudiante es una persona

  • 8/4/2019 Fundamentos POO

    36/38

    Ejemplos de Objetos

    Un objeto empaqueta datos (unarepresentacin concreta) y procedimientosque operan sobre los datos.

  • 8/4/2019 Fundamentos POO

    37/38

    Ejemplos de Objetos

    Nombre

    Datos/Atributos/Campos

    Mtodos/Servicios/Interfaz

  • 8/4/2019 Fundamentos POO

    38/38

    Resumen Principios

    Todo es un objeto

    Los objetos realizan operaciones (computan) solicitando serviciosentre ellos a travs del paso de mensajes

    Todo objeto tiene su propia memoria, la cual consiste de otrosobjetos

    Todo objeto es una instancia de una clase. Una clase agrupaobjetos similares.

    En la clase se describe el comportamiento de los objetos.

    Las clases estn organizadas en una jerarqua con una nica raz,llamada la jerarqua de herencia.