SlideShare una empresa de Scribd logo
1 de 20
Programación Orientada a Objetos
Alberto Blumberg
Daniel Fernández
Javier Oshiro
Guillermo Ranucci
I.F.T.S. 4 D.E. 7 - Sistemas – 2015
Paradigmas de Programación
¿Qué es un objeto?
Los objetos son entidades que tienen ciertas características y
propiedades:
Estado: datos e información asignada al objeto.
Comportamiento: operaciones que puede realizar.
Identidad: propiedad que lo diferencia del resto.
Origen
1967 en Noruega. Lenguaje Simula 67. Estaba diseñado para
realizar simulaciones de naves.
1970+, Small Talk de Xerox (1er lenguaje puro OO)
1980, Stroustrup de AT&T Labs amplía el lenguaje C a C++
agregándole soporte a la programación orientada a objetos
convirtiéndolo en el estilo dominante
1996 surge JAVA como extensión de C++ con la idea de
aprovechar el software ya existente, utilizándolo para otros
usos diferentes a los originales sin modificar el código.
Conceptos Clase
Definición de las propiedades y
comportamiento de un tipo de objeto
Herencia
Las clases heredan los atributos y operaciones
de otra, se usan los mismos métodos y
variables públicas de la primera.
Objeto
Instancia de una clase, con sus
propiedades y métodos
Método
Proceso asociado a un objeto. Función que se
usa como variables locales de las propiedades
del objeto
Mensaje
Comunicación entre los objetos. Consisten en
una dirección, método y parámetros
Evento
Suceso en el sistema. Reacción a un
mensaje del objeto. Emisor-Receptor
Estado Interno
Variable privada, no visible para el
programador que crea la clase. Sólo alterable
por un método del mismo objeto
Características
Abstracción Capturar el comportamiento y los atributos
Encapsulamiento Aislar al objeto. Proporciona seguridad
Ocultamiento
Previene cambios en la implementación del objeto.
De esta forma otros programas que usaban este
mismo objeto no sufren alteraciones
Modularidad
Separar la aplicación en módulos o partes
independientes de la aplicación y de otros
módulos
Polimorfismo
Permite que un método pueda ser utilizado tanto
por la clase a la que pertenece como por las clases
que heredan el comportamiento
Herencia
Permite crear objetos especializados de objetos ya
existentes, compartiendo el comportamiento. Es la
transmisión de código entre las diferentes clases
Jerarquización Es el orden o clasificación de los objetos.
Puede ser por composición o por clasificación
Asociación
Relación de asociación entre clases.
Puede ser por composición o por uso.
Recolección de
Basura
Se encarga de liberar de la memoria los
objetos que quedan sin referencia
EJEMPLOS
class rectángulo {
private:
int base;
int altura;
public:
rectángulo(int b, int h) {
base =b;
altura=h;
}
float calcularArea() {
return base*altura;
}
}
EJEMPLOS
EJEMPLOS
class rectángulo {
private:
int base;
int altura;
public:
rectángulo(int b, int h)
{
base =b;
altura=h;
}
float calcularArea() {
return
base*altura;
}
}
Completando el ejemplo anterior con algunos nuevos
conceptos, definimos la clase figura con un método.
class figura {
public:
float calcularArea();
}
Defino la clase rectángulo que hereda de figura.
class rectángulo : public figura {
private:
float base;
float altura;
public:
rectángulo(float b, float h) {
base = b;
altura=h;
}
float calcularArea() {
return base*altura;
}
}
Defino la clase círculo que hereda de figura.
class círculo : public figura {
private:
float radio;
public:
círculo(float r) {
radio=r;
}
float calcularArea() {
return radio^2*3.14;
}
}
Tipos de Clases
Publica (+)
Privada (-)
Protegida (#)
¿Qué es UML?
(Unified Modeling Language)
Es el lenguaje de modelado de sistemas más conocido y
utilizado en la actualidad. Es importante remarcar que UML es
un "lenguaje de modelado" para especificar o para describir
métodos o procesos.
Se utiliza para definir un sistema, para detallar los artefactos en
el sistema y para documentar y construir.
En el primer cuadro anotamos el
nombre de la clase (si es abstracta se
escribe en cursiva, o bien se usa un
estereotipo <<abstract>> arriba del
nombre de la clase).
En la segunda parte van los atributos (o
variables de instancia, las variables de
clase van en subrayado).
En el último cuadro escribimos las
operaciones (qué mensajes que puede
entender). Lo importante no es
documentar todos los mensajes de un
objeto, sino sólo los más relevantes.
Impacto del P.O.O.
Reusabilidad de código: Hasta el momento para poder
reutilizar código se tenía que usar el 100% del mismo lo que
complicaba el programa y dificultaba su mantenimiento.
Fiabilidad y mantenimiento del código: al tener librerías de
clases y habiendo asegurado que esas clases tienen verificado
su funcionamiento garantiza la fiabilidad, lo que hace que una
rutina este compuesta por unas pocas líneas de código.
Ventajas / Desventajas
Datos separados del Diseño.
Reutilización del código.
Entendimiento del programa en el
mundo real.
Fácil entendimiento de la lógica del
programa.
Código simple.
Fácil documentación y diseño del
programa.
Dinamismo en el manejo de los datos.
Facilidad en el mantenimiento y
expansión.
Complejidad para adaptarse.
Mayor cantidad de código (aunque a
la larga no, por la reutilización).
No todos los programas pueden ser
modelados con exactitud por el
modelo de objetos.
Los objetos a menudo requieren una
extensa documentación.
Ventajas Desventajas
Algunos lenguajes orientados a obj.
ABAP1
ABL2
ActionScript
ActionScript 3
Ada
C++
C Sharp (C#)
Clarion
Object Pascal (Emb. Delphi)
Gambas
GObject
Genie
Harbour
Eiffel
Fortran 90/95
Java
JavaScript4
Lexico5
Objective-C
Ocaml
Oz
R
Pauscal (en español)
Perl6 7
PHP8
PowerBuilder
Python
Ruby
Self
Smalltalk9
Magik (SmallWorld)
Vala
VB.NET
Visual FoxPro10
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
DRP
Scala11 12
C++ / Arduino
Arduino nació en el Instituto Italiano de Diseño Interactivo
Ivrea en el año 2005, una escuela donde los estudiantes
sumaban sus experimentos en la interacción con dispositivos,
muchos de ellos basados en microcontroladores. .
¿Qué es Arduino? es una herramienta para hacer que los
ordenadores puedan sentir y controlar el mundo físico a través
de un ordenador personal. Es una plataforma de desarrollo de
computación física (physical computing) de código abierto,
basada en una placa con un sencillo microcontrolador y un
entorno de desarrollo para crear software (programas) para la
placa.
Se puede usar Arduino para
Crear objetos interactivos
Lectura de sensores
Estado de interruptores
Controles de iluminación
Control de motores DC
Motores paso a paso
Se puede ejecutar en forma
autónoma
Se puede comunicar con otro
software VisualStudio
Es de código abierto
Se puede descargar en forma
gratuita
Es legal utilizarlo en cualquier
proyecto no comercial
Funciones SETUP y LOOP
void setup ( )
{
// única ejecución
}
void loop ( )
{
// ejecución eterna
}
Importar Librería
#include <SD.h>
void setup ( )
{
// única ejecución
}
void loop ( )
{
// ejecución eterna
}
¡GRACIAS!
Alberto Blumberg
Daniel Fernández
Javier Oshiro
Guillermo Ranucci

Más contenido relacionado

La actualidad más candente

Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
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
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonwozgeass
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeIntJerry
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.nayis2010
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacionjosebrandon24
 
Programación Modular
Programación ModularProgramación Modular
Programación Modularlisbeca
 
Ventajas y Desventajas de la POO
Ventajas y Desventajas de la POOVentajas y Desventajas de la POO
Ventajas y Desventajas de la POOjoelyar
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAgapito26
 

La actualidad más candente (20)

Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
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)
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Pilares de las poo
Pilares de las pooPilares de las poo
Pilares de las poo
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 
Programación Modular
Programación ModularProgramación Modular
Programación Modular
 
Ventajas y Desventajas de la POO
Ventajas y Desventajas de la POOVentajas y Desventajas de la POO
Ventajas y Desventajas de la POO
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 

Destacado

Consulta - Programación Lineal y Programacion Orientada A Objetos
Consulta - Programación Lineal y Programacion Orientada A ObjetosConsulta - Programación Lineal y Programacion Orientada A Objetos
Consulta - Programación Lineal y Programacion Orientada A ObjetosLuis Caiza
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
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 objetosdiego22reyes
 
Modelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación ParalelaModelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación ParalelaRicardo Montañana
 
Lenguajes Imperativos
Lenguajes ImperativosLenguajes Imperativos
Lenguajes ImperativosJohana Lima
 
Funciones en visual basic
Funciones en visual basicFunciones en visual basic
Funciones en visual basicDanny Mendoza
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formalesIsabel
 
Programacion modular
Programacion modularProgramacion modular
Programacion modularCarmen Silva
 
Teoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesTeoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesUniversidad del Valle
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Videoconferencias UTPL
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basicYesenia Bautista
 
PARADIGMA LOGICO
PARADIGMA LOGICOPARADIGMA LOGICO
PARADIGMA LOGICOFredy Olaya
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
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
 

Destacado (20)

Consulta - Programación Lineal y Programacion Orientada A Objetos
Consulta - Programación Lineal y Programacion Orientada A ObjetosConsulta - Programación Lineal y Programacion Orientada A Objetos
Consulta - Programación Lineal y Programacion Orientada A Objetos
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
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
 
Smalltalk intro I
Smalltalk intro ISmalltalk intro I
Smalltalk intro I
 
Modelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación ParalelaModelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación Paralela
 
Lenguajes Imperativos
Lenguajes ImperativosLenguajes Imperativos
Lenguajes Imperativos
 
Programacion paralelo
Programacion paraleloProgramacion paralelo
Programacion paralelo
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
Funciones en visual basic
Funciones en visual basicFunciones en visual basic
Funciones en visual basic
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Programacion modular
Programacion modularProgramacion modular
Programacion modular
 
Teoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formalesTeoria de automatas y lenguajes formales
Teoria de automatas y lenguajes formales
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 
Funciones propias de visual basic
Funciones propias de visual basicFunciones propias de visual basic
Funciones propias de visual basic
 
PARADIGMA LOGICO
PARADIGMA LOGICOPARADIGMA LOGICO
PARADIGMA LOGICO
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 
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
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Similar a Paradigma de Programación Orientado a Objetos

Mapa mconceptual (1)
Mapa mconceptual (1)Mapa mconceptual (1)
Mapa mconceptual (1)hanniaODL2017
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosNanda Moran
 
Programación orientada a objeto
Programación orientada a objetoProgramación orientada a objeto
Programación orientada a objetoHRS1993
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevjtk1
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosCarlos Esteves
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosCarlos Esteves
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosMarcelo Brocel
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjaninaplaza
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosbetshycastillo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosbetshycastillo
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ISILVA19_PAMELA
 
Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++ratasquerosaXX
 
Programacion estructurada en objetos
Programacion estructurada en objetosProgramacion estructurada en objetos
Programacion estructurada en objetosAngel Ordoñez
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Didier Granados
 
Diseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosDiseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosJosue Sarabia
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 

Similar a Paradigma de Programación Orientado a Objetos (20)

Mapa mconceptual (1)
Mapa mconceptual (1)Mapa mconceptual (1)
Mapa mconceptual (1)
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objeto
Programación orientada a objetoProgramación orientada a objeto
Programación orientada a objeto
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
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
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++
 
Programacion estructurada en objetos
Programacion estructurada en objetosProgramacion estructurada en objetos
Programacion estructurada en objetos
 
Miko
MikoMiko
Miko
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 
Diseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosDiseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetos
 
Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 

Paradigma de Programación Orientado a Objetos

  • 1. Programación Orientada a Objetos Alberto Blumberg Daniel Fernández Javier Oshiro Guillermo Ranucci I.F.T.S. 4 D.E. 7 - Sistemas – 2015 Paradigmas de Programación
  • 2. ¿Qué es un objeto? Los objetos son entidades que tienen ciertas características y propiedades: Estado: datos e información asignada al objeto. Comportamiento: operaciones que puede realizar. Identidad: propiedad que lo diferencia del resto.
  • 3. Origen 1967 en Noruega. Lenguaje Simula 67. Estaba diseñado para realizar simulaciones de naves. 1970+, Small Talk de Xerox (1er lenguaje puro OO) 1980, Stroustrup de AT&T Labs amplía el lenguaje C a C++ agregándole soporte a la programación orientada a objetos convirtiéndolo en el estilo dominante 1996 surge JAVA como extensión de C++ con la idea de aprovechar el software ya existente, utilizándolo para otros usos diferentes a los originales sin modificar el código.
  • 4. Conceptos Clase Definición de las propiedades y comportamiento de un tipo de objeto Herencia Las clases heredan los atributos y operaciones de otra, se usan los mismos métodos y variables públicas de la primera. Objeto Instancia de una clase, con sus propiedades y métodos Método Proceso asociado a un objeto. Función que se usa como variables locales de las propiedades del objeto Mensaje Comunicación entre los objetos. Consisten en una dirección, método y parámetros Evento Suceso en el sistema. Reacción a un mensaje del objeto. Emisor-Receptor Estado Interno Variable privada, no visible para el programador que crea la clase. Sólo alterable por un método del mismo objeto
  • 5. Características Abstracción Capturar el comportamiento y los atributos Encapsulamiento Aislar al objeto. Proporciona seguridad Ocultamiento Previene cambios en la implementación del objeto. De esta forma otros programas que usaban este mismo objeto no sufren alteraciones Modularidad Separar la aplicación en módulos o partes independientes de la aplicación y de otros módulos Polimorfismo Permite que un método pueda ser utilizado tanto por la clase a la que pertenece como por las clases que heredan el comportamiento Herencia Permite crear objetos especializados de objetos ya existentes, compartiendo el comportamiento. Es la transmisión de código entre las diferentes clases Jerarquización Es el orden o clasificación de los objetos. Puede ser por composición o por clasificación Asociación Relación de asociación entre clases. Puede ser por composición o por uso. Recolección de Basura Se encarga de liberar de la memoria los objetos que quedan sin referencia
  • 6. EJEMPLOS class rectángulo { private: int base; int altura; public: rectángulo(int b, int h) { base =b; altura=h; } float calcularArea() { return base*altura; } }
  • 9. class rectángulo { private: int base; int altura; public: rectángulo(int b, int h) { base =b; altura=h; } float calcularArea() { return base*altura; } } Completando el ejemplo anterior con algunos nuevos conceptos, definimos la clase figura con un método. class figura { public: float calcularArea(); } Defino la clase rectángulo que hereda de figura. class rectángulo : public figura { private: float base; float altura; public: rectángulo(float b, float h) { base = b; altura=h; } float calcularArea() { return base*altura; } } Defino la clase círculo que hereda de figura. class círculo : public figura { private: float radio; public: círculo(float r) { radio=r; } float calcularArea() { return radio^2*3.14; } }
  • 10. Tipos de Clases Publica (+) Privada (-) Protegida (#)
  • 11. ¿Qué es UML? (Unified Modeling Language) Es el lenguaje de modelado de sistemas más conocido y utilizado en la actualidad. Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir.
  • 12. En el primer cuadro anotamos el nombre de la clase (si es abstracta se escribe en cursiva, o bien se usa un estereotipo <<abstract>> arriba del nombre de la clase). En la segunda parte van los atributos (o variables de instancia, las variables de clase van en subrayado). En el último cuadro escribimos las operaciones (qué mensajes que puede entender). Lo importante no es documentar todos los mensajes de un objeto, sino sólo los más relevantes.
  • 13. Impacto del P.O.O. Reusabilidad de código: Hasta el momento para poder reutilizar código se tenía que usar el 100% del mismo lo que complicaba el programa y dificultaba su mantenimiento. Fiabilidad y mantenimiento del código: al tener librerías de clases y habiendo asegurado que esas clases tienen verificado su funcionamiento garantiza la fiabilidad, lo que hace que una rutina este compuesta por unas pocas líneas de código.
  • 14. Ventajas / Desventajas Datos separados del Diseño. Reutilización del código. Entendimiento del programa en el mundo real. Fácil entendimiento de la lógica del programa. Código simple. Fácil documentación y diseño del programa. Dinamismo en el manejo de los datos. Facilidad en el mantenimiento y expansión. Complejidad para adaptarse. Mayor cantidad de código (aunque a la larga no, por la reutilización). No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Los objetos a menudo requieren una extensa documentación. Ventajas Desventajas
  • 15. Algunos lenguajes orientados a obj. ABAP1 ABL2 ActionScript ActionScript 3 Ada C++ C Sharp (C#) Clarion Object Pascal (Emb. Delphi) Gambas GObject Genie Harbour Eiffel Fortran 90/95 Java JavaScript4 Lexico5 Objective-C Ocaml Oz R Pauscal (en español) Perl6 7 PHP8 PowerBuilder Python Ruby Self Smalltalk9 Magik (SmallWorld) Vala VB.NET Visual FoxPro10 Visual Basic 6.0 Visual DataFlex Visual Objects XBase++ DRP Scala11 12
  • 16. C++ / Arduino Arduino nació en el Instituto Italiano de Diseño Interactivo Ivrea en el año 2005, una escuela donde los estudiantes sumaban sus experimentos en la interacción con dispositivos, muchos de ellos basados en microcontroladores. . ¿Qué es Arduino? es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de un ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.
  • 17. Se puede usar Arduino para Crear objetos interactivos Lectura de sensores Estado de interruptores Controles de iluminación Control de motores DC Motores paso a paso Se puede ejecutar en forma autónoma Se puede comunicar con otro software VisualStudio Es de código abierto Se puede descargar en forma gratuita Es legal utilizarlo en cualquier proyecto no comercial
  • 18. Funciones SETUP y LOOP void setup ( ) { // única ejecución } void loop ( ) { // ejecución eterna }
  • 19. Importar Librería #include <SD.h> void setup ( ) { // única ejecución } void loop ( ) { // ejecución eterna }