SlideShare una empresa de Scribd logo
Didier Fabián Granados Muñoz

Sesión No. 5 – La Web y la Orientación a Objetos
Septiembre 2 de 2009
Bueno… y qué es un paradigma?
           Un paradigma es un conjunto de teorías generales,
suposiciones, leyes o técnicas de que se vale una escuela de
 análisis o comunidad científica para evaluar todas las cosas.
 La Programación Orientada a Objetos es intentar llevar a un
  programa de computador una visión de un problema que sea
  lo más cercana posible a la realidad, de acuerdo al ámbito en el
  que se desarrolla el mismo.
El mundo está lleno de objetos reales, los
cuales se pueden representar como tales
en una solución computarizada.
Clase
Es el molde o plantilla con el que se puede construir
objetos. En otras palabras, es una abstracción de
objetos.




Objeto
Es cualquier cosa de la cual podamos emitir un concepto,
o descripción. En la POO, un objeto es una instancia de
una clase, llamando instanciar al hecho de producir y
completar un objeto llenando con valores sus atributos.
Los objetos no solo tienen sus características. También
tienen la capacidad de ejecutar diferentes acciones.
 Encapsulamiento.
      Público.
      Privado.
      Protegido.
 Herencia.
      Simple.
      Múltiple.
 Polimorfismo.
      Sobrecarga de métodos.
 Tipificación.
 Concurrencia.
 Persistencia.
 Entre otras…
 En UML, una clase está representada por un rectángulo con tres
  secciones.

  Nombre de la clase




  Atributos de la clase con
   su encapsulamiento y
   tipo de dato.



  Métodos de la clase, con
   su encapsulamiento y tipo
   de dato que retorna,
class System


                Automóv il




        Mazda   Chev rolet   Renault
Un taxi es un automóvil con número de operación y que trabaja para una empresa.
Asociación           Agregación       Composición




“se relaciona con”    “es parte de”    “debe tener”
 Genericidad.
 Excepciones.
 Interfaces.
 Clases abstractas.
Hay muchos lenguajes, pero solo vamos a ver lo necesario…
 La teoría que vimos en la clase pasada tiene su aplicación
   en un lenguaje de programación que sea orientado a
   objetos.
 Dependiendo del lenguaje, muchas cosas se aplican de la
  misma manera, pero hay otras que sí tienen diferencias
   extremas (especialmente la sintaxis) y que, sencillamente,
   no están.
 A continuación se hará un recorrido por la
   implementación más sencilla y común que existe en todos
   los lenguajes orientados a objetos.
 También se irán viendo palabras claves que no se han
   dicho durante el curso, y se irán explicando en su
   momento.
1.   Para crear una clase

  Se hace uso de la palabra
   clave class.
  Algunos lenguajes la
   declaran con la primera
   letra en mayúscula
   (Class).




        class Automovil
2.   Para declarar atributos

  Según la sintaxis del
   lenguaje, se llama
   primero el tipo de dato y
   luego el nombre del
   atributo.
  Y antes del tipo de dato,
   el tipo de
   encapsulamiento.


      public String color
3.   Para declarar métodos

  De igual manera que los
   atributos, se llama
   primero el tipo de dato y
   luego al método.
  Y antes del tipo de dato,
   el encapsulamiento.
  Si tiene parámetros, estos
   deben tener primero el
   tipo de dato y luego su
   nombre.


             public Motor setMotor(Motor motor)
4.   Constructor

  Un constructor es un método
     perteneciente a la clase que
     posee unas características
     especiales:
        Se llama igual que la clase.
        No devuelve nada, ni
         siquiera void.
        Pueden existir varios, pero
         siguiendo las reglas de la
         sobrecarga de funciones.
        De entre los que existan, tan
         sólo uno se ejecutará al
         crear un objeto de la clase.
        También se encapsula.
                                         public Automovil()
5.   Instanciación

  Recordar que en la clase anterior se dijo cómo se instancia una
   clase…
  Existe la palabra clave new.
  Cuando se define la instancia, ésta deberá ser tipada con la
   misma clase y luego, se debe invocar al constructor de la clase.
  Si hay sobrecarga del constructor, se debe invocar el que se
   ajuste a las necesidades del programador.


              Automovil mazda = new Automovil()
     Automovil chevrolet = new Automovil(2009, "MOR345")
6.   Invocación de atributos y métodos

  Para invocar un método de una clase, depende de su
   encapsulamiento y de que la clase haya sido instanciada, a no
   ser que dicho método sea declarado como estático.
  Normalmente se llama desde la misma variable de instancia.
  Si es estático, se llama anteponiendo el nombre de la clase y
   luego el nombre del atributo o método.

     Automovil mazda = new Automovil();
     Automovil chevrolet = new Automovil(2009, "MOR345");

     int placa = mazda.getPlaca(); // mazda es instancia
     int numeroPuertas = Automovil.numeroPuertas;
Los demás conceptos (herencia,
interfaces, asociaciones…) son
muy variables de acuerdo al
lenguaje de programación.
   Conceptos claros.
   Orientación al Objeto pura.
   Seguridad.
   Alto nivel.
   Modelo de ejecución simple.
   Sintaxis fácil de leer.
   Eliminación de la redundancia.
   Pequeño.
   De fácil transición a otros lenguajes.
   Soporte para el aseguramiento de la corrección.
   Entornos agradables.
 El Simula 67 fue considerado como el primer lenguaje de
  programación orientado a objetos.


 Fue diseñado en 1967 por Ole-Johan Dhal y Kristen Nygaard
  en el Norwegian Computing Center en Oslo.


 El nombre de Simula 67 fue acortado a Simula en 1986,
  existiendo un estándar del lenguaje desde 1987.
