Programación Orientada o Objetos

Documentos relacionados
PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Sobre Carga de Operadores

Tema: Plantillas en C++.

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

Programación orientada a objetos I

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Problemas del Composición condicional

Clases y Objetos en C++

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

PROGRAMACIÓN ORIENTADA A OBJETOS

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

Introducción a C++ y Code::Blocks

PROGRAMACION ORIENTADA A OBJETOS EN C++

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo.

Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Programación Orientada a Objetos con Java

Fundamentos de la programación

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Informática I para Bachillerato

Fundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Programación Orientada a Objetos en C++

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

Tema: Clases y Objetos en C++.

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Introducción a la Programación orientada a objetos con C++

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Conceptos Básicos. Programación Orientada a Objetos 2

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación en Lenguaje C

Tema 2: Programación basada en Objetos

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tema 3. Tipos de datos simples

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

Lenguaje de Programación: C++ Directivas al preprocesador

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Introducción rápida a la programación (estructurada ) con C++

Programación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez

INTERACCION ENTRE OBJETOS

Edwin Andrés Cubillos Vega

Guía práctica de estudio 04: Clases y objetos

INTRODUCCIÓN A LA POO EN C++

Funciones: Pasos por Referencia Recursividad

UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof:

Fundamentos de la programación

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Estructura de datos y Programación

Programación Estructurada

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Tema: Sobrecarga. Objetivos. Materiales y Equipo. Introducción Teórica. Programación II. Guía No. 7

TEMA 3:Programación con Clases y Objetos.

Tipos de datos y operadores en C++

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Tipos Recursivos de Datos

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

Programación Orientada a Objetos

Fundamentos de Programación Orientada a Objetos ( POO ) Parte 2 Desarrollo de Software

Principios de Computadoras II

Tema: Sobrecarga de Operadores.

Programación C++ Tipos Parametrizados. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional

PROGRAMACIÓN EN JAVA

Introducción al Lenguaje "C++"

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Transcripción:

Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz

Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon el lenguaje C. Este lenguaje de programación fue diseñado con el objetivo de escribir Sistemas Operativos. Debido a su simplicidad y versatilidad, pronto se utilizó para escribir distintos tipos de programas.

Programación Orientada a Objetos El problema principal del lenguaje C es que es un lenguaje lenguaje orientado a procedimientos, es decir, el programador debe empezar describiendo los datos y luego escribir los procedimientos para manipular los datos.

Programación Orientada a Objetos Los programadores se dieron cuenta que ellos podian crear programas más claros y fáciles de entender si tomaban un conjunto de datos, y los agrupaban junto con las operaciones que trabajaban sobre esos datos.

Programación Orientada a Objetos Varios lenguajes de programación orientados a objetos se han desarrollado. Sin embargo, C++ desde el principio de los 80 ha sido uno de los más populares. C++ fue inventado por Bjarne Stroustrup

Programación Orientada a Objetos El Paradigma de Programación Orientado a Objetos es una técnica de programación que usa objetos y sus interacciones para diseñar aplicaciones y buenos programas de computadora.

Programación Orientada a Objetos La Programación Orientado a Objetos es una forma particular de programar que se asemeja más a la forma como expresamos las cosas en la vida real.

Programación Orientada a Objetos La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.

Programación Orientada a Objetos En programación convencional los programas se dividen en dos componentes: Procedimientos y Datos. Las estructuras de datos utilizadas en programación son globales o se pasan como parámetros. En esencia los datos se tratan separadamente de los procedimientos.

Objetos En POO un programa se divide en componentes que contienen procedimientos y datos. Cada componente se considera un objeto Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos.

Objetos En POO los objetos pueden se cualquier entidad del mundo real: Objetos físicos automóviles en una simulación de tráfico Edificios modelados en computadora árboles, etc Elementos de interfaces gráficos de usuarios ventanas iconos menús cursores

Objetos En POO los objetos pueden se cualquier entidad del mundo real: Estructuras de datos Arreglos Números enteros árboles binarios Tipos de datos definidos por el usuario números complejos hora del día

Objetos Un Objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. Los datos se denominan atributos y las funciones métodos. Los datos y las funciones se encapsulan en una única entidad. Los datos están ocultos y sólo mediante las funciones miembro es posible acceder a ellos.

