Beruflich Dokumente
Kultur Dokumente
POO
Objetos y clases
Cuando escribe un programa de computacin en un lenguaje orientado a objetos est creando en su computadora un modelo de alguna parte del mundo real. Las partes con que se construye el modelo provienen de los objetos que aparecen en el dominio del problema.
Objetos y clases
Estos objetos deben estar representados en el modelo computacional que se est creando.
Los objetos pueden ser organizados en categoras y una clase describe, en forma abstracta, todos los objetos de un tipo en particular.
Objetos y clases
Suponga que desea modelar una simulacin de trfico. Un tipo de entidad con la que tendr que trabajar es autos.
Qu es un auto en nuestro contexto? Es una clase o es un objeto? Algunas preguntas nos ayudarn a tomar una decisin.
Objetos y clases
De qu color es un auto? Cuan rpido puede marchar? Dnde est en este momento?
Observar que no podemos responder estas preguntas a menos que hablemos de un auto especfico
Objetos y clases
La razn es que, en este contexto, la palabra auto refiere a la clase auto puesto que estamos hablando de los autos en general y no de uno en particular
Objetos y clases
Si digo Mi viejo auto se encuentra estacionado en el garaje de casa, podemos responder todas las preguntas anteriores:
este auto es rojo, no marcha demasiado rpido y est en mi garaje. Ahora estoy hablando de un objeto, un ejemplo particular de un auto
Objetos y clases
Nos referimos a objetos como instancias cuando queremos enfatizar que son de una clase en particular (como por ejemplo, cuando decimos este objeto es una instancia de la clase auto)
Objetos y clases
Objetos y clases
En esta ventana aparece un diagrama en el que cada uno de los rectngulos coloreados representa una clase en nuestro proyecto.
En este proyecto tenemos las clases de nombre Circulo, Cuadrado, Triangulo y Canvas.
Objetos y clases
Haga clic con el botn derecho del ratn sobre la clase Circulo y seleccione el elemento
new Circulo()
del men contextual. El sistema solicita el nombre de la instancia (name of the instance), haga clic en Ok ya que, por ahora, el nombre por defecto es
Objetos y clases
Ver un rectngulo rojo ubicado en la parte inferior de la ventana, etiquetado con el nombre circulo1
Objetos y clases
Acaba de crear su primer objeto! El icono rectangular Circulo de la Figura 1.1 representa la clase Circulo mientras que circulo1 es un objeto creado a partir de esta clase.
La zona de la parte inferior de la ventana en la que se muestran los objetos se denomina banco de objetos (object bench).
Invocar mtodos
Concepto:
Podemos comunicarnos con los objetos invocando sus mtodos. Generalmente, los objetos hacen algo cuando invocamos un mtodo.
Invocar mtodos
Haga un clic derecho sobre un objeto crculo (no sobre la clase!) y ver un men contextual que contiene varias operaciones.
De este men, seleccione volverVisible; esta operacin dibujar una representacin de este crculo en una ventana independiente. (Figura 1.3.)
Invocar mtodos
Observe que hay varias operaciones en el men contextual del crculo. Pruebe invocar un par de veces las operaciones moverDerecha y moverAbajo para desplazar al crculo ms cerca del centro de la pantalla.
Tambin podra probar volverlnvisible y volverVisible para ocultar y mostrar el
Invocar mtodos
Los elementos del men contextual del crculo representan las operaciones que se pueden usar para manipular el crculo. En Java, estas operaciones se denominan mtodos. Usando la terminologa comn, decimos que estos mtodos son llamados o invocados. De aqu en adelante usaremos esta terminologa que es ms adecuada. Por ejemplo, podramos pedirle que invoque el mtodo moverDerecha de circulo1.
Invocar mtodos
Invocar mtodos
Invocar mtodos
Esta lnea se denomina signatura del mtodo. La signatura proporciona algo de informacin sobre el mtodo en cuestin.
La parte comprendida entre parntesis (int distancia) es la informacin sobre el parmetro requerido. Para cada parmetro se define un tipo y un nombre. La signatura anterior establece que el mtodo requiere un parmetro de tipo int y de nombre distancia. El nombre ofrece alguna pista sobre el significado del dato esperado.
Invocar mtodos
Concepto:
Tipos de dato
Tipos de dato
En el ejemplo anterior, la signatura del mtodo moverHorizontal establece que antes de que el mtodo pueda ejecutarse, necesitamos suministrarle un nmero entero especificando la distancia a mover.
El campo de entrada de datos que se muestra en la Figura 1.4 nos permite ingresar este nmero.
Tipos de dato
Concepto:
Los parmetros tienen tipos de dato. El tipo de dato define la clase de valores que un parmetro puede tomar.
Tipos de dato
En la lista de los mtodos del crculo podr ver un mtodo con un tipo de parmetro diferente: el mtodo cambiar-Color tiene un parmetro de tipo String.
El tipo de dato String indica que se espera el ingreso de un fragmento de texto (por ejemplo, una palabra o una frase). Llamaremos cadenas, a estas secciones de texto. Las cadenas van siempre encerradas entre comillas dobles. Por ejemplo, para ingresar la palabra rojo como una cadena escribimos
_rojo_
Tipos de dato
Java admite otros varios tipos de dato incluyendo, por ejemplo, nmeros decimales y caracteres
Instancias mltiples
Concepto
Instancias mltiples. Se pueden crear muchos objetos similares a partir de una sola clase.
Instancias mltiples
Estado
Concepto:
Los objetos tienen un estado. El estado est representado por los valores almacenados en sus campos.
Estado
Se hace referencia al conjunto de valores de todos los atributos que definen un objeto (tales como las posiciones x e y, el color, el dimetro y el estado de visibilidad para un crculo) como el estado del objeto.
Este es otro ejemplo de terminologa comn que usaremos de aqu en adelante.
Estado
En BlueJ, el estado de un objeto se puede inspeccionar seleccionando la funcin Inspect del men contextual del objeto.
Qu es un objeto?
Al inspeccionar objetos diferentes observar que todos los objetos de la misma clase tienen los mismos campos; es decir que el nmero, el tipo de dato y los nombres de los campos de una misma clase son los mismos, mientras que el valor de un campo en particular de cada objeto puede ser distinto.
Por el contrario, los objetos de clases diferentes pueden tener diferentes campos. Por ejemplo, un crculo tiene un campo dimetro, mientras que un tringulo tiene los campos ancho y alto.
Qu es un objeto?
La razn es que el nmero, el tipo de dato y el nombre de los campos se definen en una clase, no en un objeto. Por ejemplo, la clase Circulo declara que cada objeto crculo tendr cinco campos cuyos nombres son:
Tambin define los tipos de dato para cada uno estos campos; es decir, especifica que los tres primeros son de tipo int, mientras que color es de tipo String y la bandera esVisible es de tipo boolean.
Qu es un objeto?
Qu es un objeto?
La historia es similar para los mtodos. Los mtodos se definen en la clase del objeto.
Como resultado, todos los objetos de una clase dada tienen los mismos mtodos. Sin embargo, los mtodos se invocan desde los objetos, y esto aclara por ejemplo, cul es el objeto que se modifica cuando se invoca el mtodo moverDerecha
Concepto
Llamada de mtodos. Los objetos se pueden comunicar entre ellos invocando los mtodos de los otros objetos.
El punto importante es que los objetos pueden crear otros objetos y pueden llamar a cada uno de sus mtodos.
Un programa Java normal puede tener centenares o miles de objetos. El usuario de un programa slo lo inicia (y por lo general, en el inicio se crea un primer objeto) y todos los otros objetos son creados, directa o indirectamente, por ese objeto. Ahora, la gran pregunta es: cmo escribimos la clase para un objeto como ste?
Abra el proyecto cuadro. Cree una instancia de la clase Cuadro e invoque su mtodo dibujar. Pruebe tambin los mtodos ponerBlancoYNegro y ponerColor.
Cdigo fuente
Cada clase tiene algn cdigo fuente asociado. El cdigo fuente es un texto que define los detalles de la clase. En BlueJ, se puede visualizar el cdigo fuente de una clase seleccionando la funcin Open Editor del men contextual de la clase o haciendo doble clic en el icono de
Cdigo fuente
El cdigo fuente (o simplemente el cdigo) es un texto escrito en lenguaje de programacin Java y define qu campos y mtodos tiene la clase y qu ocurre cuando se invoca un mtodo.
Cdigo fuente
Concepto
El cdigo fuente de una clase determina la estructura y el comportamiento (los campos y los mtodos) de cada uno de los objetos de dicha clase.
Cdigo fuente
Cuando realiza algn cambio en el cdigo y cierra el editor, el icono de esta clase en el diagrama aparece rayado. Las rayas indican que el fuente ha cambiado. En estos casos, la clase necesita ser compilada haciendo clic en el botn Compile.
Una vez que una clase ha sido compilada, se pueden crear nuevamente objetos y probar sus cambios.
Valores de retorno
Concepto
Resultados. Los mtodos pueden devolver informacin de algn objeto mediante un valor de retorno.
Valores de retorno
Abra el proyecto
curso-de-laboratorio
Este proyecto es una parte de una base de datos de estudiantes simplificada, diseada para registrar el recorrido de los estudiantes en los cursos de laboratorio e imprimir las listas de alumnos de estos cursos.
Valores de retorno
Valores de retorno
Cuando llamamos al mtodo obtenerNombre de la clase Estudiante notamos algo nuevo: los mtodos pueden devolver un valor como resultado.
De hecho, la signatura de cada mtodo nos informa si devuelve o no un resultado y qu tipo de resultado es. La signatura de obtenerNombre (tal como muestra el men contextual del objeto) est definida de la siguiente manera:
String obtenerNombre()
Valores de retorno
La palabra String que aparece antes del nombre del mtodo especifica el tipo de retorno.
En este caso, establece que este mtodo devolver un resultado de tipo String cuando sea invocado. La signatura de cambiarNombre es:
los objetos pueden ser pasados como parmetros a los mtodos de otros objetos. En el caso de que un mtodo espere un objeto como parmetro, el nombre de la clase del objeto que espera se especifica como el tipo de parmetro en la signatura de dicho mtodo.
Resumen
Resumen
Los objetos tienen mtodos que podemos usar para comunicarnos con ellos. Podemos usar un mtodo para modificar al objeto o para obtener informacin acerca de l. Los mtodos pueden tener parmetros y los parmetros tienen tipos. Los mtodos pueden tener tipos de retorno que especifican el tipo de dato que devuelven. Si el tipo de retorno es void, el mtodo no devuelve nada.
Resumen
Los objetos almacenan datos en sus campos (que tambin tienen tipos).
Se hace referencia al conjunto de todos los datos de un objeto como el estado del objeto.
Resumen
Los objetos se crean a partir de las definiciones de una clase que deben escribirse en un lenguaje particular de programacin.
Gran parte de la programacin en Java consiste en aprender a escribir definiciones de clases. Un programa grande escrito en Java puede contener muchas clases, cada una de ellas con muchos mtodos que se invocan unos a otros de muchas maneras diferentes.