POO en C++ Programación Orientada a Objetos. Declaración de clases con struct Las clases en C++ pueden definirse utilizando la construcción struct Ejemplo:

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de java básico (scjp)
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Clases en C++.
Definición de Clases y Variables de referencia.
Herencia en C#.
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Creación y destrucción de objetos
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Arquitectura CLARO-TECNOTREE
Universidad Domingo Savio
El proceso de desarrollo de software
El proceso de desarrollo de software
MANEJO DE EXCEPCIONES EN C++
POO en C++: Sintaxis En el .h debe aparecer la declaración de la clase: class NombreClase { private: // atributos y métodos privados public: // atributos.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
1.2 Sintaxis del lenguaje Java.
Aplicación del paradigma orientado a objetos
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Algoritmos y Estructuras de Datos
Encapsulamiento y Abstracción
Programación Orientada a Objetos en Java
SOBRECARGA DE FUNCIONES
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Programación Orientada a Objetos usando C++
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Estructura de Datos En C++
Introducción a clases Programación Orientada a Objetos.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
SCJP Sun Certified Programmer for Java 6
El lenguaje de programación Java
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++. 2 PROYECTOS EN C++
Clases en C++ Agustín J. González ELO329.
1 Introducción a Clases Agustín J. González ELO329.
Programación avanzada en Java Miguel Ángel Corella 22 de Septiembre de 2005.
Control de errores visual basic
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Programación orientada a objetos. Existen 3 niveles de visibilidad: ◦ public: significa que los atributos de una clase pueden ser accedidas desde fuera.
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend) Agustín J. González ELO329.
1 Introducción a Clases Agustín J. González Versión original de Kip Irvine ELO329.
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend) Agustín J. González Versión Original de Kip Irvine ELO326: Seminario II 2do. Sem
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend) Agustín J. González Versión Original de Kip Irvine ELO329.
Programación Orientada a Objetos
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Detalles Generales sobre Java
Sesión 10: Sobrecarga (2) /1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática II Universidad.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Curso de Java Introducción al Paradigma Orientado a Objetos Prof. Ing. Guido Acosta.
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend)‏ Agustín J. González ELO329.
6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Desarrollador Profesional de Juegos Programación III Unidad I Excepciones Tipos.
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Herencia en C++ Agustín J. González ELO329. Diseño y Programación Orientados a Objetos 2 Motor ElectricMotor Motor y ElectricMotor Consideremos dos clases.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Transcripción de la presentación:

POO en C++ Programación Orientada a Objetos

Declaración de clases con struct Las clases en C++ pueden definirse utilizando la construcción struct Ejemplo: enum Boolean {false, true}; //false = 0, true = 1 struct Point{ int X; int Y; Boolean Visible; } Por omisión todos los miembros datos son públicos. Objetos de la clase Point. Point Origen; Point Row[80]; Point *point_ptr; point_ptr = &Origen; point_ptr = Row;

