Programación Orientada a Objetos

Zamantha Gonzalez Universidad Nacional Abierta
PNFSI

  Asignatura: Desarrollo de Software

  Tema 1: Programación Orientada a Objetos




Ing. Zamantha González                 Abril, 2008
Contenido
Conceptos básicos
• Clase
• Objeto o instancia
• Atributos
• Métodos
• Constructores
• Encapsulamiento
Historia: OO
•   OO (Orientación a Objetos): desarrollo y
    modelización de software que facilita la
    construcción de sistemas complejos a partir de
    componentes.
•   Se modela el mundo real tan fielmente como
    sea posible.
•   Al comparar la OO y las Tradicionales
    (Procedimentales estructuradas) hay una
    reducción de código como mínimo del 40%.
Historia: OO
•   Las 4 Propiedades más fuertes de OO son:
    – Abstracción: Vista externa del Objeto, con el fin de
      separar el Acceso a los Objetos, de su
      implementación interna.
    – Encapsulación: Propiedad que asegura que el
      contenido de la información de un objeto está oculto
      al mundo exterior.
    – Modularidad: Permite dividir una aplicación en
      partes más pequeñas llamadas módulos, tan
      independientes como sea posible.
    – Jerarquía: Ordena la Abstracción con la Herencia.
Paradigma OO
Resultado de la evolución natural de la
programación, devenido en        metodología de
programación de propósito general que simula la
forma en que el hombre trabaja y cuya idea básica
es que percibimos al mundo que nos rodea como
una variedad de objetos.
Desarrollo Tradicional Frente al OO
                Tradicional            OO

Diseño         Descendente      Ascendente
Lenguajes      Estructurados    OO
Se Centra en   Operaciones      Los Objetos Reales
Idea           Descomponer      Reflejar el mundo
Clave          una Aplicación   real mediante el
               en programas     ensamblado de
               más pequeños     clases
Ejemplo: Enviar flores a una persona
           de otra ciudad
Conceptos básicos
Un Objeto es una entidad con una estructura de
datos interna bien definida, junto a un conjunto de
acciones que describen su comportamiento. Es la
unidad básica de la POO.

Ejemplo:
María la florista
Perla la florista
José el florista
Conceptos básicos

•Un objeto o instancia es una variable concreta de
una clase con su propia copia de variables miembros.


Un objeto tiene estado, comportamiento e identidad.

• Tiene datos internos que le dan el estado.
• Tiene métodos para producir comportamiento.
• Cada objeto tiene una dirección única en memoria lo
que le da identidad.
Conceptos básicos
Mensaje: Forma de solicitar una acción a un objeto.


   Cliente                      Servidor
                Mensaje
   Emisor                       Receptor


         Objeto,                     Objeto
         Usuario,
         Aplicación
Conceptos básicos
Una clase es:
• una categoría de objetos con características
comunes.
• una plantilla que se usa para crear múltiples objetos
con características similares.

Las clases engloban las características de un
conjunto particular de objetos.

Cuando se escribe un programa en un lenguaje
orientado a objetos no se definen objetos
individuales sino clases de objetos.

Ejemplo: Florista
Conceptos básicos

• Las clases son tipos de variables o tipos de datos
  creados por el usuario.

• Se puede extender un lenguaje de programación
  adicionando nuevos tipos de datos específicos
  acorde a las necesidades del problema a resolver.

• Las clases pueden estar formadas por variables
  miembros y funciones miembros.
Implementación
// En C++
class Circulo {
};

class TCirculo {
};


Buenas Prácticas:
• Nombrar las clases utilizando la notación Camell,
comenzando o no con la letra T para indicar que es
un tipo de datos.
• Colocar la apertura de ambiente en la misma línea
o en una línea aparte.
Implementación
// Sintaxis en C++
class <nombre de la clase>
{
private: [lista de miembros]
protected: [lista de miembros]
public: [lista de miembros]
};
Conceptos básicos
Cada clase puede estar compuesta por:

• Atributos: definen el estado de la clase.
   • atributos pasivos,
   • variables miembros,
   • campos.

• Métodos: definen el comportamiento de la clase.
  • funciones miembros,
  • atributos activos,
  • operaciones,
  • comportamiento,
  • responsabilidades.
Notación UML para
 Ejemplos:                representar una clase

                               Florista
                    Nombre
 Variables Miembros Salario
                    Edad
