SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
POO
Programación Orientada a Objetos
Introducción
Gloria Isabel Bautista Lasprilla
bautistalasprilla.gloriaisabel@gmail.com
gloria@utbvirtual.edu.co
gbautista@unitecnologica.edu.co
• El	
  lenguaje	
  C	
  nació	
  en	
  los	
  laboratorios	
  Bell	
  de	
  AT&T	
  y	
  ha	
  sido	
  
estrechamente	
  asociado	
  con	
  el	
  sistema	
  operativo	
  UNIX,	
  ya	
  que	
  su	
  
desarrollo	
  se	
  realizó	
  en	
  este	
  sistema	
  y	
  debido	
  a	
  que	
  tanto	
  UNIX	
  como	
  el	
  
propio	
  compilador	
  C	
  y	
  casi	
  la	
  totalidad	
  de	
  los	
  programas	
  y	
  herramientas	
  de	
  
UNIX,	
  fueron	
  escritos	
  en	
  C.	
  Su	
  eficiencia	
  y	
  claridad	
  han	
  hecho	
  que	
  el	
  
lenguaje	
  ensamblador	
  apenas	
  haya	
  sido	
  utilizado	
  en	
  UNIX.
• Este	
  lenguaje	
  está	
  inspirado	
  en	
  el	
  lenguaje	
  B	
  escrito	
  por	
  Ken	
  Thompson	
  en	
  
1970	
  con	
  intención	
  de	
  re-­‐codificar	
  el	
  UNIX,	
  que	
  en	
  la	
  fase	
  de	
  arranque	
  
estaba	
  escrito	
  en	
  ensamblador,	
  en	
  vistas	
  a	
  su	
  transportabilidad a	
  otras	
  
máquinas.	
  B	
  era	
  un	
  lenguaje	
  evolucionado	
  e	
  independiente	
  de	
  la	
  máquina,	
  
inspirado	
  en	
  el	
  lenguaje	
  BCPL	
  concebido	
  por	
  Martín	
  Richard	
  en	
  1967.
HISTORIA	
  DEL	
  LENGUAJE	
  C++	
  
• En 1972, Dennis Ritchie, toma el relevo y modifica el lenguaje B, creando el
lenguaje C y reescribiendo el UNIX en dicho lenguaje. La novedad que
proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de
datos. Una de las peculiaridades de C es su riqueza de operadores. Puede
decirse que prácticamente dispone de un operador para cada una de las
posibles operaciones en código máquina.
• Este lenguaje ha evolucionado paralelamente a UNIX. Así, en 1980 se
añaden al lenguaje C, características como las clases (Tomado de
Simula67), chequeo y conversión de los tipos de argumentos de función,
etc.; el resultado fue el lenguaje denominado "C con clases".
HISTORIA	
  DEL	
  LENGUAJE	
  C++	
  
• En	
  1983/84,	
  C	
  con	
  clases	
  fue	
  rediseñado,	
  extendido	
  y	
  nuevamente	
  implementado.	
  El	
  
resultado	
  se	
  denomino:	
  Lenguaje	
  C++.	
  Después	
  de	
  algún	
  otro	
  refinamiento	
  más,	
  C++	
  
queda	
  disponible	
  en	
  1985.	
  Este	
  lenguaje	
  fue	
  inventado	
  por	
  Bjarne Stroustrup (AT&T	
  
Bell	
  Laboratories)	
  y	
  documentado	
  por	
  varios	
  libros	
  suyos.	
  El	
  nombre	
  C++	
  se	
  debe	
  a	
  
Rick	
  Mascitti,	
  significando	
  el	
  carácter	
  evolutivo	
  de	
  las	
  transformaciones	
  de	
  C	
  ('++'	
  es	
  
el	
  operador	
  de	
  incremento	
  de	
  C).	
  
• Son	
  varios	
  los	
  lenguajes	
  que	
  han	
  contribuido	
  a	
  la	
  evolución	
  de	
  los	
  lenguajes	
  
