Sei sulla pagina 1di 28

OBJETIVO

El objetivo de la presente sesión es:

 Conocer sobre la programación orientada a objetos


 Características de la p.o.o
 Que es un objeto
 Atributos (variables) y métodos (funciones) de un objeto
 Definición y declaración de una clase
 Implementación de las funciones de la clase
 Ejemplo de aplicación

ALGORITMOS Y PROGRAMACIÓN 1
PROGRAMACION ORIENTADA A OBJETOS
La programación orientada a objetos (poo) es una nueva
manera de enfocar la programación.
Toma las mejores ideas incorporadas en la programación
estructurada.
La poo permite descomponer un problema en subgrupos
relacionados.
En la poo, los objetos son los elementos principales de
construcción.
Cada uno tiene un rol específico en el programa y todos
los componentes pueden comunicarse entre ellos de
formas predefinidas.
Todos los lenguajes poo soportan la abstracción,
encapsulación, herencia y polimorfismo.

ALGORITMOS Y PROGRAMACIÓN 2
PROGRAMACION ORIENTADA A OBJETOS

ALGORITMOS Y PROGRAMACIÓN 3
PROGRAMACION ORIENTADA A OBJETOS
Abstracción
Consiste en ignorar aquellos aspectos, del objeto a
describir que no son relevantes para concentrarse en los
que si lo son.
Se trata de abstraer los datos y las operaciones comunes a
un conjunto de objetos y agruparlos bajo un mismo
concepto de clase.
Encapsulación
Mecanismo que agrupa el código y los datos y los
mantiene protegidos frente a cualquier interferencia o mal
uso.
El código y los datos pueden empaquetarse de la misma
forma que se crea una caja negra.

ALGORITMOS Y PROGRAMACIÓN 4
PROGRAMACION ORIENTADA A OBJETOS
Herencia
Es el proceso mediante el cual un objeto se define
adquiriendo las propiedades de otro, es decir hereda los
atributos y métodos(funciones) de un objeto superior.
Con la herencia hacemos que un objeto soporte la
clasificación jerárquica.
Permite compartir datos y operaciones entre clases y
clases derivadas.
Ejemplo, el objeto león hereda todas las propiedades del
objeto mamífero.
Al haber herencia , cada objeto define solo los atributos
adicionales y específicos, y no los comunes al objeto quien
hereda.

ALGORITMOS Y PROGRAMACIÓN 5
PROGRAMACION ORIENTADA A OBJETOS
Polimorfismo

Hacer una misma operación de diferentes formas, según


los objetos sobre los que se aplica.
Permite que una operación tenga el mismo nombre en
diversas clases y funcionar de manera diferente en cada
una.

ALGORITMOS Y PROGRAMACIÓN 6
PROGRAMACION ORIENTADA A OBJETOS
Objeto
Es una cosa tangible o intangible, algo que se puede
reconocer visualmente o conceptualmente.
Un objeto es un paquete que contiene datos y código en
forma de funciones que operan sobre los datos del propio
objeto.

ALGORITMOS Y PROGRAMACIÓN 7
PROGRAMACION ORIENTADA A OBJETOS
 Un objeto se puede definir utilizando las siguientes
características.
 Se identifica por un único nombre
 Un objeto tiene estados, estos definirán totalmente
las propiedades asociadas con un objeto.
 Un objeto tiene un conjunto de operaciones.
 Un objeto tiene un conjunto de atributos. Los
atributos de un objeto contienen valores del estado
durante la vida de un objeto.
Ejemplo de objetos: aviones, automóviles, televisor,
motocicleta, etc.

ALGORITMOS Y PROGRAMACIÓN 8
PROGRAMACION ORIENTADA A OBJETOS

ALGORITMOS Y PROGRAMACIÓN 9
PROGRAMACION ORIENTADA A OBJETOS
El nombre del objeto es bicicleta.
Los datos que guarda un
objeto se llama atributos
del objeto.
Las operaciones
(funciones) que operan
sobre los datos se llaman
métodos.
Los objetos de un
programa se comunican
enviándose mensajes.