Funciones miembros Vender flores
                    Enviar flores a otra ciudad

                            Bombillo
                    Consumo
 Variables Miembros Enceder
                    Apagar
Funciones miembros Aumentar Brillo
                    Disminuir brillo
Atributos o variables miembros
Los atributos son características, propiedades que
hacen que un objeto se diferencie del otro. Pueden
determinar apariencia, cualidades, estado, etc.

Los atributos se definen por variables.
Para cada variable se define su tipo.

En C++ es posible definir:
• Variables o atributos de clase
• Variables o atributos de objeto o de instancia
Sintaxis

//en C++
Tipo nombreAtributo;
Variables de clases
• Define un atributo para toda la clase.

• Aplica para la clase y para todas sus instancias.

• Sólo almacena una copia con independencia de la
cantidad de objetos.

• Existe aunque no se haya creado ningún objeto de
la clase.

• Debe ser definida como static.
Variables de objetos o de instancia

• Define un atributo de un objeto en particular.

• Cada instancia u objeto almacena su propia copia
de variables de objeto.

• Los atributos son por defecto de objetos o de
instancia a menos que se califiquen como static (de
clase).
Ejemplos
// en C++
class Circulo {
  static int numCirculos = 0;
  double x, y, r;
};

Las variables de clases son buenas para la
comunicación entre diferentes objetos de la clase o
para llevar un registro de información relativa a toda
la clase.

Ejemplo: el número total de círculos creados.
Ejemplos
// en C++
class Fecha {
  int d;
  int m;
  int a;
  static TDate defaultDate;
};

Buenas prácticas
Definir cada atributo en una línea independiente
aunque sean del mismo tipo.
Hace el código más legible y permite comentar mejor.
Métodos o funciones miembros
El comportamiento de una clase se implementa a
través de sus métodos o funciones miembros.

Una clase o un objeto puede llamar métodos de
otras clases para:
• Indicar a otro objeto que cambie
• Pedir a otro objeto que haga algo

Es posible definir:
• Métodos de instancia: aplican a cada objeto de la
  clase.
Métodos de clase
• Están disponibles para cualquier instancia de la
clase y para otras clases.

• No se requiere una instancia de la clase para poder
invocar a un método de clase.

• Para definir los métodos de clase hay que
anteponer a la definición del método la cláusula
static.
Tipos de funciones miembros

• Funciones (procedimientos)
• Constructores
• Destructores

En C++ todas      son   funciones,   no   existen
procedimientos.
Definiendo métodos
• Cada objeto     puede    satisfacer   sólo   ciertos
requerimientos.

• Los requerimientos que puede resolver el objeto
están definidos por su interfaz y los tipos que hay en
ella.

• Cuando se hace un requerimiento a un objeto un
método es llamado.
Definiendo métodos
La definición básica de un método cuenta de:
• Tipo de retorno (tipo de objeto o tipo primitivo)
• Nombre del método
• Lista de parámetros
• Cuerpo del método

Las tres primeras partes se conocen como interfaz o
firma del método.
Definiendo clases

En C++:
• es posible definir variables y funciones que
 no pertenezcan a una clase.
• las clases se declaran en un fichero
 <nombre>.h y se implementan sus métodos
 en un fichero <nombre>.cpp a menos que la
 función sea inline.
Ejemplo en C++
// en C++, fichero.h        // en C++, fichero.h
class Date {                class Date {
  int d;                      int d;
public:                     public:
  //por defecto es inline     int D();
  int D(){return d;}        };
};
                            //En fichero.cpp
                            inline int Date::D() {
                              return d;
                            }
                            //otra variante
                            int Date::D() {
                              return d;
                            }
Constructor
Es un tipo especial de método utilizado para crear
objetos o instancias de una clase.

Características
• Su nombre coincide con el de la clase.
• No tiene valor de retorno (ni void)
• Una clase puede tener varios constructores (ejemplo
  típico de sobrecarga de funciones), pero la lista de
  parámetros tiene que variar.
• Los constructores deben diferir en tipo y/o cantidad
  de parámetro.
Constructor
Características

• Si la clase tiene un constructor, todos los objetos de
  la clase deben ser inicializados invocándolo.
• Si el constructor tiene parámetros al invocarlo hay
  que suministrarlos.
• De no definirse un constructor para la clase, el
  compilador genera un constructor por defecto.
