Programación Orientada a Objetos en C++

Slides:



Advertisements
Presentaciones similares
Introducción a C++ Sistemas Operativos
Advertisements

Programación orientada a objetos en Visual Basic .NET
Métodos y parámetros.
Introducción a C#.
El lenguaje de programación C - El primer programa -
Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Características Generales y Entornos de Desarrollo
Francisco X. Fagas A. Intergrupo - Ecuador
Curso de java básico (scjp)
Clases en C++.
Cetis No. 119 Profa. Graciela Prado Becerra
Herencia en C#.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
Ejemplo de Programa C++
DESCRIPCION DEL SERVICIO LOGIN (Identificación de Usuario)
Listas enlazadas c++ Prof. Franklin Cedeño.
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++.
Programación, Algoritmos y Estructuras de Datos
A partir del lenguaje C Entorno de programación Visual C++
La Programación Orientado a Objetos
“Programación orientada a Objetos II”
Inner classes CAPITULO 8.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II Prof. Dr. Gustavo Patiño MJ
Herencia y Polimorfismo
1.2 Sintaxis del lenguaje Java.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
SOBRECARGA DE FUNCIONES
HERENCIA.
Primer Programa en JAVA
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Modificadores.
TALLER DE PROGRAMACIÓN III
Herencia y Polimorfismo en JAVA
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
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.
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:
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
ÁRBOLES BINARIOS DE BÚSQUEDA
El lenguaje de programación Java
ACIDE A C onfigurable I ntegrated D evelopment E nvironment (Un entorno integrado de desarrollo configurable)
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Patrones Creacionales
Computación II Repaso de java Karina Figueroa Mora.
EMULADOR.  Una vez tengamos el proyecto listo para ejecutar, entra en escena el emulador de Android.  Éste proporciona una vista especial para comprobar.
Programación Orientada a Objetos
Curso de Java La tecnología Java
Unidad II Introducción a la programación en C++
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
DESCRIPCION DEL SERVICIO “LISTADO” (Listado de Usuario) Descripción: Obtención de un listado de usuarios accediendo a una Base de Datos SQL a través de.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
PRINCIPIOS DE PROGRAMACIÓN
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Clases “ Es una Abstracción de un elemento del mundo real ”
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas PROGRAMACION ORIENTADA A OBJETOS Asignatura:
Ejercicios… Elaborar un documento que incluya: -Identificación y justificación del tipo de paradigma empleado en una serie de ejercicios 3 de estos Crear.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Introducción a Netbeans Programación 2 – Curso 2011/2012 Juan Manuel Gimeno José Luis González.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
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.
Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar los.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Programación Orientada a Objetos en C++ Febrero 2009

Índice Teoría de la Orientación a Objetos Desarrollo de un proyecto OO Ejercicios

Orientación a Objetos

Introducción Programación Orientada a Objetos (POO): Modo de entender y clasificar el mundo Simple e intuitivo Escalable Un concepto se define en términos de: ¿qué tiene?  campos ¿qué hace?  métodos

Clases y objetos Clase: concepto abstracto coche Objeto: instancia del concepto seat ibiza matrícula 43456-FWZ Una clase puede tener múltiples instancias (objetos) Clase: public class Car{ …} Objeto: Car miCoche(…);

Campos Cosas que tiene un objeto Coche: motor, puertas, depósito, velocidad… La configuración en un momento dado de los campos se llama estado Pueden tener cualquier tipo, incluso ser otros objetos El objeto debe controlar el cambio de valor de todos los campos críticos

Métodos Cosas que puede hacer un objeto Coche: acelerar, frenar, abrir/cerrar puertas… Los métodos suelen modificar los campos acelerar  modifica la velocidad abrir puerta  modifica el estado de las puertas

Identificadores de acceso Campos y métodos pueden definirse con tres tipos de acceso public: cualquier objeto puede acceder private : sólo métodos del objeto pueden acceder protected: sólo el objeto y objectos de sus clases hijas pueden acceder