ALGORITMOS Y PROGRAMACIÓN 10
PROGRAMACION ORIENTADA A OBJETOS
En los objetos se almacenan los atributos (datos:
números, arrays, cadenas, etc.) y los métodos
(funciones).
Notación de un Objeto
Nombre Objeto Nombre Objeto

Datos Atributos

Nombre Objeto

Métodos Métodos Datos y operaciones

Coad/Yourdon OMT Booch

ALGORITMOS Y PROGRAMACIÓN 11
PROGRAMACION ORIENTADA A OBJETOS
En el mundo real, normalmente tenemos muchos objetos
del mismo tipo.
Nuestro teléfono celular es sólo uno de los miles que hay
en el mundo.
Si hablamos en términos de la programación orientada a
objetos, podemos decir que nuestro objeto celular es una
instancia de una clase conocida como “celular”.
Los celulares tienen características (marca, modelo,
sistema operativo, pantalla, teclado, etc.) y
comportamientos (hacer y recibir llamadas, enviar
mensajes multimedia, transmisión de datos, etc.).

ALGORITMOS Y PROGRAMACIÓN 12
PROGRAMACION ORIENTADA A OBJETOS
Cuando se fabrican los celulares, los fabricantes
aprovechan el hecho de que los celulares comparten
esas características comunes y construyen modelos o
plantillas comunes
A partir de esas se puedan crear muchos equipos
celulares del mismo modelo.
A ese modelo o plantilla le llamamos CLASE.
A los equipos que sacamos a partir de ella la llamamos
OBJETOS.

ALGORITMOS Y PROGRAMACIÓN 13
PROGRAMACION ORIENTADA A OBJETOS
Clase
Una clase es una colección de objetos con atributos
(datos) y un conjunto de métodos (funciones) comunes.
Un objeto es una instancia de una clase, es decir la clase
es el tipo de dato y el objeto viene a ser la variable real.
clase = datos + métodos
Una variable tradicional solo captura la estructura de
datos mas no su comportamiento. Automovil

Placa
Marca
Color

Acelerar()
Parar()
Arrancar()

ALGORITMOS Y PROGRAMACIÓN 14
PROGRAMACION ORIENTADA A OBJETOS
Diagrama de Clase y Objeto
Los objetos se dibujan como una caja, en la que existe
un interior y exterior al mismo.
La caja se etiqueta con el nombre del objeto.
La caja representa la frontera entre el interior y el exterior
Objeto
del objeto.
Datos Miembro

Interfaz
Métodos Miembro

Exterior
ALGORITMOS Y PROGRAMACIÓN 15
PROGRAMACION ORIENTADA A OBJETOS
Los datos miembros y métodos que están totalmente en
el interior de la caja, están ocultos al exterior, lo que
significa que estas características están encapsulados
(privada).
Los datos miembros y métodos que se extienden fuera
de la caja, son accesiblesGato
desde el exterior y constituyen
la interfaz del objeto.
Nombre

ColorOjos

Corre()

VerDatos()

ALGORITMOS Y PROGRAMACIÓN 16
PROGRAMACION ORIENTADA A OBJETOS
Declaración de una Clase
Una clase debe ser declarada antes de utilizar, para ello
se utiliza la siguiente sintaxis:

class <nombre_clase>
{ <ambito>:
dato(s) miembro(s);
funcion(es) miembro;
};
Donde ambito: puede ser private, protected o public.

ALGORITMOS Y PROGRAMACIÓN 17
PROGRAMACION ORIENTADA A OBJETOS
Miembro privado
Solo son accesibles por las funciones miembro de la
clase, al ser privados ocultan la estructura de datos.
Miembro protegidos
Son accesibles por las funciones miembro de la clase y
también por las funciones miembro de la clase derivada.
Miembro publicos
Son accesibles desde cualquier parte del programa
completo.
Los miembros públicos forman el interfaz externo a
través del cual se utiliza el objeto.

ALGORITMOS Y PROGRAMACIÓN 18
PROGRAMACION ORIENTADA A OBJETOS
Implementación de las funciones miembro de la clase
Implica la definición de cada una de las funciones
miembro de la clase.

<tipo dato> <Nombre Clase>::<Nombre Funcion>([<Parametros Formales>])