• El constructor por defecto, no tiene parámetros e
  inicializa cada atributo con el valor nulo por defecto.
• Si un constructor no tiene parámetros se considera
  el constructor por defecto.
Constructores en C++

• Existe un tipo especial de constructor llamado
  constructor copia, cuyo parámetro es una referencia
  a una instancia de la clase.
• El constructor copia debe copiar cada miembro de la
  clase.
• No hay constructores virtuales ya que al construir se
  debe conocer el tipo exacto del objeto.
Encapsulamiento
Es una de las propiedades de la POO que define que
el objeto debe ser una cápsula o caja negra que
encapsula su funcionamiento y estructura interna.

Sólo se ven desde afuera los miembros (la interfaz
para el caso de los métodos) con visibilidad pública.



Buenas Prácticas: los atributos deben ser privados o
protegidos y se debe acceder a ellos a través de los
métodos que pueden ser públicos.
Encapsulamiento

             INTERFAZ de la CLASE

                    CLASE
                            CLASE
                 Datos y
           Funciones Miembros
         Privadas, Protegidas y
               de Paquete

     Atributos Públicos   Métodos Públicos


instancia1                                   instancia2
Encapsulamiento
El encapsulamiento permite:

• Ocultar detalles de implementación.

• Simplificar el programa.

• Minimizar el impacto del cambio.

• Garantizar integridad de los datos.
Alcance de variables

En C++, existen variables:

•Globales
•Locales
•Variables de instancia
•Variables de clase
Alcance de variables
En C++, las clases tienen su propio ámbito.
int a = 1; // variable global

class TClase
{
  int a;
public:
  TClase(int);
};

TClase clase(5);
TClase.a; // error, trata de encontrala en el
          // ámbito de TClase y es privada.
1 de 37

Recomendados

ISO/IEC 14598 por
ISO/IEC 14598ISO/IEC 14598
ISO/IEC 14598Andrés José Sebastián Rincón González
9.2K visualizações13 slides
11 Curso de POO en java - métodos constructores y toString() por
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
34.4K visualizações13 slides
Lenguajes de Programación: Herencia, Polimorfismo Y UML por
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLenguajes de Programación: Herencia, Polimorfismo Y UML
Lenguajes de Programación: Herencia, Polimorfismo Y UMLLuis Fernando Aguas Bucheli
4.1K visualizações23 slides
Conceptos de POO (Programacion Orientada a Objetos) por
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
30.8K visualizações18 slides
Poo 3 herencia por
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
5.3K visualizações11 slides
6 Curso de POO en Java - clases y objetos por
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetosClara Patricia Avella Ibañez
9.2K visualizações17 slides

Mais conteúdo relacionado

Mais procurados

Prueba software orientado a objetos por
Prueba software orientado a objetosPrueba software orientado a objetos
Prueba software orientado a objetosIrene Quiñones Osorio
26.7K visualizações32 slides
Software caja negra y caja blanca por
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blancaStudentPc
66K visualizações14 slides
Principios diseño del software por
Principios diseño del software Principios diseño del software
Principios diseño del software Jose Patricio Bovet Derpich
17.7K visualizações108 slides
Especificaciones de Requerimientos SRS por
Especificaciones de Requerimientos SRSEspecificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRSsullinsan
516 visualizações18 slides
Patrones estructurales por
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
5.8K visualizações11 slides
Análisis y especificación de requerimientos por
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientosFranklin Parrales Bravo
531 visualizações83 slides

Mais procurados(20)