class POLIGONO;
virtual: procedure set_vertices
begin
      procedure dibuja begin ... end;
end POLIGONO
POLIGONO class TRIANGULO
...
end TRIANGULO
...
ref(TRIANGULO) t; ref(POLIGONO) p;
...
p :- t;
p.set_vertices;
p.dibuja;
(p qua TRIANGULO).dibuja
 Primer lenguaje creado con tecnología de objetos puros
 El origen de Smalltalk está alrededor de 1970 en la
  Universidad de Utah de la mano de Alan Kay
 Smalltalk se desarrolla en el Xerox Palo Alto Research Center
  (PARC) de la mano de Alan Kay, Adele Goldberg y Daniel
   Ingalls
 Los conceptos de Smalltalk han influido en el diseño de LPOO
   y en el aspecto y sensación de los GUI como los de Macintosh
   o Motif.
 Algunas versiones: Smalltalk 72, Smalltalk 74, Smalltalk 76,
  Smalltalk 78 y Smalltalk 80, Smalltalk/V de Digital.
 Entorno de programación: Lenguaje Smalltalk básico, colección
   de clases y el entorno real de programación.
 El estilo del lenguaje se enfatiza la ligadura dinámica y no
   realiza chequeo de tipos.
 El bloque fundamental es la clase, que contiene la descripción
   de variables y métodos.
 Los métodos contienen el código, y definen cómo responde
   un objeto a un mensaje.
 La ejecución de una rutina de un objeto se denomina en la
   terminología de Smalltalk “enviar un mensaje” al objeto, cuya
   clase encontrará la forma apropiada de manejar dicho
   mensaje.
 Todo en Smalltalk son objetos, incluyendo a las propias clases.
 El entorno de Smalltalk permite un rápido desarrollo de
  programas.
 La biblioteca de clases fue diseñada para ser extendida y
  adaptada por adición de subclases para satisfacer las
   necesidades de la aplicación.
 La arquitectura Modelo Vista Controlador (MVC) es una
   importante contribución de Smalltalk.
Concepto          Características          ¿Las implementa?
Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       Sí
                  Métodos de clase         Sí
Encapsulamiento   De variables             Privado
                  De métodos               Público
Modularidad       Tipos de módulo          Ninguno
Jerarquía         Herencia                 Simple
                  Unidades genéricas       No
                  Metaclases               Sí
Tipos             Comprobación estricta    No
                  Polimorfismo             Sí
Concurrencia      Multitarea               Indirectamente
                                           (mediante clases)
Persistencia      Objetos persistentes     No
 C++ es un lenguaje híbrido, extensión del lenguaje C.
 Fue desarrollado por Bjarne Stroustrup en los laboratorios
  AT&T.
 Las primeras versiones del lenguaje se denominaron C con
  clases, y datan de 1980.
 El nombre de C++ se debe a Rick Mascitti, quien lo bautizó de
  esta manera en el verano de 1983.
 C++ fue instalado por primera vez fuera del grupo de
  investigación del autor en julio de 1983.
 En 1987 surge la necesidad de estandarización de C++.
 Dispone de capacidades para la herencia simple y múltiple.
 Por defecto C++ tiene ligadura estática.
 Las funciones definidas como virtuales pueden beneficiarse del
  concepto de ligadura dinámica.
 C++ es estrictamente tipado, aunque admite la posibilidad de
  casting.
 No cuenta con un recolector de basura.
 La ausencia de un gestor automático de memoria por defecto,
   obliga al concepto de destructor.
 Ocultamiento de la información incluso a los descendientes.
 Cuenta con un mecanismo de acceso especial por parte de
   una clase o una función que se declare como friend.
 Soporte de manejo de excepciones.
 Soporte de genericidad mediante las plantillas.
 Permite sobrecarga de operadores.
 Sintaxis oscura, y gramática difícil de analizar.
 Lenguaje complejo, preocupado por la detección temprana de
   errores, y por la eficiencia de la ejecución, perdiendo algo de
   sencillez y de flexibilidad para el diseño.
 …
#include <iostream.h>
#include <string.h>
class Saludos {
     char *saludo;
public:
     Saludos(char *msg) {
          int longitud = strlen(msg);
          saludo = new char[longitud+1];
          strcpy(saludo, msg);
     }
     char* muestra(void) {return saludo;}
};
void main(void) {
     Saludos s1("Hola Mundo }:()");
     Saludos s2("Bye, dear friends :(((");
     cout << s1.muestra() << endl;
     cout << s2.muestra() << endl;
}
Concepto          Características          ¿Las implementa?
Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       Sí
                  Métodos de clase         Sí
Encapsulamiento   De variables             Público, Privado, Protegido
                  De métodos               Público, Privado, Protegido
Modularidad       Tipos de módulo          Fichero
Jerarquía         Herencia                 Múltiple
                  Unidades genéricas       Sí
                  Metaclases               No
Tipos             Comprobación estricta    Sí
                  Polimorfismo             Sí
Concurrencia      Multitarea               Indirectamente
                                           (mediante clases)
