La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Orientada a Objetos

Presentaciones similares


Presentación del tema: "Programación Orientada a Objetos"— Transcripción de la presentación:

1 Programación Orientada a Objetos

2 Introducción e Historia
La finalidad de un lenguaje de programación es "decirle" al ordenador qué es lo que tiene que hacer paso a paso. Esta definición da que pensar: no parecen muy listos los ordenadores. Debido a esto es muy frecuente la expresión Los ordenadores son tontos. Desgraciadamente, el ordenador y las personas hablan idiomas diferentes: el ordenador entiende unas determinadas secuencias de ceros y unos, llamado lenguaje o código máquina. El programador debe darle instrucciones en ese formato Además ese código máquina no es el mismo para todos los ordenadores lo que se traduce en que los programas realizados para un tipo de máquina no sirven para el resto.

3 Combinando correctamente los símbolos será capaz de crear programas
ALGORITMO Es el conjunto de pasos necesarios para resolver un problema. El algoritmo es por tanto la "receta" que señala qué se debe hacer en cada momento y bajo que condiciones hacerlo PROGRAMA Conjunto ordenado de instrucciones expresadas en un lenguaje de programación que implementan un algoritmo. LENGUAJE DE PROGRAMACIÓN Al igual que un lenguaje natural, estaría constituido por: Un conjunto de símbolos: letras, símbolos de puntuación, etc. Léxico del lenguaje. Una serie de normas para la correcta combinación del anterior conjunto. Gramática y semántica del lenguaje. Combinando correctamente los símbolos será capaz de crear programas