Prueba software orientado a objetos por Irene Quiñones Osorio
Prueba software orientado a objetosPrueba software orientado a objetos
Prueba software orientado a objetos
Irene Quiñones Osorio26.7K visualizações
Software caja negra y caja blanca por StudentPc
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
StudentPc66K visualizações
Especificaciones de Requerimientos SRS por sullinsan
Especificaciones de Requerimientos SRSEspecificaciones de Requerimientos SRS
Especificaciones de Requerimientos SRS
sullinsan516 visualizações
Patrones estructurales por Autentia
Patrones estructuralesPatrones estructurales
Patrones estructurales
Autentia5.8K visualizações
Análisis y especificación de requerimientos por Franklin Parrales Bravo
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientos
Franklin Parrales Bravo531 visualizações
Tecnicas y herramientas para el desarrollo de software por Reynaldo Mayz
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
Reynaldo Mayz24.9K visualizações
Cuestionario por Jose Nava
CuestionarioCuestionario
Cuestionario
Jose Nava40.7K visualizações
Atributos de calidad en el desarrollo de software por Gustavo Cuen
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
Gustavo Cuen49.4K visualizações
Como realizar una red lan básica con packet tracer por Jenny Lophezz
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracer
Jenny Lophezz33.6K visualizações
Diseño de una red lan en un laboratorio de computacion. por gera033
Diseño de una red lan en un laboratorio de computacion.Diseño de una red lan en un laboratorio de computacion.
Diseño de una red lan en un laboratorio de computacion.
gera03333.5K visualizações
PAQUETES EN JAVA por mellcv
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
mellcv1.8K visualizações
Diagrama de clases por jmachado614
Diagrama de clasesDiagrama de clases
Diagrama de clases
jmachado61422K visualizações
Modelo de desarrollo de software por Yaskelly Yedra
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
Yaskelly Yedra6.9K visualizações
Factores de calidad según mc call por clauddiaa
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
clauddiaa12.4K visualizações
Programación Orientada a Objetos - constructores y destructores por Alvaro Enrique Ruano
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
Alvaro Enrique Ruano11.7K visualizações
Estándar ieee 802 por Larry Ruiz Barcayola
Estándar ieee 802Estándar ieee 802
Estándar ieee 802
Larry Ruiz Barcayola73.6K visualizações

Destaque

Introducción a la programación orientada a objetos empleando c++ por
Introducción a la programación orientada a objetos empleando c++Introducción a la programación orientada a objetos empleando c++
Introducción a la programación orientada a objetos empleando c++Aldo Hernán Zanabria Gálvez
1.2K visualizações4 slides
Metodología de la programación orientada a objetos con c++ prev por
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
3.8K visualizações16 slides
Programación!! . . por
Programación!! . .Programación!! . .
Programación!! . .David Portillo Hernandez
8.5K visualizações20 slides
Programación orientada a objetos con c++ prev por
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
1.2K visualizações11 slides
programacion orientada a objetos por
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
16.1K visualizações53 slides
Programación Orientada a Objetos vs Programación Estructurada por
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
123.6K visualizações8 slides

Destaque(6)

Introducción a la programación orientada a objetos empleando c++ por Aldo Hernán Zanabria Gálvez
Introducción a la programación orientada a objetos empleando c++Introducción a la programación orientada a objetos empleando c++
Introducción a la programación orientada a objetos empleando c++
Aldo Hernán Zanabria Gálvez1.2K visualizações
Metodología de la programación orientada a objetos con c++ prev por jtk1
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
jtk13.8K visualizações
Programación orientada a objetos con c++ prev por jtk1
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
jtk11.2K visualizações
programacion orientada a objetos por ale8819
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
ale881916.1K visualizações
Programación Orientada a Objetos vs Programación Estructurada por Michael de la Cruz
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
Michael de la Cruz123.6K visualizações

Similar a Programación Orientada a Objetos

Poo 1 por
Poo 1Poo 1
Poo 1Yordany Pirela
1.4K visualizações92 slides
Programación Orientada a Objetos por
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosRolando Steep Quezada Martinez
2.6K visualizações26 slides
Unidad 2 ProgramacióN Orientada A Objetos (Repaso) por
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
3.4K visualizações34 slides
Action script 3_basic por
Action script 3_basicAction script 3_basic
Action script 3_basicEdna Rheiner
350 visualizações16 slides
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf por
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfMariaTeresaGarznPrez
9 visualizações16 slides
PROGRAMACION ORIENTADA A OBJETO por
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
1.3K visualizações52 slides

Similar a Programación Orientada a Objetos(20)