Objetos Los objetos son entidades que combinan estado, comportamiento e identidad: El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos). El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.

Objetos Los objetos son entidades que combinan estado, comportamiento e identidad: La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).

Clases Una Clase es una colección de objetos similares y un objeto es una particulirarización de una definición de una clase. Una Clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones asociadas con ese tipo.

Clases Las clases son las definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Clases Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase. En general, los términos objetos e instancias de una clase se pueden utilizar indistintamente.

Estructura de una Clase class NombreDeLaClase{ Tipo atributo1; Tipo atributo2;.. NombreDeLaClase(){ } ~NombreDeLaClase(){ } // Constructor // Destructor Tipo método1(){ } Tipo método2(){ } };

Mensajes Los objetos pueden ser activados mediante la recepción de mensajes. Un mensaje es simplemente una petición para que un objeto se comporte de una determinada manera, ejecutando uno de sus métodos. La técnica de enviar mensajes se conoce como pase de mensajes.

Mensajes Estructuralmente un mensaje consta de tres partes: la identidad del objeto receptor El método cuya ejecución se ha solicitado cualquier otra información adicional que el receptor pueda necesitar para ejecutar el método requerido.

Mensajes En C++, la notación utilizada es nombredelobjeto.método(parámsadicionales)

Sobrecarga de Operadores La sobrecarga de operadores es un mecanismo de abstracción que permite la modificación de la funcionalidad de los operadores incorporados en el lenguaje de programación. C++ contempla la sobrecarga de operadores.

Sobrecarga de Operadores La sobrecarga de operadores sirve para construir sentencias sencillas que involucren los tipos de datos definidos por el usuario. Ejemplo: Persona p1, p2; If( p1 < p2 ){...

Sobrecarga de Operadores Los operadored que se pueden sobrecargar son: + - * / % ^ & ~! = < > += -= *= /= %= ^= &= = << >> >>= <<= ==!= <= >= && ++ - - ->*, -> [] () new new[] delete delete[]

Sobrecarga de Operadores Ejemplo: Archivo VectorEnteros.h class VectorEnteros { int tamano; int *valores; public: VectorEnteros(); ~VectorEnteros();... bool operator==(vectorenteros); };

Sobrecarga de Operadores Ejemplo: Archivo VectorEnteros.cpp #include VectorEnteros.h bool VectorEnteros::operator==(VectorEnteros v){ int i; if(tamano!= v.tamano) return false; else{ for(i=0; i<tamano; i++){ if(this->valores[i]!= v.valores[i]) return false; } return true; } }

Plantillas (Templates) Los templates proporcionan una forma simple de representar un amplio rango de conceptos generales y una forma simple de combinarlos. Las plantillas proporcionan un mecanismo para pasar los tipos de datos como parámetros En C++ los tipos de datos se pueden pasar como parámetros en la definición de la clase

Plantillas (Templates) template <class Tipo> class NombreClase { Tipo atributo1;... } NombreClase(); Tipo método1(); template <class Tipo> NombreClase<Tipo>::NombreClase(){... }

Espacio de Nombres (namespace) Los espacios de nombres son un mecanismo de abstracción que permite expresar agrupamientos lógicos. Esto quiere decir, si una serie de declaraciones puede agruparse de acuerdo a un criterio lógico, entonces las podemos colocar en un mismo espacio de nombres.

Espacio de Nombres (namespace) Los espacios de nombres permiten organizar el código de acuerdo a las funciones que cumple cada elemento. Los espacios de nombres permiten agrupar entidades como: Clases Objetos Funciones Bajo un mismo nombre

Espacio de Nombres (namespace) El formato de un espacio de nombres es como sigue: namespace Identificador{ } Entidades Donde Identificador es el nombre del espacio de nombres y Entidades son Clases, Objetos o funciones

Espacio de Nombres (namespace) Este mecanismo es especialmente útil en casos donde existen objetos globales o funciones que tengan el mismo identificador.

Espacio de Nombres (namespace) Ejemplo: #include <iostream> using namespace std; namespace first { int var = 5; } namespace second { double var = 3.1416; } int main () { cout << first::var << endl; cout << second::var << endl; }