Está en la página 1de 23

Tema 05:

Clases y objetos
Unidad 01: Recursión, iteración y programación orientada a objetos

Material basado en:


Estructura de datos, por Osvaldo Cairo, México : McGraw-Hill
Fundamentos de programación, por Luis Joyanes, España : McGraw-Hill
Contenido

o ¿Qué es un objeto?
o Características y comportamiento
o ¿Qué es una clase?
o Proceso de abstracción
o Secciones de una clase
o Constructores
¿Qué es un objeto?

o Es un ente del mundo real que posee


una serie de características (atributos) y
comportamientos (métodos).
o Los objetos del mundo real tienen dos
elementos: características y
comportamiento.
o Desde el enfoque de la POO, los
objetos son bloques de código que
permiten representar entidades del “Un objeto es una estructura que
mundo (reales y/o imaginarias) incorpora datos y los
procedimientos para trabajar con
esos datos”
¿Qué es un objeto?

Los objetos se dividen en:


o Identificación del objeto. Permite ubicarlos
o Su estado. Conjunto de campos o variables conocidos como atributos
o miembros
o Su comportamiento. Representado por funciones conocidas como
funciones miembro o métodos.

Impresora
Producto
+ Nombre
+ Nombre + Puerto
+ Marca
+ Modelo + Imprime()
¿Qué es un objeto?
Características y comportamientos

Carlos Palomino Ticona Gloria Herrera Robles


Carlos : Persona Gloria : Persona
Características y comportamientos

Mensaje del Correo de Jhon Ticona

Identificación

Características

Comportamientos
Características y comportamientos

SmartPhone de Karla Flores Ticona

Identificación

Características

Comportamientos
¿Qué es una clase?

o Una clase es una plantilla o plano que


define los atributos y comportamientos
de los objetos que serán creados como
instancias de las misma.
o En UML disponemos del diagrama de
clases como herramienta para definir
nuestras clases. Utiliza bloques o
casillas donde se colocan los atributos
y métodos establecidos
Nombre de la clase >

Datos miembro >

Funciones miembro >

Clase
Características y comportamientos

Objeto Clase Objeto


Carlos Palomino Ticona Gloria Herrera Robles
Carlos : Persona Persona Gloria : Persona
Proceso de abstracción

o La abstracción es la característica más


básica de la POO y puede definirse
como la acción de identificar las
cualidades y acciones que un objeto
puede realizar.
o El burro de la figura es un objeto con
características específicas:
▪ edad = 2
▪ color = gris claro
▪ peso = 140 kg
▪ Medidas = 120 cm de largo
o Se puede definir una clase Burro como una abstracción a todos los
burros existentes; las características son los datos miembros o
atributos de la clase y las acciones son los métodos o
comportamientos de la clase.
o De esta manera tenemos que la abstracción Burro es una clase y
todos los burros que se pueden existir con las características definidas
en la clase son objetos..
Secciones de una clase

o Las clases de C++ proporcionan 3 niveles de visibilidad, para los


diversos miembros (datos miembro y funciones miembro):
▪ Sección privada
▪ Sección protegida
▪ Sección pública
o En la sección privada sólo las funciones miembro de la clase pueden
acceder a los miembros privados, las clases descendientes tienen
negado el acceso a los miembros privados de sus clases base.
o En la sección protegida, sólo las funciones miembro de la clase y de
sus clases descendientes pueden acceder a los miembros.
o La sección pública especifica miembros que son visibles a las
funciones miembro de la clase, las instancias de la clase, las
funciones miembro de las clases descendientes y casi a cualquiera
que pueda estar interesado.

Objeto = Instancia

public
constructor( ) destructor( )
protected
private
atributo1
mensajes
atributo2
atributoN
funcionN( )

funcion1( ) funcion2( )
Reglas de las secciones de la clase

o Existen una serie de reglas que se pueden aplicar al momento de


generar una clase, estas son:
1. Las secciones de la clase pueden aparecer en cualquier orden y
más de una vez.
2. Si no se especifica ninguna sección de clase el compilador C++
trata a los miembros como privados.
3. Deberá evitar declarar los datos miembro en la sección pública a
menos que tal declaración simplifique considerablemente su
diseño. Los datos miembro son puestos por lo general en la
sección protegida para permitir que las funciones miembro de las
clases descendientes tengan acceso a ellos.
4. Use funciones miembro para asignar o consultar los valores de los
datos miembro. Los métodos que asignan los datos ayudan en la
validación y actualización de los datos miembro si es que se
requiere.
5. La clase puede tener varios constructores.
6. La clase puede tener solamente un destructor el cual debe
declararse en la sección publica.
7. Las funciones miembro (así como los constructores y los
destructores) que lleven varios enunciados se definen en el
exterior de la declaración de la clase.
Ejemplo de una clase

class Punto
{
private:
int x;
int y;
public: Definición de la clase
void asignarX(int valX);
void asignarY(int valY);
int obtenerX();
int obtenerY();
};
void Punto::asignarX(int valX)
{ x= valX; }
void Punto::asignarY(int valY) Cuerpo de la clase (desarrollo
{ y= valY; } de las funciones miembro)
int Punto::obtenerX()
{ return x; }
int Punto::obtenerY()
{ return y; }
Ejemplo del programa

// programa que utiliza la clase punto


#include <iostream>
#include "Punto.h"
using namespace std;

int main()
{
Punto A,B; //creación de dos objetos de tipo Punto

A.asignarX(15); //asignación de la coord. x al objeto A


A.asignarY(8); //asignación de la coord. y al objeto A
B.asignarX(15); //asignación de la coord. x al objeto B
B.asignarY(8); //asignación de la coord. y al objeto B

cout<<"Los puntos tienen las siguientes coordenadas: "


<<endl<<endl;
cout<<"Punto A("<<A.obtenerX()<<", "<<A.obtenerY()<<")"<<endl;
cout<<"Punto B("<<B.obtenerX()<<", "<<B.obtenerY()<<")"<<endl;
return 0;
}
Constructores

o Se usa para inicializar atributos de los objetos.


o Se declara en la parte public.
o Tienen el mismo nombre de la clase.
o No devuelven valores.
o Los argumentos son los valores con que serán inicializados los
atributos del objeto.
o Si no se define, el compilador proporciona un constructor
predeterminado sin parámetros.
Constructores
Varios constructores

También podría gustarte