Poo y Modelado
Poo y Modelado
Poo y Modelado
destinado al modelado de sistemas y procesos. Est basado en la orientacin a objetos que condujo en primer lugar a la creacin de lenguajes de programacin como Java, C++, entre otros. ULM es un lenguaje semnticamente rico y, por tanto, resulta bastante difcil retener todos los conceptos en que se basa. En un lenguaje de programacin la descripcin de los objetos se realiza de manera formal con una sintaxis rigurosa. Dicha sintaxis resulta ilegible para los no programadores y difcil de descifrar para los programadores. A diferencia de las maquinas, los humanos prefieren utilizar lenguajes grficos para representar abstracciones, ya que dominan este tipo de lenguaje con mayor facilidad y obtienen una visin de conjunto de los sistemas en mucho menos tiempo.
ELEMENTOS PRIMORDIALES EN EL MODELO DE OBJETOS La orientacin a objetos constituye la base de UML, est formada por conceptos como Objetos Clases Especializacin Composicin Y principios Abstraccin Encapsulacin Estos elementos hacen de la orientacin a objetos un soporte real para el modelado de sistemas complejos y para la programacin de los mismos. En la actualidad los trminos objeto y orientado a objetos se aplican a diversos tipos de entidades, mtodos de diseo, sistemas y lenguajes de programacin. Sin embargo, por lo general se acepta que un objeto es un encapsulado de la informacin, y esto se refleja en las siguientes definiciones de objeto y clase: Un objeto es una entidad que tiene un estado y un conjunto de operaciones definidas que operan sobre ese estado. El estado se representa como un conjunto de atributos del objeto. Las operaciones asociadas al objeto proveen servicios a otros objetos (clientes) que solicitan estos servicios cuando se requiere llevar a cabo algn clculo. Los objetos se crean conforme a una definicin de clases de objetos. Una definicin de clases sirve como una plantilla para crear objetos. Esta incluye las declaraciones de todos los atributos y operaciones asociados con un objeto de esa clase. REPRESENTACION GRAFICA DEL DISEO
En UML una clase se representa como un rectngulo al cual se le han asignado un nombre y dos secciones. Los atributos del objeto se listan en la seccin superior. Las operaciones que estn asociadas con el objeto se listan en la seccin inferior.
calcularPerimetro()
RELACION ENTRE LA POO Y LA ESTRUCTURADA La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. La POO difiere de la programacin estructurada tradicional, en la que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La
programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programacin estructurada slo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.
UNIDAD V IMPLEMENTACION OO ESTRUCTURA DE UNA CLASE La sintaxis bsica para definir una clase es la que a continuacin se muestra: modificadorDeAcceso class <nombreClase> { <miembros> } De este modo se definira una clase de nombre <nombreClase> cuyos miembros son los definidos en <miembros> Los miembros de una clase son los datos y mtodos de los que van a disponer todos los objetos de la misma. Un ejemplo de cmo declarar una clase de nombre A que no tenga ningn miembro es la siguiente: Public class A {}
ELEMENTOS DE UNA CLASE Campos: Un campo es un dato comn a todos los objetos de una determinada clase. Para definir cules son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de la zona sealada como <miembros> en la definicin de la misma: <tipoCampo> <nombreCampo>; public class Persona { String Nombre; nombre int Edad; // Campo de cada objeto Persona que almacena su
} Para acceder a un campo de un determinado objeto se usa la sintaxis: <objeto>.<campo> Por ejemplo, para acceder al campo Edad de un objeto Persona llamado p y cambiar su valor por 20 se hara: p.Edad = 20; Mtodos: Un mtodo es un conjunto de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas basta referenciarlas a travs de dicho nombre en vez de tener que escribirlas. Dentro de estas instrucciones es posible acceder con total libertad a la informacin almacenada en los campos pertenecientes a la clase dentro de la que el mtodo se ha definido, por lo que como al principio del tema se indic, los mtodos permiten manipular los datos almacenados en los objetos. Un ejemplo de cmo declarar un mtodo de nombre Cumpleaos es la siguiente modificacin de la definicin de la clase Persona usada antes como ejemplo: public class Persona { string Nombre; nombre int Edad; // Campo de cada objeto Persona que almacena su // Campo de cada objeto Persona que almacena su edad // Incrementa en uno de la edad del objeto
La sintaxis usada para llamar a los mtodos de un objeto es la misma que la usada para llamar a sus campos, slo que ahora tras el nombre del mtodo al que se desea llamar hay que indicar entre parntesis cules son los valores que se desea dar a los parmetros del mtodo al hacer la llamada. O sea, se escribe: <objeto>.<mtodo>(<parmetros>) Como es lgico, si el mtodo no tomase parmetros se dejaran vacos los parmetros en la llamada al mismo. Por ejemplo, para llamar al mtodo Cumpleaos() de un objeto Persona llamado p se hara: p.Cumpleaos(); // El mtodo no toma parmetros, luego no le pasamos ninguno Es importante sealar que en una misma clase pueden definirse varios mtodos con el mismo nombre siempre y cuando tomen diferente nmero o tipo de
parmetros. A esto se le conoce como sobrecargar de mtodos, y es posible ya que cuando se les llame el compilador sabr a cual llamar a partir de <parmetros> pasados en la llamada CREAR OBJETOS El proceso de creacin de un objeto se divide en dos pasos: 1. Usar la palabra reservada new para adquirir y asignar memoria para el objeto. 2. Escribir un constructor para convertir la memoria adquirida por new en un objeto. Aunque este proceso consta de dos pasos, ambos deben estar incluidos en una sola expresin. Por ejemplo, si Fecha es el nombre de una clase, para asignar memoria e inicializar el objeto cuando se usa la siguiente sintaxis: Fecha Hoy = new Fecha( ); Paso 1: Asignacin de memoria El primer paso en la creacin de un objeto consiste en asignarle memoria. Todos los objetos, sin excepcin, se crean con el operador new, ya sea de forma explcita en el cdigo o dejando que lo haga el compilador. Paso 2: Inicializacin del objeto usando un constructor El segundo paso en la creacin de un objeto consiste en llamar a un constructor. Un constructor convierte en un objeto la memoria asignada por new. Hay dos tipos de constructores: constructores de instancia, que inicializan objetos, y constructores estticos, que son los que inicializan clases.
UNIDAD VI MODULARIDAD DECLARACION DE METODOS Definicin 1: Un mtodo es un miembro de una clase que lleva a cabo una accin o calcula un valor. Definicin 2: Un mtodo es una serie de instrucciones Java que han sido agrupadas bajo un nombre determinado. La mayor parte de los lenguajes de programacin modernos incluyen un concepto similar; se puede considerar que un mtodo es equivalente a una funcin, una subrutina, un procedimiento o un subprograma. Ejemplos de mtodos: El mtodo Main es el punto de entrada de la aplicacin. METODOS DE UNA CLASE Cuando se crea un mtodo hay que especificar lo siguiente:
Nombre Un mtodo no puede tener el mismo nombre que una variable, una constante o cualquier otro elemento que no sea un cdigo y haya sido declarado en la clase. El nombre del mtodo puede ser cualquier identificador permitido de Java y distingue entre maysculas y minsculas.
Lista de parmetros A continuacin del nombre del mtodo viene una lista de parmetros para el mtodo. Esta lista aparece entre parntesis que deben estar presentes aunque no hay ningn parmetro.
Cuerpo del mtodo Despus de los parntesis viene el cuerpo del mtodo, que debe estar entre llaves ({ y }) aunque no contenga ms que una instruccin.
SINTAXIS PARA LA DEFINICION DE METODOS Para crear un mtodo se utiliza la siguiente sintaxis: public static void MethodName( ) { cuerpo del mtodo } El siguiente ejemplo muestra cmo crear un mtodo llamado ExampleMethod en la clase ExampleClass: class ExampleClass { public static void ExampleMethod( ) { JOptionPane.showMessageDialog(null,"Ejemplo de metodo"); } public static void main( String args[]) { ExampleMethod(); } } Nota:Java distingue entre maysculas y minsculas en los nombres de mtodos, lo que permite declarar y usar mtodos cuyos nombres slo se diferencian en letras maysculas o minsculas. Por ejemplo, es posible declarar mtodos llamados Suma y SUMA en la misma clase.
LLAMADAS A METODOS Despus de definir un mtodo, es posible hacer llamadas a ese mtodo desde dentro de la misma clase y desde otras clases. Para hacer una llamada a un mtodo hay que emplear el nombre del mtodo seguido de una lista de parmetros entre parntesis. Los parntesis son obligatorios aunque el mtodo llamado no contenga ningn parmetro, como se ve en el siguiente ejemplo. MethodName( ); El programa del siguiente ejemplo comienza al principio del mtodo Main de ExampleClass. La primera instruccin muestra Comienza el programa. La segunda instruccin en Main es la llamada a ExampleClass. El flujo de control pasa a la primera instruccin en ExampleClass y aparece Hola, mundo. Al final del mtodo, el control pasa a la instruccin inmediatamente despus de la llamada al mtodo, que es la instruccin que muestra Termina el programa.
public class ExampleClass { public static void ExampleClass( ) { JOptionPane.showMessageDialog(null,"Hola, mundo"); } public static void main( ) { JOptionPane.showMessageDialog(null,"Comienza el programa."); ExampleClass( ); JOptionPane.showMessageDialog(null,"Termina el programa."); } }
VALOR DE RETORNO La instruccin return se puede emplear para hacer que un mtodo se devuelva inmediatamente al llamador. Sin una instruccin return, lo normal es que la ejecucin se Declaracin de mtodos con un tipo que no sea void Para declarar un mtodo de forma que devuelva un valor al llamador hay que cambiar la palabra clave void por el tipo del valor que se desea devolver. Uso de instrucciones return La palabra clave return seguida de una expresin hace que el mtodo finalice inmediatamente y devuelve la expresin como valor de retorno del mtodo.
El siguiente ejemplo muestra cmo declarar un mtodo llamado DosMasDos que devuelve el valor 4 a Main cuando hace una llamada a DosMasDos: public class ExampleReturningValue { public static int DosMasDos( ) { int a,b; a = 2; b = 2; return a + b; } public static void main(String args[] ) { int x; x = DosMasDos( ); JOptionPane.showMessageDialog(null,x); } } El valor devuelto es un int, ya que int es el tipo de retorno del mtodo. Cuando se hace una llamada al mtodo, ste devuelve el valor 4. En este ejemplo, el valor se almacena en la variable local x de Main. Los mtodos que no son void deben devolver valores Si se declara un mtodo con un tipo distinto de void, es obligatorio aadir al menos una instruccin return. El compilador intenta comprobar que cada uno de estos mtodos devuelve siempre un valor al mtodo de llamada. Si detecta que un mtodo que no es void no incluye ninguna instruccin return, el compilador mostrar el siguiente mensaje de error: No todas las rutas de cdigo devuelven un valor. Este mensaje tambin aparecer si el compilador detecta que es posible ejecutar un mtodo que no es void sin devolver un valor.