Persistencia      Objetos persistentes     No
 Eiffel fue desarrollado por Bertrand Meyer.
 Es un lenguaje orientado al objeto puro.
 Soporta ligadura dinámica.
 Tiene comprobación estricta de tipos.
 Admite herencia múltiple.
 Soporta clases parametrizadas.
 La gestión de memoria la lleva a cabo el entorno de
  programación.
 Eiffel proporciona una biblioteca de clases predefinidas muy
  completa.
 Eiffel cuenta con la clase como único criterio de estructuración.
 Una declaración de clase en Eiffel puede incluir una lista de
  características exportadas, una lista de clases predecesoras, y
   una lista de declaraciones de características
 Cuenta con manejo de excepciones
class STACK[T]                        empty : BOOLEAN is do
creation                                     Result := total = 0
   create                             ensure
feature {NONE}                               equal(strip(), old strip())
   elems : ARRAY[T];                  end;
feature                         ...
   max_size : INTEGER;                       pop is require
   total : INTEGER;                          not empty
   create(n : INTEGER) is                    do
   require                                        total := total -1
           n > 0                             ensure
   do                                             total = old total -1;
           !!elems.make(1,n);                not full
           max_size := n              end
   ensure                       invariant
           max_size = n;              0 <= total;
           total = 0;                 total <= max_size
   end;                         end – STACK
Concepto          Características          ¿Las implementa?

Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       No
                  Métodos de clase         No
Encapsulamiento   De variables             Público (sólo lectura), Privado,
                  De métodos               Selectivamente
                                           Público, Privado, Selectivamente
Modularidad       Tipos de módulo          Clase

Jerarquía         Herencia                 Múltiple
                  Unidades genéricas       Sí
                  Metaclases               No
Tipos             Comprobación estricta    Sí
                  Polimorfismo             Sí
Concurrencia      Multitarea               Sí (mediante clases de bibliotecas)

Persistencia      Objetos persistentes     Sí (mediante clases)
 Realizado por un equipo de
   Sun Microsystems a finales de
   1995.
 Ha recibido una especial
  atención desde los primeros
   meses de 1996.
 Es un lenguaje orientado al
   objeto puro diseñado desde
   cero, que recibe muchas
   influencias de C++.
 Soporta threads (hilos).
 Recogida de basura
  automática.
 Se le atribuyen las siguientes características
      Simple y poderoso.
      Seguro.
      Robusto.
      Interactivo.
      Independiente de la arquitectura.
      Interpretado.
      Sencillo de aprender (Hmmmmmmmmm…)
 Java produce un bytecode que será interpretado por una
  máquina virtual.
 La máquina virtual se encuentra a menudo en navegadores
  web.
 La explosión de Internet ha influido en el auge de Java.
class _saludos {
    String saludo = "";
    _saludos(String msg) {
        saludo = msg;
    }
    public void mostrar() {
        System.out.println(saludo);
    }
}


class Saludos {
    public static void main(String args[]) {
        _saludos s1 = new _saludos("Hola Mundo :)))");
        _saludos s2 = new _saludos("Adios amigos :((");
        s1.mostrar();
        s2.mostrar();
    }
}
Concepto          Características          ¿Las implementa?
Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       Sí
                  Métodos de clase         Sí
Encapsulamiento   De variables             Público, Privado, Protegido
                  De métodos               Público, Privado, Protegido
Modularidad       Tipos de módulo          Fichero
Jerarquía         Herencia                 Simple
                  Unidades genéricas       No
                  Metaclases               No
Tipos             Comprobación estricta    Sí
                  Polimorfismo             Sí
Concurrencia      Multitarea               Indirectamente
                                           (mediante clases)
Persistencia      Objetos persistentes     EJB
Bueno… y entonces…
 La programación dinámica en la
  Web se inició con la incrustación del
  código del lenguaje seleccionado
  dentro del código HTML.
 Dada la evolución del modelo y la
  arquitectura de las aplicaciones, se
  optó por separar la capa de lógica
  de la capa de presentación.
 También han surgido diferentes
  frameworks que han permitido
  extender el concepto de reutilización
  de código.
Un framework, en el desarrollo de software, es una estructura
         de soporte definida, mediante la cual otro proyecto de software
 La programación dinámica en la
         puede ser organizado y desarrollado. Típicamente, puede incluir
  Web sesoporte de programas, bibliotecasdel lenguaje interpretado
          inició con la incrustación y un
         entre otros software para ayudar a desarrollar y unir los
  código diferentes componentes de un proyecto.
         del lenguaje seleccionado
  dentro del código HTML.
         Representa una arquitectura de software que modela las
 Dada larelaciones generales de las entidades del dominio. Provee una
          evolución del modelo y la
         estructura y una metodología de trabajo la cual extiende o
  arquitectura las aplicaciones del dominio.
         utiliza
                 de las aplicaciones, se
   optó por separar la capa de lógica
   de la capa de presentación.
 También han surgido diferentes
   frameworks que han permitido
   extender el concepto de reutilización
   de código.