orientados	
  a	
  objetos	
  de	
  hoy:	
  LISP	
  en	
  la	
  década	
  de	
  los	
  50,	
  Simula	
  en	
  los	
  60	
  y	
  mas	
  
tarde	
  Pascal,	
  C,	
  Modula	
  y	
  Ada.	
  
• Si	
  bien,	
  estos	
  lenguajes	
  no	
  incluyen	
  mecanismos	
  para	
  la	
  programación	
  orientada	
  a	
  
objetos,	
  sus	
  características	
  sirvieron	
  de	
  base	
  para	
  la	
  construcción	
  de	
  estos	
  
mecanismos;	
  por	
  ejemplo,	
  Simula	
  contribuye	
  con	
  el	
  concepto	
  de	
  clase.	
  
HISTORIA	
  DEL	
  LENGUAJE	
  C++	
  
• En	
  la	
  década	
  de	
  los	
  70,	
  nace	
  SmallTalk como	
  un	
  lenguaje	
  orientado	
  a	
  
objetos	
  puro	
  con	
  lo	
  que	
  queda	
  introducido	
  definitivamente	
  este	
  tipo	
  de	
  
programación.	
  
• En	
  los	
  años	
  siguientes	
  los	
  avances	
  experimentados	
  en	
  la	
  programación	
  
orientada	
  a	
  objetos	
  fueron	
  pocos.	
  
• Es	
  en	
  la	
  década	
  de	
  los	
  80	
  cuando	
  los	
  avances	
  son	
  mayores,	
  debido	
  
fundamentalmente	
  a	
  la	
  disponibilidad	
  de	
  extensiones	
  orientadas	
  a	
  objetos	
  
en	
  dos	
  de	
  los	
  lenguajes	
  mas	
  populares,	
  C	
  y	
  Pascal.	
  
• Esto	
  da	
  lugar	
  a	
  la	
  aparición	
  de	
  los	
  lenguajes	
  orientados	
  a	
  objetos	
  híbridos,	
  
entre	
  los	
  que	
  se	
  destacan	
  C++	
  y	
  Pascal	
  orientado	
  a	
  objetos.	
  
• Estos	
  lenguajes	
  tienen	
  una	
  característica	
  muy	
  importante	
  y	
  es	
  que	
  guardan	
  
la	
  compatibilidad	
  con	
  sus	
  antecesores.	
  
HISTORIA	
  DEL	
  LENGUAJE	
  C++	
  
• Los	
  objetos	
  son	
  entidades	
  que	
  tratamos	
  en	
  nuestra	
  vida	
  diaria	
  y	
  el	
  
centro	
  de	
  la POO.
• Se	
  pueden	
  definir	
  como	
  la	
  representación	
  de	
  un	
  objeto	
  del	
  mundo	
  real	
  
en	
  un	
  entorno	
  de	
  programación.	
  
• Es	
  muy	
  fácil	
  identificar	
  en	
  los	
  objetos	
  del	
  mundo	
  real	
  sus	
  características	
  
principales,	
  es	
  decir	
  las	
  propiedades	
  que	
  los	
  hacen	
  diferentes	
  entre	
  si,	
  o	
  
las	
  acciones	
  que	
  puede	
  realizar.
• Es	
  precisamente	
  esta	
  la	
  labor	
  que	
  se	
  debe	
  realizar	
  en	
  la	
  POO,	
  identificar	
  
las	
  características	
  y	
  acciones	
  de	
  los	
  objetos	
  que	
  formaran	
  la	
  aplicación.	
  
OBJETOS	
  
• Identidad: Algunos objetos en la programación pueden ser una ventana,
un botón, pero aunque dos objetos sean exactamente iguales en sus
atributos, son distintos entre sí.
• Veamos en caso de los animales mamíferos, todos ellos tienen la
característica de pertenecer a este conjunto por poseer glándulas
mamarias, pero al comparar una vaca y una cabra estas son diferentes,
ya sea por el tamaño, el aspecto u otras características obvias.
• En programación, estas diferencias están marcadas por variables,
estructuras de datos, cadenas de caracteres, y a esta clase de
identificador se le denomina controlador, el cual será distinto para cada
uno de los objetos.
CARACTERISTICAS	
  
