Logo Studenta

Estructura Clase8

¡Estudia con miles de materiales!

Vista previa del material en texto

Objetivos de la Clase 8 (02/10/2013)
1. Fecha de exámenes: 17/10,30/10,06/11,20/11,28/11,05/12
2. Programación Orientada a Objetos (POO)
Desarrollo de los temas de la presente Clase
Bibliografia Cap. 15 de Fundamentos de Programación (Joyanes Aguilar)
Programación Orientada a Objetos (POO)
Conceptos fundamentales de orientación a objetos
 ¿Qué es programación orientada a objetos?
o Método de implementación en el que los programas se 
organizan como colecciones cooperativas de objetos, cada 
uno de los cuales representan una instancia de alguna 
clase, y cuyas clases son todas miembros de una 
jerarquía de clases unidas mediante relaciones de 
herencia
 1- Utiliza objetos, no algoritmos, como bloques de 
construcción lógica.
 2 – cada objeto es una instancia de una clase
 3 – clases se relacionan unas con otras mediante 
relaciones de herencia
 Sin estos 3 elementos no es un programa orientado 
a objetos
o La potencia de los objetos reside en que los objetos 
pueden definir otros objetos mediante la herencia
o Se pueden construir programas que se modifican 
fácilmente y se adaptan a aplicaciones diferentes.
o Los Conceptos fundamentales de programación son:
 Objetos
 Clases
 Herencia
 Mensajes
 Polimorfismo
o El Objeto
 En una sola unidad datos y funciones que operan 
sobre esos datos
 Funciones dentro de un objeto [funciones miembro 
o métodos] único medio de acceder a los datos 
privados de un objeto
 Se lee un elemento y se devuelve un valor
 No se puede acceder directamente a los datos
 Los datos y las funciones están encapsulados
 Encapsulación y ocultamiento de datos son términos 
importantes en LOO
1
 Ver figura 15.1
o Ejemplos de objetos
 Objetos físicos: aviones, autos
 Elementos de interfaces graficas de PC
 Animales
 Alimentos
 Atributos describen estado del objeto
 Los objetos encapsulan datos y las funciones que 
manejan esos datos
 Figura 15.2 y 15.3
 Atributos: datos que caracterizan el estado del 
objeto
 Métodos: acciones que cambian el estado del objeto
 Los objetos tienen una interfaz publica y una 
representación privada que permite ocultar la 
información al exterior
 Figura 15.4
o Métodos y mensajes
 Programa orientado a objetos consiste en un 
número de objetos que se comunican unos con 
otros llamando a funciones miembro.
 funciones miembro residen en el objeto y 
determinan como actúan los objetos cuando reciben 
un mensaje
 mensaje acción que hace un objeto
 método se invoca para actuar sobre un objeto y 
especifica como se ejecuta un mensaje
 el conjunto de mensajes a los que puede responder 
un objeto se denomina protocolo del objeto
 Figura 15.5
 Concepto de caja negra, la estructura interna de un 
objeto esta oculta a los usuarios
 Mensajes son los únicos conductos que conectan el 
objeto con el mundo externo
 Cuando ejecutamos programa OO ocurren 3 
sucesos:
 Objetos se crean a medida que se necesitan
 Mensajes se mueven de un objeto a otro o 
desde el usuario al objeto, programa procesa 
información internamente o responde a 
entrada del usuario
 Cuando objetos no necesarios se borran y 
liberan memoria
o Clases
 Descripción de un conjunto de objetos
 Métodos y datos que resumen características 
comunes de conj. de objetos
2
 Se pueden definir muchos objetos de la misma 
clase
 Clase es la declaración de un tipo objeto, son 
similares a tipos de datos
 Modelos o plantillas que describen como se 
construyen ciertos tipos de objetos
 Cuando se construye un objetos estamos creando 
una instancia de esa clase
 Una instancia es una variable de tipo objeto
 un objeto es una instancia de una clase. Los objetos 
son miembros de una clase
 los objetos se crean cuando un mensaje de petición 
de creación se recibe por la clase
 clase colección de objetos similares
 ejemplo clase cantante_latino o nuevo documento 
en procesador de texto
 Un mundo de objetos
o Posibilidad de reflejar sucesos del mundo real mediante 
tipos abstractos de datos extensible a objetos
o Ejemplo vehiculo -> bicicleta, auto, avión; cosas en 
común y otra no
 Vehiculo es un tipo base y bicicleta un tipo derivado 
de ella
 tipo base representa comportamiento y 
características comunes a los tipos derivados de 
este tipo base
o definición de objetos
 abstracción de cosas del mundo real
 estado -> atributos
 comportamiento -> métodos invocados por 
mensajes
 son tipos abstractos de datos ->tipos que 