Ejemplos class class_name { id_acceso1: miembro1; Crectangle.h class class_name { id_acceso1: miembro1; id_acceso2: miembro2; ... }; class CRectangle { int w, h; public: CRectangle(int,int); int area(void); }; Crectangle.cpp int CRectangle::area () {return (w*h);} void CRectangle::CRectangle (int a, int b) { w = a; h = b;} main.cpp #include "Car.h" CRectangle rect(3,4); cout << "area: " << rect.area();

Herencia A veces, campos y métodos son compartidos por varias clases: Acelerar es un método compartido por coches y trenes Para simplificar el código, se usa la herencia Creamos una clase Vehiculo que tenga los métodos comunes a coche y tren Creamos clases hijas que heredan de ella

Herencia Vehículo depósito velocidad acelerar frenar Coche Tren Avión puertas vagones puertas despegar aterrizar

Métodos abstractos Si la clase padre define un método, la clase hija puede usar ese método sin necesidad de redefinirlo Si la clase padre no define un método (método abstracto), la clase hija tiene que definirlo obligatoriamente.

… … Avión Vehículo aéreo queroseno aterrizar despegar Helicóptero aterrizaje horizontal despegue horizontal queroseno aterrizar despegar Helicóptero Vehículo aterrizaje vertical despegue vertical depósito velocidad Vehículo terrestre acelerar frenar Tren gasolina Vagón 1..n vagones … puertas asientos Vagón conductor Vagón pasajeros Coche puertas=1 asientos=2 puertas=2 asientos=20 …

Construir un proyecto

Construir un proyecto C++ Entorno de desarrollo Eclipse IDE (Integrated Development Environment) plugin CDT (C/C++ Development Tooling) Compilador de C/C++ Windows: MinGW o Cygwin Linux: GCC (GNU C/C++ Compiler) Ya instalado

Proyecto C++ en Eclipse File > New > Project > C++ Project Si no aparece en el menú, buscar en Other… Project Name: el que queramos, normalmente sin espacios HelloWorld, cars, pruebaC … Toolchain: MinGW GCC o GCC depende de la plataforma y requisitos

Añadir clases Clic derecho en el nombre del proyecto en el menú de la izquierda (New > Class) o botón “New C++ class” Los nombres de clase siempre comienzan por mayúscula y sin espacios

Construir el proyecto Detecta errores de compilación Project > Build Project Detecta errores de compilación Errores sintácticos generalmente Genera los ficheros objeto (.o) si no hay errores

Depurando el proyecto Permite controlar la ejecución del programa: Estableciendo puntos de control (checkpoints) Ejecutando el programa paso a paso Examinando el valor de las variables Run > Debug (F11) Añadir checkpoints: doble clic en el margen gris izquierdo

Ejecutar el proyecto Clic derecho sobre el proyecto Botón Run Run as > Local C/C++ Application Botón Run Menú Run > Run (Ctrl+F11) La entrada/salida aparece en la pestaña Console en la parte de abajo del IDE

Ejecutar el proyecto Una vez compilado, el proyecto también se puede ejecutar externamente Carpeta Binaries dentro del proyecto Extensión .exe Doble clic en el fichero ejecutable Tutorial completo: http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.cdt.doc.user/getting_started/cdt_w_newproj.htm

Ejercicios

HelloWorld Crear un proyecto en Eclipse+CDT File > New > C++ Project New > Class Project > Build Project Run > Run (Ctrl+F11)

HelloWorld #include <iostream> using namespace std; int main () { // Say Hello five times for (int index = 0; index < 5; ++index) cout << "HelloWorld!" << endl; exit(0); }

Ejemplo: mi Coche Un coche desde la filosofía OO ¿Qué tiene? Físico: puertas, motor, depósito… Abstracto: velocidad, aceleración, consumo… Estado: parado con una puerta abierta a 120 Km/h con el depósito medio lleno ¿Qué hace? Acelerar, abrir/cerrar puertas, repostar…

Ejercicio 1 Crear una clase coche que tenga los siguientes campos: Matrícula, marca y modelo (públicos) Velocidad, velocidad máxima y aceleración Número de puertas Generar los constructores y destructores Crear un constructor que inicie los parámetros Instanciar un objeto de la clase y mostrar por pantalla sus atributos públicos

Ejercicio 2 Controlar el estado de las puertas Pistas: Crear métodos para abrir y cerrar puertas Almacenar el estado de las puertas (abiertas/cerradas) Pistas: usar array de bool (true=abierto) usar constantes enteras para identificar las puertas (MALETERO=0, DETRAS_IZQ=1, etc)

Ejercicio 3 Implementar el movimiento del coche: Acelerar Entrada: tiempo durante el que acelera Efecto: v=min(a·t, vmax) Frenar: análogo a la aceleración Considerar que una vez en movimiento se mantiene a velocidad constante Comprobar que no acelere si hay puertas abiertas

Ejercicio 4 Implementar el consumo del coche: Añadir campos: deposito y depositoMax consumo (litros por kilómetro) cuentaKilometros Añadir método repostar(float litros) Añadir método crucero(int segundos) que modifique: depósito, cuentaKilometros d=vt Comprobar que funciona correctamente repostar 20 litros acelerar 10s crucero 1000s frenar 10s