Está en la página 1de 28

Universidad Nacional de Ingeniería

Facultad de Ingeniería Mecánica


Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

UNIDADES DE APRENDIZAJE 5

Unidad 5: PROGRAMACIÓN ORIENTADA A OBJETOS, HERENCIA Y POLIMORFISMO

Paradigmas de la Programación Orientada a Objetos. Instancia de una clase.


Especificación de acceso a los miembros de una clase.
Acceso Privado, Protegido y Público. Constructores y Destructores ().
UNIDADES DE APRENDIZAJE 5
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Programación Orientada a Objetos (POO)


Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

¿Es un Objeto?
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

¿Objeto(s)?
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Clase -> Objeto(s)


Cubo
instanciar instanciar

instanciar
instanciar Caja Fuerte
instanciar
Cubo Mágico

Dado
Caja Regalo
Juego Didáctico
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

OBJETO (S) CLASE Atributos:


(Propiedades/datos)
abstraer Dimensiones
Cubo Mágico Peso
Color
Cubo Material
Caja Regalo Precio

instanciar
Juego Didáctico
Métodos:
(Funcionalidad)
Dado Armar - Desarmar
Comprar - Vender
abstraer Pesar
Caja Fuerte Calcular_Area
Calcular_Volumen
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Conceptos:

CLASE: Es la descripción de un conjunto (familia) de objetos


similares, consta de atributos y métodos.

OBJETO: Es una unidad de programación que tiene identidad


(nombre), atributos (datos) y métodos (funciones).
Se crean a partir de instancias de una clase.

ABSTRACCIÓN: Proceso mental de extracción de las características


esenciales de un objeto, ignorando los detalles innecesarios.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Conceptos:

INSTANCIA: Es el proceso de crear un objeto a partir de una


clase. Se la llama “instanciar”.

ATRIBUTO: Datos o variables que caracterizan el estado de un


objeto (propiedad).

MÉTODO: Procedimientos o acciones que cambian el estado


de un objeto.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Ejemplo (1 de 3)

// Declaración de una Clase


class cubo {
// Atributos Cubo
private:
int arista;
int peso;
float precio;

// Métodos
public:
cubo(int, int, float); //Constructor.
int calcular_area();
int calcular_volumen();
};
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Ejemplo (2 de 3)

// Implementando la Clase (Desarollando los metodos)


cubo::cubo(int _arista, int _peso, float _precio) {
arista = _arista;
peso = _peso;
precio = _precio;
}

int cubo::calcular_area() {
int area;
area = 6 * arista * arista;
return area;
}