encapsulan datos y funciones que operan sobre los 
datos
 numero racional: 
 Est. -> valor actual
 Operaciones -> sumar, restar, etc.
 Vehiculo
 Est. -> velocidad, precio, etc.
 Operaciones -> frenar, acelerar, etc.
o identificación de objetos
 1er. Problema identificar los objetos
 análisis gramatical somero del enunciado y localizar 
nombres o cláusulas nominales, de aquí 
deduciremos los objetos reales
 categorías de objetos
3
 cosas tangibles
 roles
 organizaciones
 incidentes
 interacciones
 especificaciones
 lugares
 una vez identificados los objetos hay que identificar 
atributos y operaciones que actúan sobre ellos 
(ejemplo)
 atributos -> describen abstracción de 
características individuales que poseen todos los 
objetos
 operaciones -> cambian el estado del objeto, de 
tres tipos
 que manipulan datos
 que realizan calculo o proceso
 que comprueban o monitorizan
 para identificar operaciones nuevo análisis 
gramatical y buscar los verbos del texto
o Representación grafica
 Figura 15.7 y 15.8
o Diferencia entre objeto y clase
 Objeto es un simple elemento
 Clase describe una familia de elementos similares, 
plantilla que se utiliza para definir o crear objetos
 Características objetos
 Se agrupan en clases
 Tienen datos internos que definen su estado
 Soportan ocultación de datos
 Pueden heredar propiedades de otros objetos
 Pueden comunicarse con otros pasando 
mensajes
 Tienen métodos que definen su 
comportamiento
 Son instancias de una clase
 Una clase puede tener muchas instancias y 
cada una es un objeto independiente
 Una clase es un plantilla para describir un 
objeto de un mismo tipo
o Datos internos
 Conjunto de valores de todas las variables 
contenidas dentro del objeto en un instante dado
 Variables de estado
 Ver ejemplo
o Ocultación de datos
4
 Usuario no necesita saber como se implementa la 
ventana sino como se utiliza
 Comunicaciones entre objetos: los mensajes
o Orden que se envía a un objeto para indicarle que realice 
alguna acción
o Se denomina paso de mensajes
o Objetos se comunican entre si mandando mensajes
o Mensajes tienen una contrapartida denominada métodos
o Métodos son los procedimientos que se invocan cuando 
un objeto recibe un mensaje
o En programación tradicional es un llamado a una función
o Ver ejemplo
o No le decimos a la ventana como cambiar, la ventana 
maneja la operación por si misma
o Ejemplo de ventana de Windows al pulsar botón de Exit
o Mensajes
 Petición de un objeto a otro solicitándole que 
ejecute uno de sus métodos
 Objeto envía petición -> emisor
 Objeto recibe petición -> receptor
 Partes del mensaje
 Identidad del receptor
 Método a ejecutar
 Información especial para ejecutar el método 
(argumentos o parámetros)
 Al recibir un mensaje un objeto que esta inactivo se 
transforma en activo
 Petición no especifica como se realiza la operación
 Conj. de mensajes a los que responde un objeto se 
denomina comportamiento del objeto
 Ver ejemplo
 Mensaje incluye nombre de una operación y 
cualquier argumento requerido por esa operación
o Métodos
 Emisor envía mensaje
 Receptor ejecuta el método apropiado, 
consumiendo los parámetros, devuelve algún tipo 
de respuesta al emisor para reconocer mensaje y 
devolver información solicitada
o Paso de mensajes
 Especificaciones emisor
 Un receptor
 Nombre de mensaje
 Argumentos o parámetros
 Ejemplo 15.1
 Estructura interna de un objeto
5
o Atributos y métodos
 Figura 15.14 y 15.15
o Atributos Describe estado del objeto
 Consta de nombre atrib. y valor actual atrib.
o Métodos
 Describen el comportamiento asociado a un objeto
 Ejecución conduce a un cambio de estado del objeto
 Tiene un nombre y un cuerpo que realiza la acción
 Se activa por un mensaje que se envía por otro 
objeto al objeto que contiene el método
 Figura 15.16 y ejemplo
 Clases
o Definen los tipos abstractos de datos en lenguajes de 
programación OO
o Comparación con tablas de datos
 Una clase se puede considerar como la extensión de 
una tabla
 Pueden asociarse clase e instancias con tabla y 
registros respectivamente
 Una tabla define los nombres y los tipos de datos de 
la información que contenga
 Una instancia, un registro de esa tabla proporciona 
los valores específicos para una entrada particular
 Diferencia conceptual: clases contienen métodos 
además de la definición de datos
 Ver ejemplo
o Dos operaciones comunes en cualquier clase
 Constructor
 Destructor
 Se definen como métodos de la clase
 Herencia
o Propiedad que permite a los objetos ser construidos a 
partir de otros objetos
o Capacidad de un objeto para utilizar las estructuras de 
datos y los métodos previstos en antepasados o 
ascendientes
o Objetivo final reutilizar código anteriormente ya 
desarrollado
o Clases básicas o fundamentales se dividen en subclases
 Animales en mamíferos, insectos, etc.
 Vehículos en automóvil, bicicleta, etc.
 Tienen características comunes y diferentes