Poo 1 por Yordany Pirela
Poo 1Poo 1
Poo 1
Yordany Pirela1.4K visualizações
Unidad 2 ProgramacióN Orientada A Objetos (Repaso) por Sergio Sanchez
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 Sanchez3.4K visualizações
Action script 3_basic por Edna Rheiner
Action script 3_basicAction script 3_basic
Action script 3_basic
Edna Rheiner350 visualizações
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf por MariaTeresaGarznPrez
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
MariaTeresaGarznPrez9 visualizações
PROGRAMACION ORIENTADA A OBJETO por Anabel Jaramillo
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
Anabel Jaramillo1.3K visualizações
Elementos avanzados de poo por LCA
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de poo
LCA126 visualizações
Clase3 Programación Orientada a Objetos por desimartinez
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
desimartinez3.2K visualizações
Primeraclaseobjetos clases por María Luisa Velasco
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
María Luisa Velasco519 visualizações
Programación Orientada a Objetos en Java - Parte I 2015 por Renny Batista
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
Renny Batista3.4K visualizações
POO con PHP por vinceq
POO con PHPPOO con PHP
POO con PHP
vinceq41 visualizações
Primeraclaseobjetos Clases por mtemarialuisa
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
mtemarialuisa1.4K visualizações
Primeraclaseobjetos Clases por mtemarialuisa
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
mtemarialuisa1.3K visualizações
programacion orientada a objetos por jent46
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent468.3K visualizações
Conceptos básicos de programación orientada a objetos (poo) por Maria Garcia
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
Maria Garcia3.1K visualizações
manual 9 por ariannalizeeth
manual 9manual 9
manual 9
ariannalizeeth135 visualizações
MANUAL DE JAVA 3 por ariannalizeeth
MANUAL DE JAVA 3MANUAL DE JAVA 3
MANUAL DE JAVA 3
ariannalizeeth119 visualizações
Manual de java 3 por adrianyourlust1998
Manual de java 3Manual de java 3
Manual de java 3
adrianyourlust1998179 visualizações
MANUAL DE JAVA 2 por ariannalizeeth
MANUAL DE JAVA 2MANUAL DE JAVA 2
MANUAL DE JAVA 2
ariannalizeeth275 visualizações

Mais de Zamantha Gonzalez Universidad Nacional Abierta

Elementos del diseño visual por
Elementos del diseño visualElementos del diseño visual
Elementos del diseño visualZamantha Gonzalez Universidad Nacional Abierta
261 visualizações33 slides
Instructivo Autocorreccion Pruebas Objetivas UNA por
Instructivo Autocorreccion Pruebas Objetivas UNAInstructivo Autocorreccion Pruebas Objetivas UNA
Instructivo Autocorreccion Pruebas Objetivas UNAZamantha Gonzalez Universidad Nacional Abierta
1.4K visualizações22 slides
Aspectos básicos de google classroom por
Aspectos básicos de google classroomAspectos básicos de google classroom
Aspectos básicos de google classroomZamantha Gonzalez Universidad Nacional Abierta
1.1K visualizações12 slides
Lineamientos curso de iniciación 2017 1 por
Lineamientos curso de iniciación 2017 1Lineamientos curso de iniciación 2017 1
Lineamientos curso de iniciación 2017 1Zamantha Gonzalez Universidad Nacional Abierta
1.1K visualizações13 slides
Presentacion telemática educativa por
Presentacion telemática educativaPresentacion telemática educativa
Presentacion telemática educativaZamantha Gonzalez Universidad Nacional Abierta
703 visualizações5 slides

Mais de Zamantha Gonzalez Universidad Nacional Abierta(20)

Último

Meetup_Secrets_of_DW_2_Esp.pptx por
Meetup_Secrets_of_DW_2_Esp.pptxMeetup_Secrets_of_DW_2_Esp.pptx
Meetup_Secrets_of_DW_2_Esp.pptxFedericoCastellari
6 visualizações15 slides
Tecnología Periodo 2.pdf por
Tecnología Periodo 2.pdfTecnología Periodo 2.pdf
Tecnología Periodo 2.pdfJuanDavidGarcesCasta
6 visualizações20 slides
VIDEO INFORMATICA.pptx por
VIDEO INFORMATICA.pptxVIDEO INFORMATICA.pptx
VIDEO INFORMATICA.pptxhenryruidiaz
6 visualizações12 slides
Tarea15.pptx por
Tarea15.pptxTarea15.pptx
Tarea15.pptxillanlir
6 visualizações6 slides
PRESENTACION DE FC.pptx por
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptxGabrielRivas75
5 visualizações5 slides
PostCall: Encuestas telefónicas post llamada por
PostCall: Encuestas telefónicas post llamadaPostCall: Encuestas telefónicas post llamada
PostCall: Encuestas telefónicas post llamadaOpenDireito
6 visualizações15 slides

Último(20)