Y hablaremos entonces de…




           PHP              C#
   Siglas de Hypertext Preprocessor.
   Originalmente diseñado en Perl.
   Totalmente orientado a la Web.
   Inicialmente era un lenguaje procedural.
   Desde la versión 4.2.x comenzó su propia implementación de POO,
    aunque se robusteció en la versión 5.x.
   Es un lenguaje interpretado.
   Siempre tiene que estar en una etiqueta.
   No cuenta con tipos de datos, es decir, cualquier variable puede ser
    declarada y puede tomar cualquier valor.
   Capacidad de conexión con la mayoría de los motores de base de
    datos que se utilizan en la actualidad. Se destaca su conectividad con
    MySQL y PostgreSQL.
   Capacidad de expandir su potencial utilizando la enorme cantidad de
    módulos (llamados ext's o extensiones).
   Posee una amplia documentación en su página oficial, entre la cual se
    destaca que todas las funciones del sistema están explicadas y
    ejemplificadas en un único archivo de ayuda.
   Es libre, por lo que se presenta como una alternativa de fácil acceso
    para todos.


                                                <?php
                                                     $saludo = "Hola";
                                                     echo $saludo;
                                                ?>
Concepto          Características          ¿Las implementa?
Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       Sí
                  Métodos de clase         Sí
Encapsulamiento   De variables             Público, Privado, Protegido
                  De métodos               Público, Privado, Protegido
Modularidad       Tipos de módulo          Fichero
Jerarquía         Herencia                 Simple
                  Unidades genéricas       No
                  Metaclases               No
Tipos             Comprobación estricta    Sí
                  Polimorfismo             No
Concurrencia      Multitarea               Indirectamente
                                           (mediante clases)
Persistencia      Objetos persistentes     No
 Su sintaxis básica deriva de C/C++.
 A diferencia de PHP, es compilado.
 Utiliza el modelo de objetos de la plataforma .NET (o dicho de
   otra manera, .NET Framework), el cual es similar al de Java,
   aunque incluye mejoras derivadas de otros lenguajes (entre
   ellos Delphi).
 Aunque forma parte de la plataforma.NET, C# es un lenguaje
   de programación independiente diseñado para generar
   programas sobre dicha plataforma.
 Una variable de objeto de cierta clase no almacena los valores
  del objeto sino su referencia (al igual que Java).
 El operador de asignación no copia los valores de un objeto,
  sino su referencia a él (al igual que Java).
 Un constructor tiene el mismo nombre que su clase y es
   sintácticamente similar a un método.
 Un constructor no devuelve ningún valor.
 Al igual que los métodos, los constructores también pueden
  ser sobrecargados.
 Si no se especifica un constructor en una clase, se usa uno por
  defecto que consiste en asignar a todas las variables el valor
   de 0, null o false según corresponda.
 Para crear un nuevo objeto se utiliza la siguiente sintaxis:
   variable = new nombre_clase();.
 Un destructor se declara como un constructor, aunque va
   precedido por el signo ~.
 Se emplea una desasignación de memoria de objetos no
   referenciados (recolección de basura), y cuando esto ocurre se
   ejecuta el destructor de dicha clase.
 El destructor de una clase no se llama cuando un objeto sale
  del ámbito.
 Todos los destructores se llamarán antes de que finalice un
  programa.
 La palabra clave this es un apuntador al mismo objeto en el
  cual se usa.
 La palabra clave static hace que un miembro pertenezca a una
  clase en vez de pertenecer a objetos de dicha clase. Se puede
   tener acceso a dicho miembro antes de que se cree cualquier
   objeto de su clase y sin referencias a un objeto.
 Un método static no tiene una referencia this.
 Un método static puede llamar sólo a otros métodos static.
 Un método static sólo debe tener acceso directamente a
   datos static.
 Un constructor static se usa para inicializar atributos que se
   aplican a una clase en lugar de aplicarse a una instancia.
 C# permite la sobrecarga de operadores con la palabra clave
   operator.
 …
Concepto          Características          ¿Las implementa?
Abstracción       Variables de instancia   Sí
                  Métodos de instancia     Sí
                  Variables de clase       Sí
                  Métodos de clase         Sí
Encapsulamiento   De variables             Público, Privado, Protegido
                  De métodos               Público, Privado, Protegido
Modularidad       Tipos de módulo          Fichero
Jerarquía         Herencia                 Simple
                  Unidades genéricas       No
                  Metaclases               No
Tipos             Comprobación estricta    Sí
                  Polimorfismo             Sí
Concurrencia      Multitarea               Indirectamente
                                           (mediante clases)
Persistencia      Objetos persistentes     Sí (Web Forms)
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web

Más contenido relacionado

La actualidad más candente

POO
POOPOO
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
Renny Centeno
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
Karlytoz_36
 
Cuestionario
CuestionarioCuestionario
Cuestionario
Leonardo Moctezuma
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
pixeleante
 
Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1
Gustavo Alejandro Galindo Rosales
 
Intro Java
Intro JavaIntro Java
Intro Java
Stefano Salvatori
 
Java.akbc
Java.akbcJava.akbc
Java.akbc
aurixk
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - librotaninof
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Origen de la programacion orientada a objetos
Origen de la programacion orientada a objetosOrigen de la programacion orientada a objetos
Origen de la programacion orientada a objetos
diego22reyes
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSJonathan Hidalgo Nolasco
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamientograchika
 
POO
POOPOO
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
gueritamala
 
S2-Representación Gráfica
S2-Representación GráficaS2-Representación Gráfica
S2-Representación Gráfica
Luis Fernando Aguas Bucheli
 
Grupo 6 - clases
Grupo 6  - clasesGrupo 6  - clases
Grupo 6 - clases
zeta2015
 
Curso Java Inicial 1 POO
Curso Java Inicial   1 POOCurso Java Inicial   1 POO
Curso Java Inicial 1 POO
Emilio Aviles Avila
 

La actualidad más candente (20)

POO
POOPOO
POO
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
 
Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Java.akbc
Java.akbcJava.akbc
Java.akbc
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - libro
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Origen de la programacion orientada a objetos
Origen de la programacion orientada a objetosOrigen de la programacion orientada a objetos
Origen de la programacion orientada a objetos
 
Diapositivas de la poo
Diapositivas de la pooDiapositivas de la poo
Diapositivas de la poo
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
 
POO
POOPOO
POO
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
S2-Representación Gráfica
S2-Representación GráficaS2-Representación Gráfica
S2-Representación Gráfica
 
Grupo 6 - clases
Grupo 6  - clasesGrupo 6  - clases
Grupo 6 - clases
 
Curso Java Inicial 1 POO
Curso Java Inicial   1 POOCurso Java Inicial   1 POO
Curso Java Inicial 1 POO
 

Destacado

Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDidier Granados
 
Formularios y Validaciones
Formularios y ValidacionesFormularios y Validaciones
Formularios y Validaciones
Didier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Didier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Didier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDidier Granados
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en Cascada
Didier Granados
 
Ejercicios propuestos 4
Ejercicios propuestos 4Ejercicios propuestos 4
Ejercicios propuestos 4cristian7767
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1karlalopezbello
 
Programacion oo
Programacion ooProgramacion oo
Programacion oo
karlalopezbello
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POO
El Taller Web
 
SEO
SEOSEO
Wordpress
WordpressWordpress
Wordpress
Dinamiclerning
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
Renny Batista
 
Presentación css
Presentación cssPresentación css
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSS
Dinamiclerning
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
Renny Batista
 
Introduccion a CSS I
Introduccion a CSS IIntroduccion a CSS I
Introduccion a CSS I
Héctor Estigarribia
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSS
Ramón RS
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
Renny Batista
 
Introduccion Css
Introduccion CssIntroduccion Css
Introduccion Css
Alf Chee
 

Destacado (20)

Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
 
Formularios y Validaciones
Formularios y ValidacionesFormularios y Validaciones
Formularios y Validaciones
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en Cascada
 
Ejercicios propuestos 4
Ejercicios propuestos 4Ejercicios propuestos 4
Ejercicios propuestos 4
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1
 
Programacion oo
Programacion ooProgramacion oo
Programacion oo
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POO
 
SEO
SEOSEO
SEO
 
Wordpress
WordpressWordpress
Wordpress
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Presentación css
Presentación cssPresentación css
Presentación css
 
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSS
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Introduccion a CSS I
Introduccion a CSS IIntroduccion a CSS I
Introduccion a CSS I
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSS
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Introduccion Css
Introduccion CssIntroduccion Css
Introduccion Css
 

Similar a Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web

Paradigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a ObjetosParadigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a Objetos
Alberto Blumberg
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
Jose Antonio
 
Historia java ruben
Historia java rubenHistoria java ruben
Historia java ruben
coruniversitec
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguezcoruniversitec
 
Cuestionario
CuestionarioCuestionario
Cuestionario
Jose Nava
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
Jonathan Macías
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Sergio Sanchez
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Presentacion progra
Presentacion prograPresentacion progra
Presentacion progra
zeta2015
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
Elizabeth Reyna
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
Ana Ruth G H
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
jhordy2000
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
Jyoc X
 
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
Baltasar García Perez-Schofield
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
SILVA19_PAMELA
 

Similar a Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web (20)

Paradigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a ObjetosParadigma de Programación Orientado a Objetos
Paradigma de Programación Orientado a Objetos
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
Historia java ruben
Historia java rubenHistoria java ruben
Historia java ruben
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Presentacion progra
Presentacion prograPresentacion progra
Presentacion progra
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
Curso de doctorado Tecnología de Objetos: Implementación de lenguajes orienta...
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
conceptos de la poo
conceptos de la pooconceptos de la poo
conceptos de la poo
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 

Último

Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 

Último (20)

Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 

Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes POO y la Web

  • 1. Didier Fabián Granados Muñoz Sesión No. 5 – La Web y la Orientación a Objetos Septiembre 2 de 2009
  • 2.
  • 3. Bueno… y qué es un paradigma? Un paradigma es un conjunto de teorías generales, suposiciones, leyes o técnicas de que se vale una escuela de análisis o comunidad científica para evaluar todas las cosas.
  • 4.  La Programación Orientada a Objetos es intentar llevar a un programa de computador una visión de un problema que sea lo más cercana posible a la realidad, de acuerdo al ámbito en el que se desarrolla el mismo.
  • 5. El mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.
  • 6. Clase Es el molde o plantilla con el que se puede construir objetos. En otras palabras, es una abstracción de objetos. Objeto Es cualquier cosa de la cual podamos emitir un concepto, o descripción. En la POO, un objeto es una instancia de una clase, llamando instanciar al hecho de producir y completar un objeto llenando con valores sus atributos.
  • 7. Los objetos no solo tienen sus características. También tienen la capacidad de ejecutar diferentes acciones.
  • 8.  Encapsulamiento.  Público.  Privado.  Protegido.  Herencia.  Simple.  Múltiple.  Polimorfismo.  Sobrecarga de métodos.  Tipificación.  Concurrencia.  Persistencia.  Entre otras…
  • 9.  En UML, una clase está representada por un rectángulo con tres secciones.  Nombre de la clase  Atributos de la clase con su encapsulamiento y tipo de dato.  Métodos de la clase, con su encapsulamiento y tipo de dato que retorna,
  • 10. class System Automóv il Mazda Chev rolet Renault
  • 11. Un taxi es un automóvil con número de operación y que trabaja para una empresa.
  • 12. Asociación Agregación Composición “se relaciona con” “es parte de” “debe tener”
  • 13.  Genericidad.  Excepciones.  Interfaces.  Clases abstractas.
  • 14.
  • 15. Hay muchos lenguajes, pero solo vamos a ver lo necesario…
  • 16.  La teoría que vimos en la clase pasada tiene su aplicación en un lenguaje de programación que sea orientado a objetos.  Dependiendo del lenguaje, muchas cosas se aplican de la misma manera, pero hay otras que sí tienen diferencias extremas (especialmente la sintaxis) y que, sencillamente, no están.  A continuación se hará un recorrido por la implementación más sencilla y común que existe en todos los lenguajes orientados a objetos.  También se irán viendo palabras claves que no se han dicho durante el curso, y se irán explicando en su momento.
  • 17. 1. Para crear una clase  Se hace uso de la palabra clave class.  Algunos lenguajes la declaran con la primera letra en mayúscula (Class). class Automovil
  • 18. 2. Para declarar atributos  Según la sintaxis del lenguaje, se llama primero el tipo de dato y luego el nombre del atributo.  Y antes del tipo de dato, el tipo de encapsulamiento. public String color
  • 19. 3. Para declarar métodos  De igual manera que los atributos, se llama primero el tipo de dato y luego al método.  Y antes del tipo de dato, el encapsulamiento.  Si tiene parámetros, estos deben tener primero el tipo de dato y luego su nombre. public Motor setMotor(Motor motor)
  • 20. 4. Constructor  Un constructor es un método perteneciente a la clase que posee unas características especiales:  Se llama igual que la clase.  No devuelve nada, ni siquiera void.  Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones.  De entre los que existan, tan sólo uno se ejecutará al crear un objeto de la clase.  También se encapsula. public Automovil()
  • 21. 5. Instanciación  Recordar que en la clase anterior se dijo cómo se instancia una clase…  Existe la palabra clave new.  Cuando se define la instancia, ésta deberá ser tipada con la misma clase y luego, se debe invocar al constructor de la clase.  Si hay sobrecarga del constructor, se debe invocar el que se ajuste a las necesidades del programador. Automovil mazda = new Automovil() Automovil chevrolet = new Automovil(2009, "MOR345")
  • 22. 6. Invocación de atributos y métodos  Para invocar un método de una clase, depende de su encapsulamiento y de que la clase haya sido instanciada, a no ser que dicho método sea declarado como estático.  Normalmente se llama desde la misma variable de instancia.  Si es estático, se llama anteponiendo el nombre de la clase y luego el nombre del atributo o método. Automovil mazda = new Automovil(); Automovil chevrolet = new Automovil(2009, "MOR345"); int placa = mazda.getPlaca(); // mazda es instancia int numeroPuertas = Automovil.numeroPuertas;
  • 23. Los demás conceptos (herencia, interfaces, asociaciones…) son muy variables de acuerdo al lenguaje de programación.
  • 24.
  • 25.
  • 26. Conceptos claros.  Orientación al Objeto pura.  Seguridad.  Alto nivel.  Modelo de ejecución simple.  Sintaxis fácil de leer.  Eliminación de la redundancia.  Pequeño.  De fácil transición a otros lenguajes.  Soporte para el aseguramiento de la corrección.  Entornos agradables.
  • 27.
  • 28.  El Simula 67 fue considerado como el primer lenguaje de programación orientado a objetos.  Fue diseñado en 1967 por Ole-Johan Dhal y Kristen Nygaard en el Norwegian Computing Center en Oslo.  El nombre de Simula 67 fue acortado a Simula en 1986, existiendo un estándar del lenguaje desde 1987.
  • 29. class POLIGONO; virtual: procedure set_vertices begin procedure dibuja begin ... end; end POLIGONO POLIGONO class TRIANGULO ... end TRIANGULO ... ref(TRIANGULO) t; ref(POLIGONO) p; ... p :- t; p.set_vertices; p.dibuja; (p qua TRIANGULO).dibuja
  • 30.  Primer lenguaje creado con tecnología de objetos puros  El origen de Smalltalk está alrededor de 1970 en la Universidad de Utah de la mano de Alan Kay  Smalltalk se desarrolla en el Xerox Palo Alto Research Center (PARC) de la mano de Alan Kay, Adele Goldberg y Daniel Ingalls  Los conceptos de Smalltalk han influido en el diseño de LPOO y en el aspecto y sensación de los GUI como los de Macintosh o Motif.  Algunas versiones: Smalltalk 72, Smalltalk 74, Smalltalk 76, Smalltalk 78 y Smalltalk 80, Smalltalk/V de Digital.
  • 31.  Entorno de programación: Lenguaje Smalltalk básico, colección de clases y el entorno real de programación.  El estilo del lenguaje se enfatiza la ligadura dinámica y no realiza chequeo de tipos.  El bloque fundamental es la clase, que contiene la descripción de variables y métodos.  Los métodos contienen el código, y definen cómo responde un objeto a un mensaje.  La ejecución de una rutina de un objeto se denomina en la terminología de Smalltalk “enviar un mensaje” al objeto, cuya clase encontrará la forma apropiada de manejar dicho mensaje.
  • 32.  Todo en Smalltalk son objetos, incluyendo a las propias clases.  El entorno de Smalltalk permite un rápido desarrollo de programas.  La biblioteca de clases fue diseñada para ser extendida y adaptada por adición de subclases para satisfacer las necesidades de la aplicación.  La arquitectura Modelo Vista Controlador (MVC) es una importante contribución de Smalltalk.
  • 33. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase Sí Métodos de clase Sí Encapsulamiento De variables Privado De métodos Público Modularidad Tipos de módulo Ninguno Jerarquía Herencia Simple Unidades genéricas No Metaclases Sí Tipos Comprobación estricta No Polimorfismo Sí Concurrencia Multitarea Indirectamente (mediante clases) Persistencia Objetos persistentes No
  • 34.  C++ es un lenguaje híbrido, extensión del lenguaje C.  Fue desarrollado por Bjarne Stroustrup en los laboratorios AT&T.  Las primeras versiones del lenguaje se denominaron C con clases, y datan de 1980.  El nombre de C++ se debe a Rick Mascitti, quien lo bautizó de esta manera en el verano de 1983.  C++ fue instalado por primera vez fuera del grupo de investigación del autor en julio de 1983.  En 1987 surge la necesidad de estandarización de C++.  Dispone de capacidades para la herencia simple y múltiple.
  • 35.  Por defecto C++ tiene ligadura estática.  Las funciones definidas como virtuales pueden beneficiarse del concepto de ligadura dinámica.  C++ es estrictamente tipado, aunque admite la posibilidad de casting.  No cuenta con un recolector de basura.  La ausencia de un gestor automático de memoria por defecto, obliga al concepto de destructor.  Ocultamiento de la información incluso a los descendientes.  Cuenta con un mecanismo de acceso especial por parte de una clase o una función que se declare como friend.  Soporte de manejo de excepciones.
  • 36.  Soporte de genericidad mediante las plantillas.  Permite sobrecarga de operadores.  Sintaxis oscura, y gramática difícil de analizar.  Lenguaje complejo, preocupado por la detección temprana de errores, y por la eficiencia de la ejecución, perdiendo algo de sencillez y de flexibilidad para el diseño.  …
  • 37. #include <iostream.h> #include <string.h> class Saludos { char *saludo; public: Saludos(char *msg) { int longitud = strlen(msg); saludo = new char[longitud+1]; strcpy(saludo, msg); } char* muestra(void) {return saludo;} }; void main(void) { Saludos s1("Hola Mundo }:()"); Saludos s2("Bye, dear friends :((("); cout << s1.muestra() << endl; cout << s2.muestra() << endl; }
  • 38. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase Sí Métodos de clase Sí Encapsulamiento De variables Público, Privado, Protegido De métodos Público, Privado, Protegido Modularidad Tipos de módulo Fichero Jerarquía Herencia Múltiple Unidades genéricas Sí Metaclases No Tipos Comprobación estricta Sí Polimorfismo Sí Concurrencia Multitarea Indirectamente (mediante clases) Persistencia Objetos persistentes No
  • 39.  Eiffel fue desarrollado por Bertrand Meyer.  Es un lenguaje orientado al objeto puro.  Soporta ligadura dinámica.  Tiene comprobación estricta de tipos.  Admite herencia múltiple.  Soporta clases parametrizadas.  La gestión de memoria la lleva a cabo el entorno de programación.  Eiffel proporciona una biblioteca de clases predefinidas muy completa.
  • 40.  Eiffel cuenta con la clase como único criterio de estructuración.  Una declaración de clase en Eiffel puede incluir una lista de características exportadas, una lista de clases predecesoras, y una lista de declaraciones de características  Cuenta con manejo de excepciones
  • 41. class STACK[T] empty : BOOLEAN is do creation Result := total = 0 create ensure feature {NONE} equal(strip(), old strip()) elems : ARRAY[T]; end; feature ... max_size : INTEGER; pop is require total : INTEGER; not empty create(n : INTEGER) is do require total := total -1 n > 0 ensure do total = old total -1; !!elems.make(1,n); not full max_size := n end ensure invariant max_size = n; 0 <= total; total = 0; total <= max_size end; end – STACK
  • 42. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase No Métodos de clase No Encapsulamiento De variables Público (sólo lectura), Privado, De métodos Selectivamente Público, Privado, Selectivamente Modularidad Tipos de módulo Clase Jerarquía Herencia Múltiple Unidades genéricas Sí Metaclases No Tipos Comprobación estricta Sí Polimorfismo Sí Concurrencia Multitarea Sí (mediante clases de bibliotecas) Persistencia Objetos persistentes Sí (mediante clases)
  • 43.  Realizado por un equipo de Sun Microsystems a finales de 1995.  Ha recibido una especial atención desde los primeros meses de 1996.  Es un lenguaje orientado al objeto puro diseñado desde cero, que recibe muchas influencias de C++.  Soporta threads (hilos).  Recogida de basura automática.
  • 44.  Se le atribuyen las siguientes características  Simple y poderoso.  Seguro.  Robusto.  Interactivo.  Independiente de la arquitectura.  Interpretado.  Sencillo de aprender (Hmmmmmmmmm…)  Java produce un bytecode que será interpretado por una máquina virtual.  La máquina virtual se encuentra a menudo en navegadores web.  La explosión de Internet ha influido en el auge de Java.
  • 45. class _saludos { String saludo = ""; _saludos(String msg) { saludo = msg; } public void mostrar() { System.out.println(saludo); } } class Saludos { public static void main(String args[]) { _saludos s1 = new _saludos("Hola Mundo :)))"); _saludos s2 = new _saludos("Adios amigos :(("); s1.mostrar(); s2.mostrar(); } }
  • 46. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase Sí Métodos de clase Sí Encapsulamiento De variables Público, Privado, Protegido De métodos Público, Privado, Protegido Modularidad Tipos de módulo Fichero Jerarquía Herencia Simple Unidades genéricas No Metaclases No Tipos Comprobación estricta Sí Polimorfismo Sí Concurrencia Multitarea Indirectamente (mediante clases) Persistencia Objetos persistentes EJB
  • 48.  La programación dinámica en la Web se inició con la incrustación del código del lenguaje seleccionado dentro del código HTML.  Dada la evolución del modelo y la arquitectura de las aplicaciones, se optó por separar la capa de lógica de la capa de presentación.  También han surgido diferentes frameworks que han permitido extender el concepto de reutilización de código.
  • 49. Un framework, en el desarrollo de software, es una estructura de soporte definida, mediante la cual otro proyecto de software  La programación dinámica en la puede ser organizado y desarrollado. Típicamente, puede incluir Web sesoporte de programas, bibliotecasdel lenguaje interpretado inició con la incrustación y un entre otros software para ayudar a desarrollar y unir los código diferentes componentes de un proyecto. del lenguaje seleccionado dentro del código HTML. Representa una arquitectura de software que modela las  Dada larelaciones generales de las entidades del dominio. Provee una evolución del modelo y la estructura y una metodología de trabajo la cual extiende o arquitectura las aplicaciones del dominio. utiliza de las aplicaciones, se optó por separar la capa de lógica de la capa de presentación.  También han surgido diferentes frameworks que han permitido extender el concepto de reutilización de código.
  • 50. Y hablaremos entonces de… PHP C#
  • 51. Siglas de Hypertext Preprocessor.  Originalmente diseñado en Perl.  Totalmente orientado a la Web.  Inicialmente era un lenguaje procedural.  Desde la versión 4.2.x comenzó su propia implementación de POO, aunque se robusteció en la versión 5.x.  Es un lenguaje interpretado.  Siempre tiene que estar en una etiqueta.  No cuenta con tipos de datos, es decir, cualquier variable puede ser declarada y puede tomar cualquier valor.
  • 52. Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad. Se destaca su conectividad con MySQL y PostgreSQL.  Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).  Posee una amplia documentación en su página oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.  Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. <?php $saludo = "Hola"; echo $saludo; ?>
  • 53. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase Sí Métodos de clase Sí Encapsulamiento De variables Público, Privado, Protegido De métodos Público, Privado, Protegido Modularidad Tipos de módulo Fichero Jerarquía Herencia Simple Unidades genéricas No Metaclases No Tipos Comprobación estricta Sí Polimorfismo No Concurrencia Multitarea Indirectamente (mediante clases) Persistencia Objetos persistentes No
  • 54.  Su sintaxis básica deriva de C/C++.  A diferencia de PHP, es compilado.  Utiliza el modelo de objetos de la plataforma .NET (o dicho de otra manera, .NET Framework), el cual es similar al de Java, aunque incluye mejoras derivadas de otros lenguajes (entre ellos Delphi).  Aunque forma parte de la plataforma.NET, C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma.  Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java).  El operador de asignación no copia los valores de un objeto, sino su referencia a él (al igual que Java).
  • 55.  Un constructor tiene el mismo nombre que su clase y es sintácticamente similar a un método.  Un constructor no devuelve ningún valor.  Al igual que los métodos, los constructores también pueden ser sobrecargados.  Si no se especifica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor de 0, null o false según corresponda.  Para crear un nuevo objeto se utiliza la siguiente sintaxis: variable = new nombre_clase();.  Un destructor se declara como un constructor, aunque va precedido por el signo ~.
  • 56.  Se emplea una desasignación de memoria de objetos no referenciados (recolección de basura), y cuando esto ocurre se ejecuta el destructor de dicha clase.  El destructor de una clase no se llama cuando un objeto sale del ámbito.  Todos los destructores se llamarán antes de que finalice un programa.  La palabra clave this es un apuntador al mismo objeto en el cual se usa.  La palabra clave static hace que un miembro pertenezca a una clase en vez de pertenecer a objetos de dicha clase. Se puede tener acceso a dicho miembro antes de que se cree cualquier objeto de su clase y sin referencias a un objeto.
  • 57.  Un método static no tiene una referencia this.  Un método static puede llamar sólo a otros métodos static.  Un método static sólo debe tener acceso directamente a datos static.  Un constructor static se usa para inicializar atributos que se aplican a una clase en lugar de aplicarse a una instancia.  C# permite la sobrecarga de operadores con la palabra clave operator.  …
  • 58. Concepto Características ¿Las implementa? Abstracción Variables de instancia Sí Métodos de instancia Sí Variables de clase Sí Métodos de clase Sí Encapsulamiento De variables Público, Privado, Protegido De métodos Público, Privado, Protegido Modularidad Tipos de módulo Fichero Jerarquía Herencia Simple Unidades genéricas No Metaclases No Tipos Comprobación estricta Sí Polimorfismo Sí Concurrencia Multitarea Indirectamente (mediante clases) Persistencia Objetos persistentes Sí (Web Forms)