4 Breve Historia En la historia de los lenguajes de programación podemos destacar también el hecho de que se han derivado varios tipos de lenguajes a partir de los primeros: 1843: Ada Lovelace desarrolla el primer lenguaje de programación cuando escribió un algoritmo para la máquina analítica de Charles Babbage. 1957 – Fortran: (“The IBM Mathematical Formula Translating System”): Un lenguaje de programación de alto nivel de propósito general. Para cálculo numérico y científico (como alternativa al lenguaje ensamblador). Es el lenguaje de programación más antiguo que se utiliza hoy en día. 1958 – Lisp: (“List Processor”) Utilizado para la notación matemática y temas de ciencias de la computación. 1959 – Cobol: (“Common Business-Oriented Language) Usado principalmente para la informática empresarial. Es el primer lenguaje de programación que se demandan por el Departamento de Defensa de EE.UU.. 1964 – BASIC: (“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado para la simplicidad. Su popularidad explotó a mediados de los años 70 con los computadores personales. 1970 – Pascal: (En honor al matemático/físico francés Blaise Pascal) Utilizado para la enseñanza de la programación estructurada y estructuración de datos.

5 1972 – Lenguaje C: (Basado en un lenguaje anterior llamado “B”) Creado para sistemas Unix. Muchos de lenguajes de programación más populares del mundo son derivados de el, entre ellos tenemos C#, Java, JavaScript, Perl, PHP y Python. 1980 – Ada: (En honor a Ada Lovelace): Es derivado del Pascal. Contratado por el Departamento de Defensa de los EE.UU. en 1977 para el desarrollo de sistemas de software grandes. 1983 – C++: (“C con clases”; ++ es el operador de incremento en “C”) Es una extensión de lenguaje C, con mejoras tales como clases, funciones virtuales y plantillas. 1983 – Objective-C: (Extensión de “C” orientada a objetos) Ampliación de C, se adiciona la funcionalidad de paso de mensajes basado en el lenguaje Smalltalk. 1987 – Perl: Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad. 1991 – Python: Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar. 1993 – Ruby: Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable. 1995 – Java: Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C). 1995 – PHP: (“Personal Home Page”) Usado para la creación de páginas web dinámicas. 1995 – JavaScript: Creado para ampliar la funcionalidad de las páginas web, permite utilizar formularios de presentación/validación, interactividad, animaciones, seguimiento de la actividad del usuario, etc

6 Clasificación Según su proximidad al lenguaje máquina:
Clasificaciones de los lenguajes de programación en función de diferentes criterios: Según su proximidad al lenguaje máquina: Lenguajes de bajo nivel: Son distintos para cada procesador: cada tipo de ordenador posee el suyo. Controlan directamente los recursos hardware de la máquina. Como ejemplos tenemos el lenguaje máquina o el lenguaje ensamblador (Assembly). Lenguajes de medio nivel: Tal y como refleja su nombre este grupo alberga aquellos lenguajes que tienen algunas características de los de bajo nivel y otras de los de alto nivel. El ejemplo más representativo es el lenguaje C. Lenguajes de alto nivel: Son independientes del procesador. Son más sencillos y legibles pero generan un código mucho menos eficiente (velocidad y tamaño) que los de bajo nivel. Para poder ser ejecutados necesitan un procesador que bien trata una vez el código y genera un programa ejecutable por un procesador (compiladores) o bien lo interpretan línea por línea cada vez que son ejecutados (intérpretes). Ejemplos: Pascal, php, Java, etc.

7 Según el propósito del lenguaje:
Lenguajes de propósito general: como el Pascal, el C o incluso el Java aunque este último se relaciona mucho con las aplicaciones empresariales. Lenguajes de propósito específico: php orientado al desarrollo de aplicaciones Web, LISP orientado a la inteligencia artificial, etc. Según su orientación: Lenguajes orientados al procedimiento: son lenguajes imperativos como Pascal en los que se describen los pasos que han de darse para resolver un determinado problema. Se explica como resolver un problema. Lenguajes orientados al problema: como por ejemplo Prolog. En estos lenguajes lo que se describe es el problema en sí; son de tipo declarativo. Lenguajes orientados a objeto: son lenguajes en los que se modela la realidad centrándose en la elementos que la componen.

8 Entornos de programación
Un entorno de programación es un programa o conjunto de programas que engloban todas las tareas necesarias para el desarrollo de un programa o aplicación. Estas tareas son básicamente las siguientes: Edición del programa. Compilación y enlazado. Ejecución. Depuración. Editor del programa El primer elemento necesario para el desarrollo de un programa es un editor de texto. Un editor es un programa que nos permite escribir (editar) las instrucciones del programa y posteriormente guardar el programa en un fichero en un soporte de almacenamiento.

9 Compilador Enlazadores Depuradores
Es un programa cuyo cometido es realizar la conversión de un programa escrito en un lenguaje de programación a su correspondiente equivalente en lenguaje máquina. El resultado que devuelve un compilador es un programa que ya puede ser ejecutado por el ordenador destino sin la necesidad de que el compilador esté presente. Por ejemplo, el lenguaje Pascal o el lenguaje C son lenguajes de programación que necesitan ser compilados. Cuando la conversión se realiza entre el lenguaje ensamblador (Assembly) y el código máquina, el compilador recibe el nombre específico de Ensamblador (Assembler). Enlazadores Por simplificación y para facilitar la comprensión de los conceptos anteriores se ha señalado que los compiladores y los ensambladores (caso particular de compilador) generan código máquina que puede ser ejecutado por el ordenador. Sin embargo esto no es totalmente cierto ya que hay una etapa de enlazado que debe ser realizada por otro programa denominado enlazador (linker). Depuradores Los depuradores (debuggers) son capaces de ejecutar el programa paso a paso incluyendo además un conjunto de facilidades que permiten observar el valor de las variables y estructuras de datos permitiendo así una mejor localización de errores no evidentes

10 Programación OO.  Define una serie de conceptos y técnicas de programación para representar acciones o cosas de la vida real basada en objetos, a diferencia de otras formas de programación como por ejemplo la estructurada, con la POO trabajamos de manera distinta vinculando diferentes conceptos tales como clases, objetos, métodos, propiedades, estados, herencia, encapsulación entre otros, generando cada vez interrelaciones en nuestro desarrollo en pro del funcionamiento del sistema principal, definiendo el programa como un conjunto de estos objetos relacionados entre si.

11 Conceptos Clases Las clases son uno de los principales componentes de un lenguaje de programación, pues en ellas ocurren todos los procesos lógicos requeridos para un sistema, en si podemos definirlas como estructuras que representan objetos del mundo real, tomando como objetos a personas, lugares o cosas, en general las clases poseen propiedades, comportamientos y relaciones con otras clases del sistema Nombre : Contiene el Nombre de la Clase. Atributos : Representan las propiedades que caracterizan la clase. Métodos : Representan el comportamiento u operaciones, la forma como interactúa la clase con su entorno.

12 Objetos Los objetos representan una entidad concreta o abstracta del mundo real, en programación básicamente se le conoce como la instancia de una clase en si es lo que da el sentido a estas. Al igual que las clases se componen de tres partes fundamentales: Estado: Representa los atributos o características con valores concretos del objeto. Comportamiento : Se define por los métodos u operaciones que se pueden realizar con el. Identidad : Es la propiedad única que representa al objeto y lo diferencia del resto. En la imagen, los moldes representan las clases, mientras que las galletas obtenidas de estos moldes representan los objetos instancias de estas clases, por ejemplo atributos del objeto galleta podría ser sabor, color, tamaño etc.

13 Atributo Son los datos o variables que caracterizan al objeto y cuyos valores en un momento dado indican su estado. Un atributo es una característica de un objeto. Mediante los atributos se define información oculta dentro de un objeto, la cual es manipulada solamente por los métodos definidos sobre dicho objeto Un atributo consta de un nombre y un valor. Cada atributo está asociado a un tipo de dato, que puede ser simple (entero, real, lógico, carácter, string) o estructurado (arreglo, registro, archivo, lista, etc.) Los modos de acceso son: Público: Atributos (o Métodos) que son accesibles fuera de la clase. Pueden ser llamados por cualquier clase, aun si no está relacionada con ella. Este modo de acceso también se puede representar con el símbolo +. Privado: Atributos (o Métodos) que sólo son accesibles dentro de la implementación de la clase. También se puede representar con el símbolo –. Protegido: Atributos (o Métodos) que son accesibles para la propia clase y sus clases hijas (subclases). También se puede representar con el símbolo #.

14 Método Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o consultar el valor de sus atributos. Los métodos constituyen la secuencia de acciones que implementan las operaciones sobre los objetos. La implementación de los métodos no es visible fuera de objeto.

15 El Enfoque Orientado a Objeto
Se basa en cuatro principios que constituyen la base de todo desarrollo orientado a objetos. Estos principios son: la Abstracción, el Encapsulamiento, la Modularidad y la Herencia.

16 Abstracción La abstracción permite resaltar la parte mas representativa de algo, ignorando detalles para centrarse en lo principal.  La imagen es muy fácil de identificar, con base a ella podemos crear una clase persona, o la clase hombre, humano entre otras, pero obviamente vemos que la imagen no tiene elementos como ojos, nariz, boca, rostro en general, ni dedos, pies, manos o cuello pero entonces porque decimos que es una persona? Precisamente aquí estamos aplicando el concepto de abstracción, ya que nos fijamos en lo mas representativo de algo, en este caso vemos que se tiene una cabeza, tronco, brazos y pies, con esto es suficiente para saber que es una persona sin fijarnos en los detalles mencionados anteriormente. Las clases abstractas permiten crear métodos generales con un comportamiento común para otras clases concretas sin importar sus características ni el comportamiento que usen para dichos métodos.

17 Modularidad Es la propiedad que permite tener independencia entre las diferentes partes de un sistema. La modularidad consiste en dividir un programa en módulos o partes, que pueden ser compilados separadamente, pero que tienen conexiones con otros módulos. En un mismo módulo se suele colocar clases y objetos que guarden una estrecha relación. El sentido de modularidad está muy relacionado con el ocultamiento de información Herencia. La herencia en java representa lo que conocemos de herencia en el mundo real, básicamente mediante esta obtenemos las características o rasgos comunes de nuestros padres o abuelos, en java es el mismo enfoque permitiendo la creación de nuevas clases basadas en clases ya existentes, con las cuales podemos obtener las características de las clases padres, heredando campos, atributos, métodos o funcionalidades.

18 Se representa por 3 niveles :
Encapsulamiento.   Este concepto es uno de los mas importantes en términos de seguridad dentro de nuestra aplicación, la encapsulación es la forma de proteger nuestros datos dentro del sistema, estableciendo básicamente los permisos o niveles de visibilidad o acceso de nuestros datos. Se representa por 3 niveles : Público: Se puede acceder a todos los atributos o métodos de la clase. Protegido: Se puede acceder a los atributos o métodos solo en la misma jerarquía de herencia. Privado: Solo se puede acceder a los atributos o métodos de la clase en la que se encuentran.


Descargar ppt "Programación Orientada a Objetos"

Presentaciones similares


Anuncios Google