Programación orientada a objetos (I)

Documentos relacionados
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Introducción. Curso de Middleware. Práctica 6. 1 de 9

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

EJERCICIO GUIADO. JAVA: DISEÑO DE FORMULARIOS DESDE CÓDIGO

Clase adicional 2. Estructuras básicas de control. Temas

PROGRAMACION ORIENTADA A OBJETOS EN C++

Estructura de un programa en Java

FACULTAD DE INGENIERÍA

Programación en Visual Basic Ricardo Rodríguez García

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Java Avanzado Facultad de Ingeniería. Escuela de computación.

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Tema: Clases y Objetos en C#. Parte II.

Modulo 11. Clases y Objetos en Java

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Arquitecturas cliente/servidor

FUNDAMENTOS DE INFORMÁTICA

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Principios de Computadoras II

Guía práctica de estudio 04: Clases y objetos

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

9. Objetos y clases Clases

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programación Orientada a Objetos (POO)

TEMA 8: Gestión dinámica de memoria

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Conversión entre Tipos

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

FACULTAD DE INGENIERÍA

Tema 7: Polimorfismo. Índice

III. Generación de Código orientado a objetos

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Java desde Consola Utilizando Java sin Path

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Informes

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Programación orientada a objetos

Clases y objetos. Objeto Instancia de una clase: Unidad atómica que encapsula estado y comportamiento.

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

ESCUELA DE INFORMÁTICA

Programación Orientada a Objetos en JAVA

Introducción al lenguaje Java

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

5. Sentencias selectivas o condicionales

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Introducción a la Programación Orientada a Objetos

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Java Inicial (20 horas)

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Sistema de Gestión y almacenamiento de archivos en el Campus Virtual

Tutorial 6: Qué es una función? y como utilizarla

Forma Básica Clase Java

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación orientada a objetos en PHP. Lic. Nancy Michelle Torres Villanueva

Clases y objetos en python (Programacion Orientada a Objetos)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Curso de Java POO: Programación orientada a objetos

Introducción a C++ y Code::Blocks

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

Construcciones del Lenguaje Java

Diseño Basado en Componentes. Curso 2008 / 09

Anexo. Control de errores

El Concepto De Objeto y Clase

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

ACCESS 3 OBJETIVOS CURSO: BASE DE DATOS MS-ACCESS... 4 INTRODUCCIÓN A MS-ACCESS...

2.- PROGRAMACIÓN ORIENTADA A OBJETOS

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

TIPOS DE DATOS (VARIABLES) EN JAVA. TIPOS PRIMITIVOS (INT, BOOLEAN, ETC.) Y OBJETO (STRING, ARRAY, ETC.) (CU00621B)

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)

15. Parámetros o argumentos

6. Sentencias repetitivas o bucles

Tema 3. Aplicaciones de Tipo Consola

11. Algunas clases estándar de Java (II)

Procesos e Hilos en C

Prácticas de Programación

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

LABORATORIO Nº 6 SUMA DE DOS NUMEROS EN POWER BUILDER

Clases Abstractas e Interfaces

4. POLIMORFISMO. Figura 6: Funciones virtuales

Universidad de Managua

vsmart CONFIGURACIÓN INICIAL

Transcripción:

Programación orientada a objetos (I) Introducción a la POO La programación orientada a objetos es la penúltima evolución respecto a las metodologías de programación. En esta entrada veremos algunos de los conceptos básicos que conciernen a este tipo de programación, que ampliaremos en entradas siguientes. Clases y objetos La programación orientada a objetos se basa en un modelo de lo que vemos en la vida real. Para vosotros no será algo nuevo introduciros en este modelo, ya que habéis realizado un proceso de abstracción muy similar en el modelo Entidad-Interrelación (modelo ER) del módulo Sistemas Gestores de Bases de Datos. Decíamos en una entrada anterior que todo programa en Java se construye a base de objetos. Pero en realidad, el programador de Java no define objetos, sino clases. Y en concreto, clases de objetos. Pero, qué es una clase? Una clase es una plantilla de un conjunto de objetos que tienen características similares. La definición en sí nos dice muy poco, pero con un par de ejemplos seguro que lo entendéis muy bien. Ejemplo 1 (para aquellos que ya habéis estudiado el modelo ER del módulo SGBD). Una clase es equivalente a una entidad, con algunas características adicionales que posteriormente veremos. Un objeto es equivalente a una instancia de una entidad. Ejemplo 2 (para el resto de alumnos). Haremos una analogía con respecto a la vida real: si os digo que penséis en un, seguramente todos coincidiremos más o menos en algo parecido: un animal que tiene cuatro patas, una cola, cabellera que sale desde la cabeza y llega hasta el lomo, Pero ese no existe en la realidad, nos hemos creado mentalmente un modelo abstracto para el concepto de. A ese modelo mental es lo que denominaremos clase. Si queremos, por ejemplo, montar a, será complicado hacerlo en ese modelo que tenemos en la cabeza. Para poder disfrutar con él, necesitamos tener un en concreto. A esa concreción (instancia) del es lo que llamaremos objeto. Ese (objeto) será único, y no es posible que exista otro igual. Por tanto, tendrá características diferenciadoras al resto de s (otros objetos), como el color de su cuerpo, el peso, el largo de sus patas, etcétera. Teoría 9 (TEO09) Página 1 de 7