6
 Herencia supone una clase base y una jerarquía de 
clases que contienen las clases derivadas de la 
clase base.
 Clases derivadas puede heredar el código y los 
datos de su clase base, añadiendo su propio código 
y datos a ellas e incluso cambiar elementos de la 
clase base que necesita que sean diferentes
 Una clase hereda sus características de otra clase
 Figura 15.19
 Las jerarquías de clases se organizan en forma de 
árbol
 Figura 15.20
 Ver pseudo código
o Herencia simple (jerárquica)
 Cada clase tiene como máximo una sola superclase
 Figura 15.22
o Herencia múltiple (en malla)
 Cada clase puede tener una o mas superclases 
inmediatas
 Cada clase puede heredar métodos y variables de 
cualquier número de superclases.
 Figura 15.23
 Al heredar C de A y D esta acción puede producir un 
conflicto de nombres
 Problemas por herencia múltiple
 Caso 1 no hay problema
 Caso 2 ver problema en Figura 15.24
 Reglas de resolución de conflictos
 Sobrecarga
o Mismo nombre de Operación para representar 
operaciones similares que se comportan de modo 
diferente cuando se aplican a clases diferentes
o Figura 15.28
 Polimorfismo
 REVISIÓN DEL CAPÍTULO
o Conceptos clave
o Resumen
Direcciones de Contacto
vbasictl@yahoo.com.ar
http://ar.groups.yahoo.com/group/tlyso_01
7
<?php
 Class Persona {
 public $nombre;
 public $edad;
 public function mostrarDatos($x) {
 echo "Nombre: " . $nombre . "<br />";
 echo "Edad: " . $edad . "<br />";
 }
 }
 
 
 //instancia del objeto
 $obj = new Persona();
 $obj->nombre = "Perez";
 $obj->edad = 24;
 $obj->mostrarDatos();
?>
Muestra
Nombre: Perez
Edad: 24
**********************************************************
<?php
 Class Persona {
 var $nombre;
 var $edad;
 public function __construct($n, $e) {
 $this->nombre = $n;
 $this->edad = $e;
 }
 public function __destruct() {
8
 echo "Objeto destruido!";
 }
 public function mostrarDatos() {
 echo "Nombre: " . $this->nombre . "<br />";
 echo "Edad: " . $this->edad . "<br />";
 }
 
 }
 //instancia del objeto
 // llama al constructor que inicializa los atributos
 $obj = new Persona("Lopez", 27); 
 $obj->mostrarDatos();
 unset($obj); //llama al destructor
?>
Muestra
Nombre: Lopez
Edad: 27
**********************************************************
<?php
 Class Persona {
 var $nombre = "pp";
 var $edad = 20;
 public function mostrarDatos() {
 echo "Nombre: " . $this->nombre . "<br />";
 echo "Edad: " . $this->edad . "<br />";
 } 
 }
 
 //creo clase Alumno que hereda de Persona 
 Class Alumno extends Persona{
 var $curso;
 public function mostrarDatos() {
 echo "Nombre: " . $this->nombre . "<br />";
 echo "Edad: " . $this->edad . "<br />";
 echo "Curso: " . $this->curso . "<br />";
 } 
9
 }
 //instancio Persona
 $p = new Persona();
 $p->nombre = "Perez";
 $p->edad = 30;
 $p->mostrarDatos();
 //instancio Alumno
 $a = new Alumno();
 //$a->nombre = "Lopez";
 //$a->edad = 27;
 $a->curso = "PHP";
 $a->mostrarDatos();
?>
Muestra
Nombre: Perez
Edad: 30
Nombre: Lopez
Edad: 27
**********************************************************
Preguntas Segundo Parcial Teórico
Clase 8
Clase 8 
1. Definición de programación orientada a objetos. Que elementos deben existir en 
POO. Definir y explicar que son objetos, métodos y mensajes (punto 15.1, 15.1.1, 
15.1.2, 15.1.3 libro Joyanes Aguilar)
2. Como es la estructura interna de un objeto, atributos y métodos (punto 15.4, 
15.4.1, 15.4.2 libro Joyanes Aguilar)
3. Que son las clases. Cuales son sus propósitos principales. Diferencia con objeto. 
Comparación con tablas de datos. Que es un constructor y un destructor (punto 
15.5, 15.5.1 libro Joyanes Aguilar)
4. Que es la herencia. Cual es su objetivo final. Jerarquía de clases. Jerarquía de 
herencia. (punto 15.6 libro Joyanes Aguilar)
10
	Objetivos de la Clase 8 (02/10/2013)
	Bibliografia Cap. 15 de Fundamentos de Programación (Joyanes Aguilar)

Continuar navegando