Download Diapositiva 1 - Docencia FCA-UNAM

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Ocaml wikipedia , lookup

Common Lisp wikipedia , lookup

Objeto inmutable wikipedia , lookup

Transcript
UNIVERSIDAD LATINA (UNILA)
INTRODUCCION A LA PROGRAMACIÓN
ORIENTADA A OBJETOS
LE, EI, Profesor Ramón Castro Liceaga
Introducción
• La programación orientada a objetos es
un enfoque de programación de los más
populares y viene teniendo gran
aceptación en el desarrollo de proyectos
de software.
Que es la Programación Orientada a Objetos ?
• Es un estilo de programación en que cada
programa es visto como un objeto se forma por
una serie de componentes, autocontenidos que
cooperan para realizar las acciones de la
aplicación completa.
Origen
• Los conceptos de la programación
orientada a objetos tienen origen en
Simula 67, un lenguaje diseñado para
hacer simulaciones, creado por Ole-Johan
Dahl y Kristen Nygaard del Centro de
Cómputo Noruego en Oslo.
Diferencias con la programación estructurada
•
Las principales diferencias entre la programación estructurada y la orientada
a objetos son:
• La programación orientada a objetos es más moderna, es
una evolución de la programación estructurada
• La programación orientada a objetos se basa en lenguajes
que soportan sintáctica y semánticamente la unión entre los
tipos abstractos de datos y sus operaciones (a esta unión se
la suele llamar clase).
• La programación orientada a objetos incorpora en su
entorno de ejecución mecanismos tales como el
polimorfismo y el envío de mensajes entre objetos.
Conceptos orientados a objetos
•
•
•
•
•
•
•
•
Objeto
Clase
Método
Evento
Mensaje
Propiedad o atributo
Componentes de un objeto
Representación de un objeto
Características de la POO
Las características mas importantes son:
•
•
•
•
•
Abstracción
Encapsulamiento
Principio de ocultación
Polimorfismo
Herencia
Que es un paradigma ?
• Paradigma: Modo de Pensar expresado
en breve (Un punto de vista personal, una
metáfora, un esquema-mental, una visión
del Mundo o cosmovisión)
• Por ejemplo: ¿Cómo pensaba la gente
que era la Tierra antes de 1492?
Etimología
• El término paradigma se origina en la
palabra griega παράδειγμα (paradeigma),
que significa "modelo" o "ejemplo". A su
vez tiene las mismas raíces que
παραδεικνύναι, que significa "demostrar".
Antecedentes
• 1960 un modelo o patrón en cualquier
disciplina científica u otro contexto
epistemológico.
• 1900 el diccionario Merriam-Webster
definía su uso solamente en tal contexto,
o en retórica para referirse a una parábola
o a una fábula. En lingüística, Ferdinand
de Saussure ha usado paradigma para
referirse a una clase de elementos con
similitudes.
Que es un paradigma de programación ?
• El paradigma de programación representa un
enfoque particular o filosofía para la
construcción del software.
• El enfoque no es mejor uno que otro sino que
cada uno tiene ventajas y desventajas. También
hay situaciones donde un paradigma resulta
más apropiado que otro.
Aspectos que comprende ?
• El paradigma de programación se refiere a:
¿Estilo de Programación?
Manera de Visualizar y Resolver Problemas de Programación
Procedural, Imperativo
Lógico, Declarativo
Visual
Paralelo
Orientado a Objetos
Filosofía
Historia, Objetivos y Metas
Modelos y Enfoques
Conceptos
Principios
Soporte
Notación, Metodologías
Herramientas y Tecnologías
Ejemplos de paradigmas de programación ?
• El paradigma imperativo o por procedimientos
es considerado el más común y está
representado, por ejemplo, por el C o por
BASIC.
• El paradigma funcional está representado por la
familia de lenguajes LISP (en particular
Scheme), ML o Haskell.
• El paradigma lógico, un ejemplo es PROLOG.
• El paradigma orientado a objetos. Un lenguaje
completamente orientado a objetos es Smalltalk.
El mas utilizado ?
• Actualmente el paradigma de programación más
usado debido a múltiples ventajas respecto a
sus anteriores, es la programación orientada a
objetos.
Clases y Objetos
• Objeto es la entidad provista de un conjunto de
propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos).
Corresponden a los objetos reales del mundo
que nos rodea, o a objetos internos del sistema
(del programa). Es una instancia a una clase.
• Las Clases son 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.
Método
• Es un algoritmo asociado a un objeto (o a una
clase de objetos), cuya ejecución se
desencadena tras la recepción de un
"mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede
hacer. Un método puede producir un cambio en
las propiedades del objeto, o la generación de
un "evento" con un nuevo mensaje para otro
objeto del sistema.
Evento
• Es un suceso en el sistema (tal como una
interacción del usuario con la máquina, o un
mensaje enviado por un objeto). El sistema
maneja el evento enviando el mensaje
adecuado al objeto pertinente. También se
puede definir como evento, a la reacción que
puede desencadenar un objeto, es decir la
acción que genera.
Mensaje
• Es una comunicación dirigida a un objeto, que
le ordena que ejecute uno de sus métodos con
ciertos parámetros asociados al evento que lo
generó.
Propiedad o atributo
• Es contenedor de un tipo de datos asociados a
un objeto (o a una clase de objetos), que hace
los datos visibles desde fuera del objeto y esto
se define como sus características
predeterminadas, y cuyo valor puede ser
alterado por la ejecución de algún método.
Estado interno
• Es una propiedad invisible de los objetos, que
puede ser únicamente accedida y alterada por
un método del objeto, y que se utiliza para
indicar distintas situaciones posibles para el
objeto (o clase de objetos).
Componentes de un objeto
• Los componentes de un objeto son:
•
•
•
•
atributos,
identidad,
relaciones
y métodos.
Representación de un objeto
• Un objeto se representa por medio de una tabla
o entidad que esté compuesta por sus atributos
y funciones correspondientes
Tipo
• Es un conjunto de firma de métodos con un
nombre que lo identifica. Un tipo puede ser
definido a través de una Clase o una Interface.
Que es un lenguaje de programación
• Un lenguaje de programación es un idioma artificial
diseñado para expresar procesos que pueden ser
llevadas a cabo por máquinas como las computadoras.
• Está formado por un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones.
• Al proceso por el cual se escribe, se prueba, se depura,
se compila y se mantiene el código fuente de un
programa informático se le llama programación.
• Es aquel que utilizamos para poder transmitir
ordenadamente nuestras ideas a una computadora.
Tipos de lenguajes
• Existen 4 tipos de LP:
– Lenguaje máquina 00110011
– Lenguaje ensamblador ld a, #10
– Lenguajes de alto nivel for(i=0;i<10;i++)
– Lenguajes orientados a objetos class persona{ }
Como se clasifican
•
Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los
programas (Cobol, Pascal, C, Ada).
•
Lenguajes declarativos. Los programas se construyen mediante descripciones de
funciones o expresiones lógicas (Lisp, Prolog).
•
Lenguajes orientados a objetos. El diseño de los programas se basa mas en los
datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos
(variables) y las operaciones que actúan sobre ellos (Java, Smalltalk, C++).
•
Lenguajes orientados al problema. Diseñados para problemas específicos,
principalmente de gestión, suelen ser generadores de aplicaciones. (Lenguajes de 4ª
Generacion 4GL, Progress, ABAP, ORACLE)
•
Lenguajes naturales. Están desarrollándose nuevos lenguajes con el principal
objetivo de aproximar el diseño y construcción de programas al lenguaje de las
personas.
Lenguaje de programación orientado a objetos
• Entre los lenguajes orientados a objetos destacan los
siguientes:
• Action Script , Ada, C++, C#, Clarion,
C++Builder, D, Delphi, Harbour, Eiffel, Java,
Lexico (en castellano), Objective-C, Ocaml,
Oz, Perl (soporta herencia múltiple), PHP (en
su versión 5) , PowerBuilder, Python, Ruby,
Smalltalk, Magik (SmallWorld), VB.NET Visual
FoxPro , XBase++
• Utilizaremos en nuestros ejemplos el lenguaje
Java en su versión J2SDK.
Lenguaje Java orientado a objetos
• El diseño orientado a objeto puede ser programado en
cualquier lenguaje.
• Los desarrollos se organizan alrededor de los datos, y no de
las funcionalidades.
• Afortunadamente han aparecido nuevos lenguajes que
facilitan la programación orientada a objetos, como es el caso
de Java.
• En adelante para explicar las funcionalidades
de programación orientadas a objetos
adoptaremos código de Java como ejemplo
El Paradigma de la orientación a objetos
PRACTICA # 01
•Instalación y prueba de un lenguaje de
programación orientado a objetos: Java con
Netbeans IDE
LE, EI, Profesor Ramón Castro Liceaga