SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAMichelle Torres
 
Presentación Modelo de Datos
Presentación Modelo de DatosPresentación Modelo de Datos
Presentación Modelo de DatosEnrique Cabello
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poosaulalex2017
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Lis Pater
 
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHLINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHPerozoAlejandro
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 

Was ist angesagt? (20)

Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Modelo V
Modelo VModelo V
Modelo V
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Programación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVAProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVA
 
UML Café
UML Café UML Café
UML Café
 
Presentación Modelo de Datos
Presentación Modelo de DatosPresentación Modelo de Datos
Presentación Modelo de Datos
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poo
 
DB1 Unidad 9: Concurrencia
DB1 Unidad 9: ConcurrenciaDB1 Unidad 9: Concurrencia
DB1 Unidad 9: Concurrencia
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHLINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Mapa mental modelo osi
Mapa mental modelo osiMapa mental modelo osi
Mapa mental modelo osi
 

Andere mochten auch

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++
Introducción a la programación orientada a objetos empleando c++Aldo Hernán Zanabria Gálvez
 
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 con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
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
 

Andere mochten auch (7)

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++
Introducción a la programación orientada a objetos empleando c++
 
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!! . .
Programación!! . .Programación!! . .
Programación!! . .
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
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
 

Ähnlich wie Programación Orientada a Objetos

programacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptxprogramacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptxRICARDOEDGARDOQUINTA
 
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
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basicEdna Rheiner
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfMariaTeresaGarznPrez
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
 
Elementos avanzados de poo
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de pooLCA
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxDELIAMARINAHERAZOTUI
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetosdesimartinez
 
Programación Orientada a Objetos en Java - Parte I 2015
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 2015Renny Batista
 
POO con PHP
POO con PHPPOO con PHP
POO con PHPvinceq
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
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)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 

Ähnlich wie Programación Orientada a Objetos (20)

Poo 1
Poo 1Poo 1
Poo 1
 
programacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptxprogramacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptx
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Elementos avanzados de poo
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de poo
 
C1 - Conceptos OOP
C1 - Conceptos OOPC1 - Conceptos OOP
C1 - Conceptos OOP
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 
Programación Orientada a Objetos en Java - Parte I 2015
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
 
POO con PHP
POO con PHPPOO con PHP
POO con PHP
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
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)
Conceptos básicos de programación orientada a objetos (poo)
 
Manual de java_2
Manual de java_2Manual de java_2
Manual de java_2
 
manual 9
manual 9manual 9
manual 9
 

Mehr von Zamantha Gonzalez Universidad Nacional Abierta

Mehr von Zamantha Gonzalez Universidad Nacional Abierta (20)

Elementos del diseño visual
Elementos del diseño visualElementos del diseño visual
Elementos del diseño visual
 
Instructivo Autocorreccion Pruebas Objetivas UNA
Instructivo Autocorreccion Pruebas Objetivas UNAInstructivo Autocorreccion Pruebas Objetivas UNA
Instructivo Autocorreccion Pruebas Objetivas UNA
 
Estrategias
EstrategiasEstrategias
Estrategias
 
Aspectos básicos de google classroom
Aspectos básicos de google classroomAspectos básicos de google classroom
Aspectos básicos de google classroom
 
Lineamientos curso de iniciación 2017 1
Lineamientos curso de iniciación 2017 1Lineamientos curso de iniciación 2017 1
Lineamientos curso de iniciación 2017 1
 
Presentacion telemática educativa
Presentacion telemática educativaPresentacion telemática educativa
Presentacion telemática educativa
 
Uso y creacion de unidades
Uso y creacion de unidadesUso y creacion de unidades
Uso y creacion de unidades
 
Estrategias objetivo 8
Estrategias objetivo 8Estrategias objetivo 8
Estrategias objetivo 8
 
Estrategias objetivo 7
Estrategias objetivo 7Estrategias objetivo 7
Estrategias objetivo 7
 
Estrategias objetivo 6
Estrategias objetivo 6Estrategias objetivo 6
Estrategias objetivo 6
 
Estrategias objetivo 5
Estrategias objetivo 5Estrategias objetivo 5
Estrategias objetivo 5
 
Geolocalización móvil
Geolocalización móvilGeolocalización móvil
Geolocalización móvil
 
Realidad aumentada
Realidad aumentadaRealidad aumentada
Realidad aumentada
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Tipos de datos en pascal
Tipos de datos en pascalTipos de datos en pascal
Tipos de datos en pascal
 
EVERNOTE
EVERNOTEEVERNOTE
EVERNOTE
 
Encuentro inicial
Encuentro inicialEncuentro inicial
Encuentro inicial
 
Encuentro inicial estudiantes primer semestre
Encuentro inicial estudiantes primer semestreEncuentro inicial estudiantes primer semestre
Encuentro inicial estudiantes primer semestre
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 

Kürzlich hochgeladen

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Kürzlich hochgeladen (20)

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

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.