Meetup_Secrets_of_DW_2_Esp.pptx por FedericoCastellari
Meetup_Secrets_of_DW_2_Esp.pptxMeetup_Secrets_of_DW_2_Esp.pptx
Meetup_Secrets_of_DW_2_Esp.pptx
FedericoCastellari6 visualizações
VIDEO INFORMATICA.pptx por henryruidiaz
VIDEO INFORMATICA.pptxVIDEO INFORMATICA.pptx
VIDEO INFORMATICA.pptx
henryruidiaz6 visualizações
Tarea15.pptx por illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir6 visualizações
PRESENTACION DE FC.pptx por GabrielRivas75
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptx
GabrielRivas755 visualizações
PostCall: Encuestas telefónicas post llamada por OpenDireito
PostCall: Encuestas telefónicas post llamadaPostCall: Encuestas telefónicas post llamada
PostCall: Encuestas telefónicas post llamada
OpenDireito6 visualizações
Trabajo de tecnología.docx por DannaSofaMuoz
Trabajo de tecnología.docxTrabajo de tecnología.docx
Trabajo de tecnología.docx
DannaSofaMuoz8 visualizações
Recusos Multimedia y Wed 2.0.pptx por henryruidiaz
Recusos Multimedia  y Wed 2.0.pptxRecusos Multimedia  y Wed 2.0.pptx
Recusos Multimedia y Wed 2.0.pptx
henryruidiaz5 visualizações
proyecto_ salvando tortugas.pdf por CamilaCordoba30
proyecto_ salvando tortugas.pdfproyecto_ salvando tortugas.pdf
proyecto_ salvando tortugas.pdf
CamilaCordoba308 visualizações
Basura electronica.docx por MissPotato2
Basura electronica.docxBasura electronica.docx
Basura electronica.docx
MissPotato28 visualizações
excelavanzado1-231020003159-be608ddc.pdf por sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 visualizações
nuevo tecnologia .pdf por laurarojas788
nuevo tecnologia .pdfnuevo tecnologia .pdf
nuevo tecnologia .pdf
laurarojas7885 visualizações
electricidadyelectrnica1-230404014355-1be10cf7.docx por NyobeMahechaDvila
electricidadyelectrnica1-230404014355-1be10cf7.docxelectricidadyelectrnica1-230404014355-1be10cf7.docx
electricidadyelectrnica1-230404014355-1be10cf7.docx
NyobeMahechaDvila18 visualizações
RECURSOS EDUCATIVOS.docx por glorypagalo84
RECURSOS EDUCATIVOS.docxRECURSOS EDUCATIVOS.docx
RECURSOS EDUCATIVOS.docx
glorypagalo8410 visualizações
Tarea Práctica web de la sesión 14.pptx por illanlir
Tarea Práctica web de la sesión 14.pptxTarea Práctica web de la sesión 14.pptx
Tarea Práctica web de la sesión 14.pptx
illanlir7 visualizações
Google alternativo, para volar por corpbracat
Google alternativo, para volarGoogle alternativo, para volar
Google alternativo, para volar
corpbracat8 visualizações
Tecnologia (6).pdf por fspro99
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdf
fspro996 visualizações
Trabajo de tegnologia 10-1.pdf por SebastianOcampo34
Trabajo de tegnologia 10-1.pdfTrabajo de tegnologia 10-1.pdf
Trabajo de tegnologia 10-1.pdf
SebastianOcampo346 visualizações
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... por codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura56 visualizações
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad... por edepjuanmurillo
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
edepjuanmurillo5 visualizações