• Clasificación: Se trata de realizar una abstracción
denominada clase, esta permite la agrupación de objetos
que comparten las mismas propiedades y
comportamiento.
• No se debe olvidar que la clase es una generalización de
objeto.
CARACTERISTICAS	
  
• Encapsulación	
  y	
  ocultación	
  de	
  datos:	
  Una	
  vez	
  que	
  hemos	
  definido	
  el	
  
objeto	
  podemos	
  modelarlo.
• Este	
  modelamiento	
  del	
  objeto	
  como	
  tal	
  consiste	
  en	
  reunir	
  estados	
  y	
  
métodos	
  dentro	
  de	
  un	
  entorno	
  limitado,	
  en	
  otras	
  palabras	
  realizar	
  
encapsulación.
• Esta	
  propiedad	
  que	
  proporciona	
  el	
  modelo	
  orientado	
  a	
  objetos	
  garantiza	
  
la	
  integridad	
  de	
  los	
  datos	
  y	
  da	
  un	
  alto	
  nivel	
  de	
  seguridad	
  a	
  las	
  aplicaciones	
  
que	
  se	
  desarrollan.
• La	
  idea	
  fundamental	
  que	
  se	
  maneja	
  con	
  la	
  encapsulación	
  es	
  reunir	
  
estados	
  y	
  métodos	
  en	
  un	
  sólo	
  paquete,	
  cápsula	
  o	
  lo	
  que	
  técnicamente	
  se	
  
llamaremos	
  objeto.	
  
CARACTERISTICAS	
  
• Un	
  objeto	
  oculta	
  información	
  a	
  las	
  otras	
  clases	
  de	
  la	
  aplicación,	
  la	
  cual	
  es	
  
necesaria	
  para	
  su	
  funcionamiento	
  interno,	
  pero	
  innecesaria	
  para	
  los	
  demás	
  
objetos.	
  Hay	
  variables	
  utilizadas	
  en	
  forma	
  temporal	
  como:
• Contadores,	
  
• Variables	
  de	
  resultados	
  intermedios.
Que	
  ocuparían	
  memoria	
  o	
  interferirían	
  en	
  el	
  funcionamiento	
  del	
  resto	
  de	
  los	
  
objetos.
• Mantenibilidad:	
  Cualidad	
  que	
  indica	
  que	
  un	
  programa	
  o	
  sistema	
  debe	
  ser	
  
fácilmente	
  modificable.
• Reusabilidad:	
  Cualidad	
  que	
  nos	
  indica	
  que	
  partes	
  del	
  programa,	
  en	
  este	
  caso	
  
objetos,	
  pueden	
  ser	
  reutilizados	
  en	
  la	
  confección	
  de	
  otros	
  programas.	
  
CARACTERISTICAS	
  
• Si	
  se	
  han	
  identificado	
  ciertas	
  características	
  comunes	
  a	
  un	
  grupo	
  de	
  
objetos,	
  las	
  cuales	
  los	
  generalizan	
  en	
  su	
  apariencia	
  y	
  comportamiento	
  
encontramos	
  una	
  definición	
  de	
  tipo	
  o	
  clase	
  de	
  objetos.	
  
• Las	
  clases	
  son	
  una	
  descripción	
  abstracta	
  de	
  un	
  grupo	
  de	
  objetos	
  que	
  
comparten	
  características	
  (atributos)	
  y	
  operaciones	
  (métodos).	
  
• Ejemplo:
Cada objeto de la clase baraja es distinto, pero todos tienen una serie
de atributos comunes. Todas están identificadas por una letra o un
número, pertenecen a un grupo, etc. Y existen varias operaciones
comunes a todas ellas: pueden ser repartidas, pedidas, descartadas.
CLASES	
  