int cubo::calcular_volumen() {
int volumen;
volumen = pow(arista,3);
return volumen;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Ejemplo (3 de 3)

// Programa Principal
int main()
{
int xarista;

cout << "Ingrese el arista del cubo magico: "; cin >> xarista;
cubo cubo_magico(xarista, 0, 0);
cout << "Area...: " << cubo_magico.calcular_area() << endl;
cout << "Volumen: " << cubo_magico.calcular_volumen() << endl;

cout << "Ingrese el arista de la caja de regalo: "; cin >> xarista;
cubo caja_regalo(xarista, 0 , 0);
cout << "Area...: " << caja_regalo.calcular_area() << endl;
cout << "Volumen: " << caja_regalo.calcular_volumen() << endl;

return 0;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica RESUMEN (1 DE 2):
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 1(1) INSTANCIA + CONSTRUCTOR

class cubo {

private:
int arista;
int peso; cubo::cubo(int _arista, int _peso, float _precio) {
float precio;
public: arista = _arista; peso = _peso; precio = _precio;
cubo(int,int, float); }
int calcular_area();
}; int cubo::calcular_area() {
int area;
area = 6 * arista * arista;
return area;
}

int main() {
int xarista;
cout << "Ingrese el arista del cubo magico: "; cin >> xarista;

1 cubo cubo_magico(xarista, 0, 0);

cout << "Area: " << cubo_magico.calcular_area() << endl;


}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica RESUMEN (2 DE 2):
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 2(2) INVOCAR AL MÉTODO.

class cubo {

private:
int arista;
int peso; cubo::cubo(int _arista, int _peso, float _precio) {
float precio;
public: arista = _arista; peso = _peso; precio = _precio;
cubo(int,int, float); }
int calcular_area();
}; int cubo::calcular_area() {
int area;
area = 6 * arista * arista;
return area;
}

int main() {
int xarista;
cout << "Ingrese el arista del cubo magico: "; cin >> xarista;

cubo cubo_magico(xarista, 0, 0);

2 cout << "Area: " << cubo_magico.calcular_area() << endl;


}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Conceptos:
CONSTRUCTOR: Son métodos especiales que se ejecutan automáticamente al crear un
objeto de la clase.
▪ En su declaración no se especifica el tipo de dato que devuelven.
▪ Poseen el mismo nombre que la clase a la que pertenecen.
▪ Puede haber varios constructores sobrecargados.

TIPOS (Especificadores) DE ACCESO: permitir controlar a una clase el acceso a las variables
de datos de esa clase. Los especificadores de acceso permiten acceder a algunos miembros
de la clase y restringir el acceso a otros:
▪ public, permite el acceso a tal miembro desde dentro y fuera de la clase.
▪ private, los miembros de una clase declarado como privado solo es accesible dentro
de la clase en la cual se declara.
▪ protected, Los miembros de datos son únicamente accesibles por funciones miembro
de la clase, pero no se pueden acceder a ellos desde otras clases.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

1er Ejemplo Programa Visual C++

➢ Class producto
➢ Objetos: televisor, cocina, plancha
➢ Métodos: carga_datos();
calcular_precio_venta();
imprimir();
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 1er Ejemplo (1 de 3)

// Declaración de una Clase


class producto {
private:
string descripcion;
int precio;
int cantidad;
protected:
int stock;
public:
const float IGV = 0.18;
void carga_datos(string, int, int);
double calcular_precio_venta();
void imprimir();
};
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 1er Ejemplo (2 de 3)
void producto::carga_datos(string _descripcion, int _precio, int _cantidad)
{
descripcion = _descripcion;
precio = _precio;
cantidad = _cantidad;
}

double producto::calcular_precio_venta() {
double precio_venta;
precio_venta = precio * (1 + IGV);
return precio_venta;
}

void producto::imprimir() {
cout << " \nRESULTADOS\n";
cout << "Producto...: " << descripcion << endl;
cout << "Precio.....: " << precio << endl;
cout << "Igv........: " << precio * IGV << endl;
cout << "Precio Vta.: " << calcular_precio_venta() << endl;
cout << "Unidades...: " << cantidad << endl;
cout << "Venta Total: " << calcular_precio_venta() * cantidad << endl;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 1er Ejemplo (3 de 3)

// Programa Principal

int main() {

producto televisor, cocina, plancha;

televisor.carga_datos("TV 50 pulgadas", 2000, 10);


televisor.imprimir();

cocina.carga_datos("Cocina SURGE 4 hornillas", 500, 5);


cocina.imprimir();

return 0;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen 1er Ejemplo (1 de 3)
// Programa Principal
int main() { (CONSOLA)
producto televisor, cocina, plancha;

televisor.carga_datos("TV 50 pulgadas", 2000, 10);


televisor.imprimir();

cocina.carga_datos("Cocina SURGE 4 hornillas", 500, 5);


cocina.imprimir();

return 0;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

2do Ejemplo Programa


Visual C++

➢ Archivo: CUBO.h (Cabecera)


➢ Archivo: CUBO.cpp (Fuente)
➢ Archivo: Principal.cpp (Fuente)

arista
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica 2do Ejemplo Programa Visual C++
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Archivo: CUBO.h (Cabecera)
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica 2do Ejemplo Programa Visual C++
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Archivo: CUBO.cpp (Fuente)
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica 2do Ejemplo Programa Visual C++
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen Archivo: Principal.cpp (Fuente)

arista
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

¿ Qué es la Programación Orientada a Objetos (POO) ?


Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

¿ Qué es la Programación Orientada a Objetos (POO) ?

❑ Es un paradigma de programación que busca que nuestra forma de programar


sea más cercana a la forma como nos relacionamos en nuestro día a día.

❑ Es un paradigma de programación que viene a innovar la forma de obtener


resultados. Los objetos manipulan los datos de entrada para la obtención de
datos de salida específicos, donde cada objeto ofrece una funcionalidad
especial.

❑ El paradigma de programación orientada a objetos es una metodología especial


de programación de software en la que un programa informático se diseña
como la interrelación entre un conjunto de instancias conocidas como objetos.
UNIDADES DE APRENDIZAJE 5
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

UNIDADES DE APRENDIZAJE 5

Unidad 5: PROGRAMACIÓN ORIENTADA A OBJETOS, HERENCIA Y POLIMORFISMO

Paradigmas de la Programación Orientada a Objetos. Instancia de una clase.


Especificación de acceso a los miembros de una clase.
Acceso Privado, Protegido y Público. Constructores y Destructores ().

También podría gustarte