Definición de métodos Los métodos pueden definirse dentro o fuera de la clase Ejemplo dentro de la clase struct Point{ int X; int Y; Boolean Visible; int GetX(){return X;} //función en línea (in line) } Ejemplo fuera de la clase struct Point{ int X; int Y; Boolean Visible; int GetX(); } Point::GetX(){return X;}

Invocación de métodos (mensajes) Para invocar a los métodos es necesario crear un objeto de la clase (instanciar) y enviarle mensajes. El formato es nombre-objeto.función-miembro(argumentos) Ejemplo Point EstePunto; EstePunto.X = 17; EstePunto.Y = 42; EstePunto.Visible = true; xx = EstePunto.GetX();

Constructores Es conveniente iniciar los objetos con valores de los miembros dato bien definidos. Un constructor tiene por objeto iniciar los valores de los miembros datos adecuadamente. Los constructores en C++ son métodos que tienen el mismo nombre que la clase a que pertenecen. struct Point{ int X; int Y; Boolean Visible; int GetX(){return X;} Point(int NewX, int NewY); //constructor } Point::Point(int NewX, int NewY){ X = NewX; Y = NewY; }

Valores por defecto En C pueden declararse métodos con parámetros con valores por defecto. De esta manera no es necesario especificar todos los argumentos al invocar un método. struct Point{ int X; int Y; Boolean Visible; int GetX(){return X;} Point(int NewX, int NewY); //constructor } Point::Point(int NewX = 0, int NewY = 0){ X = NewX; Y = NewY; } Point Origen(1,1); //X = 1, Y = 1 Point EstePunto(3); //X = 3, Y = 0 Point AquelPunto(); //X = 0, Y = 0

Control de acceso a miembros privateLos miembros pueden ser accedidos solo dentro de la misma clase protectedLos miembros pueden ser accedidos solo dentro de la misma clase y por funciones miembro de clases derivadas de esta clase publicLos miembros pueden ser accedidos sin restricciones C++ provee tres modificadores de acceso a miembros, como se resume en la siguiente tabla:

Ejemplo de control de acceso struct Point{ private: int X; int Y; Boolean Visible; public: int GetX(){return X;} Point(int NewX, int NewY); //constructor } Point EstePunto(); EstePunto.X = 5; //ERROR xx = EstePunto.GetX(); //ACEPTABLE

Declaración mediante class Las clases en C++ pueden definirse utilizando la construcción class Ejemplo: enum Boolean {false, true}; //false = 0, true = 1 class Point{ int X; int Y; Boolean Visible; public: int GetX(); Point(int NewX, int NewY); } Por omisión todos los miembros datos son privados.

La clase Point #include // necesaria para I/O #include class Point { // define clase Point int X; // X y Y son privados por omisión int Y; public: Point(int InitX, int InitY) {X = InitX; Y = InitY;} int GetX() {return X;} // funciones miembro públicas int GetY() {return Y;} }; int main() { int YourX, YourY; cout << "Set X coordinate: "; // solicitud cin >> YourX; // entrada de YourX cout << "Set Y coordinate: "; // otra solicitud cin >> YourY; // entrada de YourY // llamada al constructor Point YourPoint(YourX, YourY); // llamada a función miembro cout << "X is " << YourPoint.GetX(); cout << '\n'; // salto de línea // llamada a función miembro cout << "Y is " << YourPoint.GetY(); cout << '\n'; getch(); //espera carácter return 0; }

Herencia Redefinición de la clase Point (archivo Point.h de encabezado) class Location { protected: // permite a clases derivadas acceder datos privados int X; int Y; public://estas funciones pueden accederse desde fuera Location(int InitX, int InitY); int GetX(); int GetY(); }; class Point : public Location{//derivada de Location // derivación pública indica que X y Y son protegidos // dentro de Point protected: Boolean Visible;// las clases derivadas de Point // necesitarán acceso public: Point(int InitX, int InitY); // constructor void Show(); void Hide(); Boolean IsVisible(); void MoveTo(int NewX, int NewY); };

Acceso en clases Acceso en clase base Modificador de acceso Acceso heredado en base public privatepublicno accesible protectedpublicprotected publicprivate no accesible protectedprivate

Archivo de implementación #include "point.h" #include // funciones miembro de la clase // Location Location::Location(int InitX, int InitY) { X = InitX; Y = InitY; }; int Location::GetX(void) { return X; }; int Location::GetY(void) { return Y; }; // funciones miembro de la clase Point: Estas suponen // que el programa principal inicia las gráficas Point::Point(int InitX, int InitY) : Location(InitX,InitY) { Visible = false; // la hace invisible por default }; void Point::Show(void) { Visible = true; putpixel(X, Y, getcolor()); // usa el color default }; void Point::Hide(void) { Visible = false; // uses color de fondo para borrar putpixel(X, Y, getbkcolor()); }; Boolean Point::IsVisible(void) { return Visible; }; void Point::MoveTo(int NewX, int NewY) { Hide(); // hace el punto invisible X = NewX; // cambia X y Y a una nueva posición Y = NewY; Show(); // muestra el punto en la nueva posición }; Archivo de implementación de las clases Location y Point (archivo Point2.cpp ) invoca constructor de Location

Programa de ejemplo #include // Biblioteca gráfica #include // para getch() #include "point.h" // declaraciones de Point y Location int main() { // inicia el sistema gráfico int graphdriver = DETECT, graphmode; initgraph(&graphdriver, &graphmode, "..\\bgi"); // Mueve un punto a través de la pantalla Point APoint(100, 50); // Inicia X, Y a 100, 50 APoint.Show(); // APoint semuestra getch(); // espera una tecla APoint.MoveTo(300, 150); // APoint se mueve a 300,150 getch(); // espera una tecla APoint.Hide(); // APoint se oculta getch(); // espera una tecla closegraph(); // Restaura pantalla original return 0; }