• Los	
  atributos	
  de	
  los	
  objetos	
  que	
  forman	
  las	
  clases	
  y	
  las	
  operaciones	
  que	
  
realizan	
  dependen	
  del	
  tipo	
  de	
  aplicación,	
  por	
  ejemplo	
  si	
  la	
  aplicación	
  
estuviera	
  orientada	
  a	
  la	
  fabricación	
  de	
  barajas	
  de	
  cartas,	
  los	
  atributos	
  de	
  
los	
  objetos	
  cambiarían,	
  pasando	
  a	
  ser	
  (por	
  ejemplo)	
  el	
  patrón	
  de	
  
estampación,	
  los	
  colores	
  de	
  la	
  carta,	
  etc.
• Y	
  dentro	
  de	
  las	
  operaciones	
  comunes	
  estarían	
  las	
  de	
  imprimir,	
  cortar,	
  
ordenar,	
  agrupar,	
  etc.
• Las	
  propiedades	
  de	
  una	
  clase	
  deben	
  ser	
  significativas	
  dentro	
  del	
  entorno	
  
de	
  la	
  aplicación,	
  es	
  decir	
  deben	
  ayudarnos	
  en	
  la	
  identificación	
  clara	
  y	
  
unívoca	
  de	
  cada	
  uno	
  de	
  los	
  objetos.	
  
CARACTERISTICAS	
  DE	
  CLASES	
  
//Definición de la clase
class racional
{
public:
racional(int=0, int=1);
racional suma(racional &);
racional resta(racional &);
racional multiplica(racional &);
racional divide(racional &);
void imprime();
private:
int numerador;
int denominador;
};
CLASE	
  RACIONAL	
  C++
racional::racional(int n, int d) //Constructor
{
numerador = n;
denominador = (d==0 ? 1:d);
}
void racional::imprime() //Método imprime
{
cout<<numerador<<"/"<<denominador;
}
racional racional::suma(racional &a) //Método suma
{
racional res;
res.numerador = denominador*a.numerador + numerador*a.denominador;
res.denominador = denominador*a.denominador;
return res;
}
CLASE	
  RACIONAL	
  C++
#include "racional.h"
int main() {
racional A, B(5,3), C(2,6);
A.imprime();cout<<"n";
B.imprime();cout<<"n";
C.imprime();
A = B.suma(C);
cout<<"nnLa suma es: n";
A.imprime();cout<<" = ";
B.imprime();cout<<" + ";C.imprime();
cout<<"nn";
return 0;
}
PROBANDO	
  LA	
  CLASE	
  RACIONAL	
  C++
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)Eric Martinez Aguilar
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosmichaelalta
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSAbraham Morales
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IEKaren Olan
 

La actualidad más candente (20)

Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion 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
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)
 
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
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
 
Poo
PooPoo
Poo
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 

Similar a Poo presentacion

Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosxiomaracadenag
 
Elemtos de programacion
Elemtos de programacionElemtos de programacion
Elemtos de programacionpepepaso
 
Base De Datos Orientados A Objetos
Base De Datos Orientados A ObjetosBase De Datos Orientados A Objetos
Base De Datos Orientados A ObjetosMaría Eugenia
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosNanda Moran
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosDavid Armando Frías
 
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
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Christian Castro
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosalexmoncada21
 
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1Oscar Ramos
 
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 ObjetosAlberto Blumberg
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ISILVA19_PAMELA
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objetocesar
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosCarlos Esteves
 

Similar a Poo presentacion (20)

porgramacion orientada a objetos
porgramacion orientada a objetos porgramacion orientada a objetos
porgramacion orientada a objetos
 
tarea poo s-a
tarea poo s-atarea poo s-a
tarea poo s-a
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Elemtos de programacion
Elemtos de programacionElemtos de programacion
Elemtos de programacion
 
