AlejandroABLL
Uploaded by
68 SLIDES
681 VUES
680LIKES

PROGRAMACION ORIENTADO A OBJETOS

DESCRIPTION

Programaciu00f3n orientado a objetos. Definiciones elementales

1 / 68

Télécharger la présentation

PROGRAMACION ORIENTADO A OBJETOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HISTORIA • A finales de los 60’s. • Noruega. • Simula 67 (clases y subclases). • En los 70´s. • Palo Alto (Xerox Park). • SmallTalk • Se le considera el lenguaje mas puro. POO_ConceptosHistoria Ana Lilia Laureano/UAM-A

  2. Con Simula y SmallTalk quedó demostrada el ahorro de programación si las propiedades comunes a los objetosse programan una sola vez. POO_ConceptosHistoria Ana Lilia Laureano/UAM-A

  3. ¿ Por qué tardó en llegar ? • Debido a las plataformas de trabajo existentes para ambos lenguajes. • Eran lenguajes conocidos sólo en las Universidades. • Hasta 1980, se da a conocer SmallTalk. • La gente consideró que era un sistema de ventanas y no apreció el paradigma. POO_ConceptosHistoria Ana Lilia Laureano/UAM-A

  4. Lenguaje C • En los 80’s C se convierte en un lenguaje popular de desarrollo. • Los Laboratorios Bell, ampliaron el lenguaje para que pudiera soportar el paradigma OO. • Le llamó C++. POO_ConceptosHistoria Ana Lilia Laureano/UAM-A

  5. Cómo ganó la batalla de popularidad • El paradigma OO, empezó a llamar la atención. • La gente lo podíaaprender en un lexicoyaconocido la POO. • No se invertíaesfuerzoen aprendernuevosentornosnilenguajes. POO_ConceptosHistoria Ana Lilia Laureano/UAM-A

  6. Introducción • Análisis y diseño orientado aobjetos • La programación orientada a objetos es una técnica de análisis y diseño que se enfoca en los elementos de un sistema, sus atributos yresponsabilidades • El modelo abstracto está formado de clases. Una clase describe a un conjunto de objetos que comparte los mismos atributos, comportamiento ysemántica • Un objeto es una instancia de unaclase Programación orientada a objetos conJava

  7. Programación orientada aobjetos • Conceptosbásicos • Encapsulación • Herencia • Polimorfismo Programación orientada a objetos conJava

  8. Programación orientada aobjetos • Encapsulación • La encapsulación consiste en formar un “paquete” con los atributos (variables) y el comportamiento (métodos) de unobjeto • Los métodos forman la membrana exterior de un objeto y “esconden” los detalles de implementación alusuario Programación orientada a objetos conJava

  9. Programación orientada aobjetos • Encapsulación • La encapsulaciónhace que unsistema sea másfácil de comprender y facilita el mantenimiento de unaaplicación Atributos Comportamiento (métodos) m1 Programación orientada a objetos conJava

  10. Programación orientada aobjetos • Herencia • La herencia es la capacidad de una clase para definirse en términos de otra clase y “heredar” atributos y responsabilidades de la clase de ordensuperior Bicicleta Superclase Subclases Bicicleta demontaña Bicicleta decarreras Tándem Programación orientada a objetos conJava

  11. Programación orientada aobjetos Polimorfismo • Elpolimorfismo permite que distintos objetos • pertenecientes a una misma clase “respondan”de diferentes formas a un mismomensaje • El polimorfismo permite modificar el comportamiento de un método en cada subclase. En este ejemplo, la superclase mascota tiene las subclases gato, pato y perro. El método “saludar” cada subclase esdiferente Hola Miau Cuac Guau En este ejemplo cada tipo de mascota “saluda” de formadistinta Programación orientada a objetos conJava

  12. Programación orientada aobjetos • Encapsulación, herencia ypolimorfismo • La reutilización de código es una de las grandes ventajas de la programación orientada aobjetos • Reduceel tiempodedesarrollo de aplicaciones e incrementa la productividad de los ingenieros desoftware • Reutilización declases • Diseño de una nueva clase a partir de otra(herencia) Programación orientada a objetos conJava

  13. Programación orientada aobjetos Clases ysubclases • La herencia permite diseñar clases a partir de otras clases.Unasubclasepuedeañadir o modificarla funcionalidad de la clase de ordensuperior Programación orientada a objetos conJava

  14. Programación orientada aobjetos • Clases ysubclases • Unasubclasepuede ampliar o extenderel comportamiento de la clase de ordensuperior Programación orientada a objetos conJava

  15. Programación orientada aobjetos • Clases ysubclases • Una subclase puede modificarel comportamiento de la clase de ordensuperior Programación orientada a objetos conJava

  16. Programación orientada aobjetos • Polimorfismo y sobreescritura demétodos • El polimorfismo es la capacidad de modificar el comportamiento de una clase mediante la sobreescritura demétodos Programación orientada a objetos conJava

  17. Programación orientada aobjetos • ¿Cómo identificar las clases y los métodos de unsistema? • Identificar las clases del sistema. Normalmente, las clases corresponden con los sustantivos que se utilizan para describir elsistema • Definir los atributos de las clases. En general, los atributos coinciden con los adjetivos que se emplean para describir lasclases • Definir los métodos de cada clase. Normalmente los verbos o las acciones que describen el sistema corresponderán con los métodos Programación orientada a objetos conJava

  18. ProgramaciónJava • Java es un lenguaje orientado aobjetos • EnJava,todo esunobjeto. Losobjetosse definenen términos de la clase a la quepertenecen • String nombre; Personaalumno; • El estado de un objeto se modifica utilizando los métodos de laclase Programación orientada a objetos conJava

  19. ProgramaciónJava • Clases yobjetos • Las clases representan objetos de la realidad (dominio) al que se refiere un programaJava • Las clases se definen a partir de un conjunto de atributos y métodos. Cada atributo puede estar limitado a un dominio devalores • Las clases son conceptos abstractos. Los objetos son instancias de las clases, se crean durante la ejecución de losprogramas Programación orientada a objetos conJava

  20. ProgramaciónJava Clases ymétodos • Los métodosdelasclasesrealizan modifican las propiedades de losobjetos accionesque Programación orientada a objetos conJava

  21. ProgramaciónJava • El uso demétodos • Los métodos se utilizan para estructurar un programa Java de formalógica • El uso de métodos permite dividir un problema en problemas más pequeños que son más fáciles de resolver (“Divide y vencerás”) • Los métodos encapsulan un conjunto de instrucciones que se puede ejecutar tantas veces como sea necesario. El código del método queda oculto y sólo es necesario conocer su interfaz (parámetros y valor deretorno) Programación orientada a objetos conJava

  22. ProgramaciónJava • El uso demétodos • Un método lleva a cabo una tarea específica de diversa naturaleza: input, output o cálculo • Para crear un método se tiene que escribir la declaración del método, el encabezado y el cuerpo. Dentro del cuerpo pueden haber declaraciones de variables y constantes. Si las hay se conocen como variables locales y solo pueden ser utilizadas dentro delmétodo • En otros lenguajes, los métodos se denominan subrutinas ofunciones Programación orientada a objetos conJava

  23. ProgramaciónJava Declaración de un método: encabezado ycuerpo encabezado public static void mostrarMensajeBienvenida(String msg){ System.out.println(msg); } cuerpo delmétodo Programación orientada a objetos conJava

  24. ProgramaciónJava El encabezado de unmétodo modificadores valor deretorno nombre delmétodo lista deparámetros public static void mostrarMensajeBienvenida(String msg){ System.out.println(msg); } Programación orientada a objetos conJava

  25. ProgramaciónJava • El encabezado de unmétodo • Modificadores • public el método puede invocarse fuera de la clase protected el método puede invocarse fuera de laclase private static no se puede invocar fuera de laclase el método pertenece a la clase, no a unobjeto • Tipo del valor de retorno (“Returntype”) • int | long | double | String o cualquier otro tipo de dato para métodos que devuelven valores, void si el método no devuelve unvalor Programación orientada a objetos conJava

  26. ProgramaciónJava • El encabezado de unmétodo • Nombre delmétodo • Debe ser un nombre descriptivo de la tarea que realiza el método • Lista deparámetros • La lista de parámetros es opcional. Contiene la declaración de parámetros (variables) que permiten al método recibir datos delexterior Programación orientada a objetos conJava

  27. ProgramaciónJava • Ejecución de métodos • Un método se ejecuta cuando es invocado ollamado • Elmétodomain se ejecuta automáticamente al comenzar la ejecución de unprograma • Para ejecutarun método basta indicarel nombredel método y la lista deparámetros • mostrarMensajeBienvenida(“Holamundo”); Programación orientada a objetos conJava

  28. ProgramaciónJava • Ejecución de métodos • Los valores que se pasan a un método cuando es invocado se denominanargumentos • Para invocar un método que tiene en su listade parámetros un valor entero se debe pasar una constante entera, una variable entera o una expresión de tipo entero Programación orientada a objetos conJava

  29. ProgramaciónJava • Ejecución de métodos • Los métodos pueden ser de dos tipos: métodos sin valor de retorno o métodos con valor deretorno • Los métodos sin valor de retorno se declaran con el valor de retorno void. El método main devuelvevoid • Los métodos con valor de retorno se declaran con el tipo de dato correspondiente: int, char, long, double, String o cualquier otro tipo. Estos métodos utilizan la instrucción return para finalizar la ejecución del método, devolver el valor y el control del programa al punto donde se realizó la llamada Programación orientada a objetos conJava

  30. ProgramaciónJava • Clases yobjetos • Una clase es una representación abstracta de un conjunto de objetos. Los objetos de una clase tienen las mismas características y el mismocomportamiento • Un objeto es una instancia de una clase. En Java los objetos se crean con el operadornew Programación orientada a objetos conJava

  31. ProgramaciónJava • Clases yobjetos • La clase String permite definir objetos para almacenar cadenas decaracteres • String hola = new String(“Hola″) String mundo = newString(“mundo”); • Los objetos hola y mundo son cadenas de caracteres, cada objeto ocupa un espacio en memoria y tiene sus propios atributos, “hola” y “mundo”, respectivamente Programación orientada a objetos conJava

  32. ProgramaciónJava • Clases yobjetos • Lasclasesse módulos utilizan para definir tipos de datos o • Untipo de dato describe un conjunto de objetos y operaciones(métodos).Un módulo esuna unidadde descomposición desoftware Programación orientada a objetos conJava

  33. ProgramaciónJava • Clases yobjetos • Un objeto es una instancia de una clase. Encapsula estado y comportamiento. Los objetos se crean por instanciación de las clases • Un objeto puede describir una entidad física o una entidadabstracta Programación orientada a objetos conJava

  34. ProgramaciónJava • Objetos • Un objeto tiene las siguientescaracterísticas • Identidad • Estado • Comportamiento • La identidad de un objeto le permite distinguirse de otros objetos. El estado de un objeto está determinado por sus datos y el comportamiento del objeto está determinado por los métodos de la clase a la quepertenece Programación orientada a objetos conJava

  35. ProgramaciónJava • Objetos • Identidad • La identidad de un objeto le identifica unívocamente y no cambia durante la vida del objeto. Es independiente del estado delobjeto • Estado El estado de un objeto evoluciona en determinado por los valores de sus atributo toma un valor en undominio el tiempo,está atributos.Cada Programación orientada a objetos conJava

  36. ProgramaciónJava • Objetos • Comportamiento • Los métodos que definen el comportamiento de un objeto describen sus acciones y agrupan susresponsabilidades • Las acciones de un objeto dependen de su estado y de un estímulo externo, un mensaje enviado por otroobjeto • El estado y el comportamiento están relacionados.Por ejemplo, un avión no puede aterrizar si está entierra Programación orientada a objetos conJava

  37. ProgramaciónJava • Las clases enJava • LasclasesJava se definenenficherosindependientes, normalmente con extensión.java • La clase se carga en memoria cuando esnecesario • Para definiruna clase enJava se utiliza la reservada class palabra public class MiClaseJava{ } Programación orientada a objetos conJava

  38. ProgramaciónJava • Las clases enJava • El nombrede una clase debe ser unidentificador válido enJava • Pornorma,losnombresde lasclasescomienzancon mayúsculas • Las clases públicas deben definirse en ficheros.java Programación orientada a objetos conJava

  39. ProgramaciónJava Las clases enJava • La clase Persona tiene cuatro apellido y año denacimiento atributos: dni, nombre, • El método mostrarNombre() muestra el nombreporla consola • Persona • dni nombre apellidos • añoNacimiento mostrarNombre() Programación orientada a objetos conJava

  40. ProgramaciónJava Las clases enJava public class Persona{ public String dni, nombre,apellidos; public intañoNacimiento; public void mostrarNombre() { System.out.println(nombre + ″ ″ +apellidos); } } Programación orientada a objetos conJava

  41. ProgramaciónJava Las clases enJava public class NombrePersonas{ public static void main(String[] args){ Persona p1 = newPersona(); Persona p2 = newPersona(); p1.nombre = ″Juan″; p1.apellidos =″Gonzalez″; p2.nombre = ″Luis″; p2.apellidos =″Gómez″; p1.mostraNombre(); p2.mostrarNombre(); } } Programación orientada a objetos conJava

  42. ProgramaciónJava • Métodos declases • Por norma, debe evitarse el uso de propiedades públicas. Es preferible definir métodos para modificar el valor de las propiedades de unobjeto • Los métodos set se utilizan para modificar (escribir) el valor de los atributos de unobjeto • Los métodos get se utilizan para consultar (leer) el valor de los atributos de unobjeto • getNombre() setNombre() Programación orientada a objetos conJava

  43. ProgramaciónJava Métodos declases public class Persona{ private String dni, nombre, apellidos; private intañoNacimiento; public void mostrarNombre() { System.out.println(nombre + ″ ″ +apellidos); } public setNombre(String nombre) { this.nombre =nombre; } public set añoNacimiento(int año){ añoNacimiento = año; } } Programación orientada a objetos conJava

  44. ProgramaciónJava • Métodos declases • En este ejemplo, el método setNombre(String nombre) recibe el parámetro nombre para modificar el atributo nombre de la clase. La palabra reservada this hace referencia a la instancia de la clase y permite diferenciar estas dos variables. El método setNombre asigna el valor del parámetro nombre al atributo nombre delobjeto • this.nombre =nombre; porque el del • El método setAñoNacimiento no utiliza this identificador del parámetro (año)esdistinto identificador del atributo de la clase(añoNacimiento) Programación orientada a objetos conJava

  45. ProgramaciónJava • Constructores • El operador new crea una instancia de la clase invocando un método especial de la clase, denominadoconstructor • El método constructor inicializa el estado delobjeto • Cuenta miCuentaCorriente = newCuenta(); • Por defecto, Java crea un constructor sin parámetros. El valor inicial de los atributos del objeto depende dela inicialización de las variables deinstancia Programación orientada a objetos conJava

  46. ProgramaciónJava Constructores • Java permite definir métodos constructores especificar los valores iniciales de losobjetos para • El nombrede los métodosconstructorescoincide conel nombre de la clase Programación orientada a objetos conJava

  47. ProgramaciónJava • Constructores • Java permite definir varios constructores diferentes para crear los objetos de la clase. La declaración de los constructores debe ser diferente y deben utilizar distintos parámetros • En este ejemplo se han definido dos constructores, uno sin parámetros y otro con un parámetro para especificar el límite de crédito de lacuenta Programación orientada a objetos conJava

  48. ProgramaciónJava Constructores public class Cuenta{ private double saldo, doublelimiteCredito; private static final double LIMITE =500; public Cuenta() { this.balance =0; this.limiteCredito =LIMITE; } public Cuenta(double limiteCredito) { this.balance = 0; this.limiteCredito =limiteCredito; } } Programación orientada a objetos conJava

  49. ProgramaciónJava • Referencias aobjetos • Cualquier tipo definido en Java con una clase es un tipo noprimitivo • Cuando se declara una variable de tipo primitivo, se reserva un espacio de memoria para almacenar suvalor • Cuando se declara una variable de tipo no primitivo, se reserva un espacio de memoria para almacenar la referencia al objeto, no el objeto en sí. Es por esto que es necesario utilizar el operadornew Programación orientada a objetos conJava

  50. ProgramaciónJava • Referencias aobjetos • Cuandoseutilizantiposdedatosprimitivoslas sentencias de asignación copian el valor de lasvariables • int x =100; int y =200; intz; z = y; y =x; x =z; // z almacena el valor inicial de y(200) // y almacena el valor inicial de x(100) // el valor de x es200 Programación orientada a objetos conJava

More Related