Programación Orientada a Objetos

  • 1. PNFSI Asignatura: Desarrollo de Software Tema 1: Programación Orientada a Objetos Ing. Zamantha González Abril, 2008
  • 2. Contenido Conceptos básicos • Clase • Objeto o instancia • Atributos • Métodos • Constructores • Encapsulamiento
  • 3. Historia: OO • OO (Orientación a Objetos): desarrollo y modelización de software que facilita la construcción de sistemas complejos a partir de componentes. • Se modela el mundo real tan fielmente como sea posible. • Al comparar la OO y las Tradicionales (Procedimentales estructuradas) hay una reducción de código como mínimo del 40%.
  • 4. Historia: OO • Las 4 Propiedades más fuertes de OO son: – Abstracción: Vista externa del Objeto, con el fin de separar el Acceso a los Objetos, de su implementación interna. – Encapsulación: Propiedad que asegura que el contenido de la información de un objeto está oculto al mundo exterior. – Modularidad: Permite dividir una aplicación en partes más pequeñas llamadas módulos, tan independientes como sea posible. – Jerarquía: Ordena la Abstracción con la Herencia.
  • 5. Paradigma OO Resultado de la evolución natural de la programación, devenido en metodología de programación de propósito general que simula la forma en que el hombre trabaja y cuya idea básica es que percibimos al mundo que nos rodea como una variedad de objetos.
  • 6. Desarrollo Tradicional Frente al OO Tradicional OO Diseño Descendente Ascendente Lenguajes Estructurados OO Se Centra en Operaciones Los Objetos Reales Idea Descomponer Reflejar el mundo Clave una Aplicación real mediante el en programas ensamblado de más pequeños clases
  • 7. Ejemplo: Enviar flores a una persona de otra ciudad
  • 8. Conceptos básicos Un Objeto es una entidad con una estructura de datos interna bien definida, junto a un conjunto de acciones que describen su comportamiento. Es la unidad básica de la POO. Ejemplo: María la florista Perla la florista José el florista
  • 9. Conceptos básicos •Un objeto o instancia es una variable concreta de una clase con su propia copia de variables miembros. Un objeto tiene estado, comportamiento e identidad. • Tiene datos internos que le dan el estado. • Tiene métodos para producir comportamiento. • Cada objeto tiene una dirección única en memoria lo que le da identidad.
  • 10. Conceptos básicos Mensaje: Forma de solicitar una acción a un objeto. Cliente Servidor Mensaje Emisor Receptor Objeto, Objeto Usuario, Aplicación
  • 11. Conceptos básicos Una clase es: • una categoría de objetos con características comunes. • una plantilla que se usa para crear múltiples objetos con características similares. Las clases engloban las características de un conjunto particular de objetos. Cuando se escribe un programa en un lenguaje orientado a objetos no se definen objetos individuales sino clases de objetos. Ejemplo: Florista
  • 12. Conceptos básicos • Las clases son tipos de variables o tipos de datos creados por el usuario. • Se puede extender un lenguaje de programación adicionando nuevos tipos de datos específicos acorde a las necesidades del problema a resolver. • Las clases pueden estar formadas por variables miembros y funciones miembros.
  • 13. Implementación // En C++ class Circulo { }; class TCirculo { }; Buenas Prácticas: • Nombrar las clases utilizando la notación Camell, comenzando o no con la letra T para indicar que es un tipo de datos. • Colocar la apertura de ambiente en la misma línea o en una línea aparte.
  • 14. Implementación // Sintaxis en C++ class <nombre de la clase> { private: [lista de miembros] protected: [lista de miembros] public: [lista de miembros] };
  • 15. Conceptos básicos Cada clase puede estar compuesta por: • Atributos: definen el estado de la clase. • atributos pasivos, • variables miembros, • campos. • Métodos: definen el comportamiento de la clase. • funciones miembros, • atributos activos, • operaciones, • comportamiento, • responsabilidades.
  • 16. Notación UML para Ejemplos: representar una clase Florista Nombre Variables Miembros Salario Edad Funciones miembros Vender flores Enviar flores a otra ciudad Bombillo Consumo Variables Miembros Enceder Apagar Funciones miembros Aumentar Brillo Disminuir brillo
  • 17. Atributos o variables miembros Los atributos son características, propiedades que hacen que un objeto se diferencie del otro. Pueden determinar apariencia, cualidades, estado, etc. Los atributos se definen por variables. Para cada variable se define su tipo. En C++ es posible definir: • Variables o atributos de clase • Variables o atributos de objeto o de instancia
  • 19. Variables de clases • Define un atributo para toda la clase. • Aplica para la clase y para todas sus instancias. • Sólo almacena una copia con independencia de la cantidad de objetos. • Existe aunque no se haya creado ningún objeto de la clase. • Debe ser definida como static.
  • 20. Variables de objetos o de instancia • Define un atributo de un objeto en particular. • Cada instancia u objeto almacena su propia copia de variables de objeto. • Los atributos son por defecto de objetos o de instancia a menos que se califiquen como static (de clase).
  • 21. Ejemplos // en C++ class Circulo { static int numCirculos = 0; double x, y, r; }; Las variables de clases son buenas para la comunicación entre diferentes objetos de la clase o para llevar un registro de información relativa a toda la clase. Ejemplo: el número total de círculos creados.
  • 22. Ejemplos // en C++ class Fecha { int d; int m; int a; static TDate defaultDate; }; Buenas prácticas Definir cada atributo en una línea independiente aunque sean del mismo tipo. Hace el código más legible y permite comentar mejor.
  • 23. Métodos o funciones miembros El comportamiento de una clase se implementa a través de sus métodos o funciones miembros. Una clase o un objeto puede llamar métodos de otras clases para: • Indicar a otro objeto que cambie • Pedir a otro objeto que haga algo Es posible definir: • Métodos de instancia: aplican a cada objeto de la clase.
  • 24. Métodos de clase • Están disponibles para cualquier instancia de la clase y para otras clases. • No se requiere una instancia de la clase para poder invocar a un método de clase. • Para definir los métodos de clase hay que anteponer a la definición del método la cláusula static.
  • 25. Tipos de funciones miembros • Funciones (procedimientos) • Constructores • Destructores En C++ todas son funciones, no existen procedimientos.
  • 26. Definiendo métodos • Cada objeto puede satisfacer sólo ciertos requerimientos. • Los requerimientos que puede resolver el objeto están definidos por su interfaz y los tipos que hay en ella. • Cuando se hace un requerimiento a un objeto un método es llamado.
  • 27. Definiendo métodos La definición básica de un método cuenta de: • Tipo de retorno (tipo de objeto o tipo primitivo) • Nombre del método • Lista de parámetros • Cuerpo del método Las tres primeras partes se conocen como interfaz o firma del método.
  • 28. Definiendo clases En C++: • es posible definir variables y funciones que no pertenezcan a una clase. • las clases se declaran en un fichero <nombre>.h y se implementan sus métodos en un fichero <nombre>.cpp a menos que la función sea inline.
  • 29. Ejemplo en C++ // en C++, fichero.h // en C++, fichero.h class Date { class Date { int d; int d; public: public: //por defecto es inline int D(); int D(){return d;} }; }; //En fichero.cpp inline int Date::D() { return d; } //otra variante int Date::D() { return d; }
  • 30. Constructor Es un tipo especial de método utilizado para crear objetos o instancias de una clase. Características • Su nombre coincide con el de la clase. • No tiene valor de retorno (ni void) • Una clase puede tener varios constructores (ejemplo típico de sobrecarga de funciones), pero la lista de parámetros tiene que variar. • Los constructores deben diferir en tipo y/o cantidad de parámetro.
  • 31. Constructor Características • Si la clase tiene un constructor, todos los objetos de la clase deben ser inicializados invocándolo. • Si el constructor tiene parámetros al invocarlo hay que suministrarlos. • De no definirse un constructor para la clase, el compilador genera un constructor por defecto. • El constructor por defecto, no tiene parámetros e inicializa cada atributo con el valor nulo por defecto. • Si un constructor no tiene parámetros se considera el constructor por defecto.
  • 32. Constructores en C++ • Existe un tipo especial de constructor llamado constructor copia, cuyo parámetro es una referencia a una instancia de la clase. • El constructor copia debe copiar cada miembro de la clase. • No hay constructores virtuales ya que al construir se debe conocer el tipo exacto del objeto.
  • 33. Encapsulamiento Es una de las propiedades de la POO que define que el objeto debe ser una cápsula o caja negra que encapsula su funcionamiento y estructura interna. Sólo se ven desde afuera los miembros (la interfaz para el caso de los métodos) con visibilidad pública. Buenas Prácticas: los atributos deben ser privados o protegidos y se debe acceder a ellos a través de los métodos que pueden ser públicos.
  • 34. Encapsulamiento INTERFAZ de la CLASE CLASE CLASE Datos y Funciones Miembros Privadas, Protegidas y de Paquete Atributos Públicos Métodos Públicos instancia1 instancia2
  • 35. Encapsulamiento El encapsulamiento permite: • Ocultar detalles de implementación. • Simplificar el programa. • Minimizar el impacto del cambio. • Garantizar integridad de los datos.
  • 36. Alcance de variables En C++, existen variables: •Globales •Locales •Variables de instancia •Variables de clase
  • 37. Alcance de variables En C++, las clases tienen su propio ámbito. int a = 1; // variable global class TClase { int a; public: TClase(int); }; TClase clase(5); TClase.a; // error, trata de encontrala en el // ámbito de TClase y es privada.