{
[ Declaracion de variables Locales];
Sentencia(s);
[return dato];
}

Donde :: es el operador de ámbito de resolución, a través


del cual se indica a que clase pertenece la función.

ALGORITMOS Y PROGRAMACIÓN 19
PROGRAMACION ORIENTADA A OBJETOS
Diseñar una clase llamada Triangulo que tiene lo
siguiente:
Atributos(datos): base y altura
Métodos(funciones): Dimensiones y Area
Triangulo

Base
altura

Dimensiones(a,h)
Area()

ALGORITMOS Y PROGRAMACIÓN 20
PROGRAMACION ORIENTADA A OBJETOS
//Declarando la clase Triangulo
class Triangulo
{ private:
int base,altura;
public:
void Dimensiones(int b, int h);
int Area();
};
// Implementando las funciones miembro int Triangulo::area()
void Triangulo::Dimensiones(int b, int h) { return base*altura;
{ base=b; altura=h; }
}
ALGORITMOS Y PROGRAMACIÓN 21
PROGRAMACION ORIENTADA A OBJETOS
Acceso a los miembros de una clase
A los miembros de una clase se accede de forma similar
que a los campos de una estructura.
Utilizando el carácter punto (.) y el carácter flecha(->).
Para el ejemplo anterior esta es la función principal
int main()
{ Triangulo P; //declara el objeto P
P.Dimensiones(3,5); //Llama a la funcion Dimensiones
cout<<“Area es = "<<P.Area()<<endl;// Muestra el area
}

ALGORITMOS Y PROGRAMACIÓN 22
PROGRAMACION ORIENTADA A OBJETOS
Diseñar una clase llamada Rectangulo que tiene lo
siguiente:
Atributos(datos): lado mayor y lado menor
Métodos(funciones): Lados, VerLados, Area y Perímetro

Rectangulo

Lmay
Lmen

Lados(a, b)
VerLados()
Area()
Perimetro()

ALGORITMOS Y PROGRAMACIÓN 23
PROGRAMACION ORIENTADA A OBJETOS
#include <iostream>
using namespace std;
// Declaracion de la clase
class Rectangulo
{ private:
float Lmay, Lmen;
public:
void Lados(float, float);
void VerLados();
float Area();
float Perimetro();
};

ALGORITMOS Y PROGRAMACIÓN 24
PROGRAMACION ORIENTADA A OBJETOS
//Programa principal
int main()
{ Rectangulo z;
float x, y;
cout<<"Base Mayor:";cin>>x;
cout<<"Base Menor:";cin>>y;

z.Lados(x, y);
z.VerLados();
cout<<"El Area es:"<<z.Area()<<endl;
cout<<"El Perimetro es:"<<z.Perimetro()<<endl;

ALGORITMOS Y PROGRAMACIÓN 25
PROGRAMACION ORIENTADA A OBJETOS
//Implementando las funciones miembro
// Inicializando las dimensiones
void Rectangulo::Lados(float a, float b)
{ Lmay=a;
Lmen=b;
}

//Muestra los Lados del rectangulo


void Rectangulo::VerLados()
{ cout<<“\nLado Mayor:"<<Lmay<<endl;
cout<<"Lado Menor:"<<Lmen<<endl;
}

ALGORITMOS Y PROGRAMACIÓN 26
PROGRAMACION ORIENTADA A OBJETOS

// Calcula y retorna el área y el perímetro del rectángulo


float Rectangulo::Area()
{
return Lmay*Lmen;
}

float Rectangulo::Perimetro()
{
return 2*(Lmay + Lmen);
}

ALGORITMOS Y PROGRAMACIÓN 27
PROGRAMACION ORIENTADA A OBJETOS

//Programa principal
int main()
{ Rectangulo z;
float x, y;
cout<<"Base Mayor:";cin>>x;
cout<<"Base Menor:";cin>>y;

z.Lados(x, y);
z.VerLados();
cout<<"El Area es:"<<z.Area()<<endl;
cout<<"El Perimetro es:"<<z.Perimetro()<<endl;
}

ALGORITMOS Y PROGRAMACIÓN 28

Potrebbero piacerti anche