Base De Datos Orientados A Objetos
Base De Datos Orientados A ObjetosBase De Datos Orientados A Objetos
Base De Datos Orientados A Objetos
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Introducción al POO
Introducción al POOIntroducción al POO
Introducción al POO
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Poo3
Poo3Poo3
Poo3
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos
 
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
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Aprenda c++ avanzado
Aprenda c++ avanzadoAprenda c++ avanzado
Aprenda c++ avanzado
 
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
G#1.gutierrez.quirumbay.cinthya.johanna.software ii.1
 
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
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
conceptos de la poo
conceptos de la pooconceptos de la poo
conceptos de la poo
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Más de Gloria Isabel Bautista Lasprilla (13)

Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Complejidad computacional 1
Complejidad computacional 1Complejidad computacional 1
Complejidad computacional 1
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
Complejidad computacional selección
Complejidad computacional   selecciónComplejidad computacional   selección
Complejidad computacional selección
 
El apuntador this
El apuntador this El apuntador this
El apuntador this
 
Poster - presentación
Poster - presentaciónPoster - presentación
Poster - presentación
 
Recorridos en ABB
Recorridos en ABB Recorridos en ABB
Recorridos en ABB
 
Abb árboles de búsqueda binaria
Abb árboles de búsqueda binariaAbb árboles de búsqueda binaria
Abb árboles de búsqueda binaria
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Presentacion encuentro gloria bautista
Presentacion encuentro   gloria bautistaPresentacion encuentro   gloria bautista
Presentacion encuentro gloria bautista
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicosModelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
Modelo curricular por ciclos propedéuticos, programas técnicos y tecnológicos
 
Articulación Educación Media con Superior
Articulación Educación Media con SuperiorArticulación Educación Media con Superior
Articulación Educación Media con Superior
 