Gráficamente: (modelo abstracto) Cuando empecemos a programar en Java, el primer objetivo es construirnos el conjunto de clases adecuadas para resolver los requerimientos de nuestro programa. Atributos y métodos Una clase se compone de dos partes fundamentales: los atributos y los métodos. Atributos Los atributos contienen información sobre un objeto. Si pensamos en una clase coche, sus atributos podrían ser: cilindrada: 1800, 2000, 2800. color: blanco, azul, negro, plata. gama: monovolumen, cabrio, coupé. Los atributos se definen por medio de variables, así que podemos considerarlas como variables del propio objeto. Métodos Los métodos permiten añadir comportamiento a un objeto. Esta es la diferencia fundamental respecto a lo que conocéis como entidad en el modelo ER aquellos que habéis estudiado el módulo SGBD, puesto que la entidad era algo estático. Un método nos permite interactuar con el objeto al que pertenece, o bien interactuar con otros objetos. Si continuamos con el ejemplo de la clase coche, podríamos tener los siguientes métodos: Arrancar. Parar. Frenar. Acelerar. Los métodos se definen por medio de funciones, así que podemos considerarlos como funciones del propio objeto. Teoría 9 (TEO09) Página 2 de 7

Mi primera clase en Java Una vez aprendidos los conceptos teóricos sobre las clases y objetos en Java, apliquemos lo estudiado en la práctica. Utilizaremos para este ejemplo la clase coche de la que hablamos en la entrada anterior. Mi primera clase El primer paso es definir la clase, de la siguiente manera: class Coche { Ya tenemos el primer paso. No parece tan difícil, verdad? El segundo paso es especificar qué atributos necesitamos en nuestro coche. Por ejemplo: Integer cilindrada; String color; Double precio; boolean isarrancado; Bien, ya tenemos cuatro atributos: cilindrada de tipo Integer (fijaos que no he utilizado el tipo básico int, sino su envoltorio Integer); color de tipo String; precio de tipo Double (al igual que en el caso de cilindrada, no utilizo el tipo básico, sino su envoltorio, en este caso Double en lugar de double); e isarrancado de tipo boolean. Esta última indica si el motor del coche está arrancado o no lo está. El tercer y último paso para construir nuestra clase es definir el comportamiento (métodos) de nuestro coche. En concreto, únicamente vamos a tratar que el coche haya arrancado o esté parado. Para ello, haremos lo siguiente: void arrancar() { if (isarrancado!= true) { isarrancado = true; System.out.println ( Brrrrrrr!!! El coche acaba de arrancar. ); else { System.out.println ( Kisch, kishch!!! El coche ya está arrancado. ); El método arrancar() comprueba si el coche está arrancado. Si no lo está, lo arranca (con la línea isarrancado = true) y nos avisa con un mensaje. Si lo está, simplemente nos informa que el coche ya había arrancado. Teoría 9 (TEO09) Página 3 de 7

Ya tenemos creada la clase con sus atributos y un método. El código completo es este: class Coche { Integer cilindrada; String color; Double precio; boolean isarrancado; void arrancar() { if (isarrancado!= true) { isarrancado = true; System.out.println ( Brrrrrrr!!! El coche acaba de arrancar. ); else { System.out.println ( Kisch, kishch!!! El coche ya está arrancado. ); código de Coche.class Fijaos que primero se definen los atributos y a continuación el método, esto es por convención de Java. Este fichero debemos grabarlo con el nombre de la clase que hemos definido, seguido de la extensión.java. Es decir, debemos guardar el fichero con el nombre Coche.java. Añadiendo funcionalidad a la clase Vamos a añadir un método para conseguir mayores prestaciones sobre la clase y para que veáis qué sencillo es ampliar el comportamiento de una clase. El nuevo método nos permitirá mostrar el valor de cada uno de los atributos. Vamos a llamarlo vercoche(). El código es este: void vercoche() { System.out.println( Este coche es de color + color + tiene una cilindrada de + cilindrada + y cuesta + precio + euros. ); if (isarrancado == true) { else { System.out.println ( Ahora mismo está arrancado. ); System.out.println ( Ahora mismo está parado. ); Teoría 9 (TEO09) Página 4 de 7

Este método mostrará dos líneas por pantalla: la primera mostrará el color, cilindrada y precio del coche y la segunda nos dirá si el coche está arrancado o parado. Introducimos dentro de la clase este nuevo método y volvemos a guardar el fichero. El código ahora es este: class Coche { Integer cilindrada; String color; Double precio; boolean isarrancado; void arrancar() { if (isarrancado!= true) { isarrancado = true; System.out.println ( Brrrrrrr!!! El coche acaba de arrancar. ); else { System.out.println ( Kisch, kishch!!! El coche ya está arrancado. ); void vercoche() { System.out.println( Este coche es un + marca + de color + color + y cuesta + precio + euros. ); if (isarrancado == true) { else { System.out.println ( y ahora mismo está arrancado. ); System.out.println ( y ahora mismo está parado. ); Crear un programa para trabajar con la clase código de Coche.class Ya podemos compilar el fichero. Pero únicamente hemos definido una clase, con lo que no es posible ejecutar nada, ya que no hay nada que ejecutar. Necesitamos un programa que nos permita trabajar con la clase coche que acabamos de crear. Este programa deberá crear objetos de la clase (recordad que una clase no es algo que exista en realidad, sino una plantilla de esa realidad, que es el objeto) y trabajar con ellos. Teoría 9 (TEO09) Página 5 de 7

Veamos un ejemplo de programa y después lo comentaremos. public static void main (String args[]) { Coche c; c = new Coche(); c.cilindrada= 1800; c.color = plata ; c.precio = 25000.0; System.out.println ( Qué coche es este? ); c.vercoche(); System.out.println( Vamos a arrancar el coche ); c.arrancar(); System.out.println ( Qué coche es este? ); c.vercoche(); System.out.println( Vamos a arrancar el coche ); c.arrancar(); código de TestCoche.class El método main() ya lo conocéis de vuestro primer programa HolaMundo.java que hicisteis hace unos días. Ahora ya tenemos un programa que podemos ejecutar. Declaración y acceso a los objetos Comentemos el programa anterior para entender cómo se trabaja en Java con los objetos. En la primera línea, Coche c;, se declara un objeto de la clase Coche. A diferencia de C, la declaración no significa reserva en memoria. En el momento de la declaración, el objeto tiene el valor null. Para crear un objeto en realidad (y por tanto poder trabajar con él), se necesita utilizar el operador new. La segunda línea c = new Coche();, crea un objeto de la clase Coche y lo asigna al objeto que se había declarado en la anterior línea. A partir de la tercera línea, se comienza a trabajar con el objeto recién creado. Con estas tres líneas: c.cilindrada= 1800; c.color = plata ; c.precio = 25000; Teoría 9 (TEO09) Página 6 de 7

hemos modificado los atributos cilindrada, color y precio de nuestro objeto. Fijaos que el acceso a los atributos del objeto se realiza mediante el operador punto (.). Simplemente hemos de utilizar la siguiente sintaxis: objeto.atributo A partir de ese momento, realizamos varias llamadas a los métodos. Por ejemplo: System.out.println ( Qué coche es este? ); c.vercoche(); Primero se muestra un mensaje de información y a continuación se accede al método vercoche() para comprobar si todo el código anterior de modificación de atributos ha funcionado correctamente. De la misma manera que ocurría para el acceso a los atributos, el acceso a los métodos utiliza la siguiente sintaxis: objeto.método Destrucción de objetos Respecto a la destrucción de objetos, no debemos preocuparnos en absoluto, ya que Java tiene el llamado garbage collector (recolector de basura) que se encarga de realizar toda la gestión de memoria por nosotros automáticamente. Esta obra de Cristian Jorge Garcia Marcos está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envie una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Teoría 9 (TEO09) Página 7 de 7