Poo presentacion

  • 1. POO Programación Orientada a Objetos Introducción Gloria Isabel Bautista Lasprilla bautistalasprilla.gloriaisabel@gmail.com gloria@utbvirtual.edu.co gbautista@unitecnologica.edu.co
  • 2. • El  lenguaje  C  nació  en  los  laboratorios  Bell  de  AT&T  y  ha  sido   estrechamente  asociado  con  el  sistema  operativo  UNIX,  ya  que  su   desarrollo  se  realizó  en  este  sistema  y  debido  a  que  tanto  UNIX  como  el   propio  compilador  C  y  casi  la  totalidad  de  los  programas  y  herramientas  de   UNIX,  fueron  escritos  en  C.  Su  eficiencia  y  claridad  han  hecho  que  el   lenguaje  ensamblador  apenas  haya  sido  utilizado  en  UNIX. • Este  lenguaje  está  inspirado  en  el  lenguaje  B  escrito  por  Ken  Thompson  en   1970  con  intención  de  re-­‐codificar  el  UNIX,  que  en  la  fase  de  arranque   estaba  escrito  en  ensamblador,  en  vistas  a  su  transportabilidad a  otras   máquinas.  B  era  un  lenguaje  evolucionado  e  independiente  de  la  máquina,   inspirado  en  el  lenguaje  BCPL  concebido  por  Martín  Richard  en  1967. HISTORIA  DEL  LENGUAJE  C++  
  • 3. • En 1972, Dennis Ritchie, toma el relevo y modifica el lenguaje B, creando el lenguaje C y reescribiendo el UNIX en dicho lenguaje. La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de datos. Una de las peculiaridades de C es su riqueza de operadores. Puede decirse que prácticamente dispone de un operador para cada una de las posibles operaciones en código máquina. • Este lenguaje ha evolucionado paralelamente a UNIX. Así, en 1980 se añaden al lenguaje C, características como las clases (Tomado de Simula67), chequeo y conversión de los tipos de argumentos de función, etc.; el resultado fue el lenguaje denominado "C con clases". HISTORIA  DEL  LENGUAJE  C++  
  • 4. • En  1983/84,  C  con  clases  fue  rediseñado,  extendido  y  nuevamente  implementado.  El   resultado  se  denomino:  Lenguaje  C++.  Después  de  algún  otro  refinamiento  más,  C++   queda  disponible  en  1985.  Este  lenguaje  fue  inventado  por  Bjarne Stroustrup (AT&T   Bell  Laboratories)  y  documentado  por  varios  libros  suyos.  El  nombre  C++  se  debe  a   Rick  Mascitti,  significando  el  carácter  evolutivo  de  las  transformaciones  de  C  ('++'  es   el  operador  de  incremento  de  C).   • Son  varios  los  lenguajes  que  han  contribuido  a  la  evolución  de  los  lenguajes   orientados  a  objetos  de  hoy:  LISP  en  la  década  de  los  50,  Simula  en  los  60  y  mas   tarde  Pascal,  C,  Modula  y  Ada.   • Si  bien,  estos  lenguajes  no  incluyen  mecanismos  para  la  programación  orientada  a   objetos,  sus  características  sirvieron  de  base  para  la  construcción  de  estos   mecanismos;  por  ejemplo,  Simula  contribuye  con  el  concepto  de  clase.   HISTORIA  DEL  LENGUAJE  C++  
  • 5. • En  la  década  de  los  70,  nace  SmallTalk como  un  lenguaje  orientado  a   objetos  puro  con  lo  que  queda  introducido  definitivamente  este  tipo  de   programación.   • En  los  años  siguientes  los  avances  experimentados  en  la  programación   orientada  a  objetos  fueron  pocos.   • Es  en  la  década  de  los  80  cuando  los  avances  son  mayores,  debido   fundamentalmente  a  la  disponibilidad  de  extensiones  orientadas  a  objetos   en  dos  de  los  lenguajes  mas  populares,  C  y  Pascal.   • Esto  da  lugar  a  la  aparición  de  los  lenguajes  orientados  a  objetos  híbridos,   entre  los  que  se  destacan  C++  y  Pascal  orientado  a  objetos.   • Estos  lenguajes  tienen  una  característica  muy  importante  y  es  que  guardan   la  compatibilidad  con  sus  antecesores.   HISTORIA  DEL  LENGUAJE  C++  
  • 6. • Los  objetos  son  entidades  que  tratamos  en  nuestra  vida  diaria  y  el   centro  de  la POO. • Se  pueden  definir  como  la  representación  de  un  objeto  del  mundo  real   en  un  entorno  de  programación.   • Es  muy  fácil  identificar  en  los  objetos  del  mundo  real  sus  características   principales,  es  decir  las  propiedades  que  los  hacen  diferentes  entre  si,  o   las  acciones  que  puede  realizar. • Es  precisamente  esta  la  labor  que  se  debe  realizar  en  la  POO,  identificar   las  características  y  acciones  de  los  objetos  que  formaran  la  aplicación.   OBJETOS  
  • 7. • Identidad: Algunos objetos en la programación pueden ser una ventana, un botón, pero aunque dos objetos sean exactamente iguales en sus atributos, son distintos entre sí. • Veamos en caso de los animales mamíferos, todos ellos tienen la característica de pertenecer a este conjunto por poseer glándulas mamarias, pero al comparar una vaca y una cabra estas son diferentes, ya sea por el tamaño, el aspecto u otras características obvias. • En programación, estas diferencias están marcadas por variables, estructuras de datos, cadenas de caracteres, y a esta clase de identificador se le denomina controlador, el cual será distinto para cada uno de los objetos. CARACTERISTICAS  
  • 8. • Clasificación: Se trata de realizar una abstracción denominada clase, esta permite la agrupación de objetos que comparten las mismas propiedades y comportamiento. • No se debe olvidar que la clase es una generalización de objeto. CARACTERISTICAS  
  • 9. • Encapsulación  y  ocultación  de  datos:  Una  vez  que  hemos  definido  el   objeto  podemos  modelarlo. • Este  modelamiento  del  objeto  como  tal  consiste  en  reunir  estados  y   métodos  dentro  de  un  entorno  limitado,  en  otras  palabras  realizar   encapsulación. • Esta  propiedad  que  proporciona  el  modelo  orientado  a  objetos  garantiza   la  integridad  de  los  datos  y  da  un  alto  nivel  de  seguridad  a  las  aplicaciones   que  se  desarrollan. • La  idea  fundamental  que  se  maneja  con  la  encapsulación  es  reunir   estados  y  métodos  en  un  sólo  paquete,  cápsula  o  lo  que  técnicamente  se   llamaremos  objeto.   CARACTERISTICAS  
  • 10. • Un  objeto  oculta  información  a  las  otras  clases  de  la  aplicación,  la  cual  es   necesaria  para  su  funcionamiento  interno,  pero  innecesaria  para  los  demás   objetos.  Hay  variables  utilizadas  en  forma  temporal  como: • Contadores,   • Variables  de  resultados  intermedios. Que  ocuparían  memoria  o  interferirían  en  el  funcionamiento  del  resto  de  los   objetos. • Mantenibilidad:  Cualidad  que  indica  que  un  programa  o  sistema  debe  ser   fácilmente  modificable. • Reusabilidad:  Cualidad  que  nos  indica  que  partes  del  programa,  en  este  caso   objetos,  pueden  ser  reutilizados  en  la  confección  de  otros  programas.   CARACTERISTICAS  
  • 11. • Si  se  han  identificado  ciertas  características  comunes  a  un  grupo  de   objetos,  las  cuales  los  generalizan  en  su  apariencia  y  comportamiento   encontramos  una  definición  de  tipo  o  clase  de  objetos.   • Las  clases  son  una  descripción  abstracta  de  un  grupo  de  objetos  que   comparten  características  (atributos)  y  operaciones  (métodos).   • Ejemplo: Cada objeto de la clase baraja es distinto, pero todos tienen una serie de atributos comunes. Todas están identificadas por una letra o un número, pertenecen a un grupo, etc. Y existen varias operaciones comunes a todas ellas: pueden ser repartidas, pedidas, descartadas. CLASES  
  • 12. • Los  atributos  de  los  objetos  que  forman  las  clases  y  las  operaciones  que   realizan  dependen  del  tipo  de  aplicación,  por  ejemplo  si  la  aplicación   estuviera  orientada  a  la  fabricación  de  barajas  de  cartas,  los  atributos  de   los  objetos  cambiarían,  pasando  a  ser  (por  ejemplo)  el  patrón  de   estampación,  los  colores  de  la  carta,  etc. • Y  dentro  de  las  operaciones  comunes  estarían  las  de  imprimir,  cortar,   ordenar,  agrupar,  etc. • Las  propiedades  de  una  clase  deben  ser  significativas  dentro  del  entorno   de  la  aplicación,  es  decir  deben  ayudarnos  en  la  identificación  clara  y   unívoca  de  cada  uno  de  los  objetos.   CARACTERISTICAS  DE  CLASES  
  • 13. //Definición de la clase class racional { public: racional(int=0, int=1); racional suma(racional &); racional resta(racional &); racional multiplica(racional &); racional divide(racional &); void imprime(); private: int numerador; int denominador; }; CLASE  RACIONAL  C++
  • 14. racional::racional(int n, int d) //Constructor { numerador = n; denominador = (d==0 ? 1:d); } void racional::imprime() //Método imprime { cout<<numerador<<"/"<<denominador; } racional racional::suma(racional &a) //Método suma { racional res; res.numerador = denominador*a.numerador + numerador*a.denominador; res.denominador = denominador*a.denominador; return res; } CLASE  RACIONAL  C++
  • 15. #include "racional.h" int main() { racional A, B(5,3), C(2,6); A.imprime();cout<<"n"; B.imprime();cout<<"n"; C.imprime(); A = B.suma(C); cout<<"nnLa suma es: n"; A.imprime();cout<<" = "; B.imprime();cout<<" + ";C.imprime(); cout<<"nn"; return 0; } PROBANDO  LA  CLASE  RACIONAL  C++