Clases y objetos - POO

CONCEPTO DE OBJETOS Y CLASES EN JAVA.

DEFINICIÓN DE INSTANCIA. EJEMPLOS

Hemos realizado una primera incursión en Java pero para proseguir se nos hace indispensable hablar de conceptos fundamentales de la programación orientada a objetos: objetos y clases. Estos términos parecen resultarnos familiares. En la vida diaria podemos pensar en objetos como una manzana o un libro, incluso un vehículo; y podemos distinguir estructura de éstos objetos los cuales se consideran como clases: por ejemplo clases de plantas. Sin embargo, en programación el término objeto y clase no guardan una correlación exacta con el significado de estas palabras en el diccionario. Podemos buscar ciertas similitudes e incluso hacer analogías didácticas. Pero no trates de buscar siempre equivalencias entre objetos y clases en programación con objetos y clases de la vida porque esa correspondencia exacta no existe y te llevará a confusión. Al escribir un programa en un lenguaje orientado a objetos tratamos de modelar un problema del mundo real pensando en objetos (entidades en base de datos) que forman parte del problema y que se relacionan entre sí. Daremos ahora una primera definición de objeto y clase, que tendremos que ir matizando conforme avancemos en el curso. 

Objeto: entidad existente en la memoria del ordenador que tiene unas propiedades (atributos o datos sobre sí mismo almacenados por el objeto) y unas operaciones disponibles específicas (métodos).

Clase: abstracción que define un tipo de objeto especificando qué propiedades (atributos) y operaciones disponibles va a tener. Estas definiciones son quizás poco clarificadoras. 

Con un ejemplo vamos a entenderlo mejor. En primer lugar pensemos en un programa que trata de gestionar datos sobre los vehículos de transporte público de una ciudad, por ejemplo Lima, Perú.



En este ejemplo hemos considerado que el problema consta de tres tipos de vehículo: taxi, autobús y tranvía, y que esos tipos los denominamos clases. ¿Qué haríamos en Java para definir una clase? Indicar sus propiedades y operaciones (métodos) disponibles, por ejemplo:


/* Ejemplo Clase Taxi - aprenderaprogramar.com */
Clase Taxi {
    Propiedades:
          Matrícula identificativa
          Distrito en el que opera
          Tipo de motor diesel o gasolina
          Coordenadas en las que se ubica
    Operaciones disponibles:
          Asignar una matrícula
          Asignar un distrito
          Asignar un tipo de motor
          Ubicar en unas coordenadas
 }

El haber definido así el taxi significará que todo objeto de tipo Taxi que creemos tendrá una matrícula identificativa, un distrito en el que opera, un tipo de motor y unas coordenadas en las que se ubica. 
La creación de un objeto sería algo así como: “Crear un objeto Taxi con matrícula BFG-7452, distrito Norte, tipo de motor Diesel y coordenadas Desconocidas.” 

El uso de una operación sobre un objeto sería algo así como: “Taxi BFG-7452 --> Ubicar en coordenadas (X = 128223, Y = 877533)”. Las operaciones en Java se denominan métodos, veremos cómo se definen más adelante. 

Decimos que un objeto es una instancia de una clase. Por ejemplo el taxi matrícula BFG-7452 es una instancia de la clase Taxi. Varios objetos (p.ej. taxis) de una misma clase decimos que constituyen instancias múltiples de la clase. Más adelante veremos que tanto una clase como un objeto en Java pueden representar otras cosas además de lo que ahora hemos explicado, pero todo a su tiempo.


EJERCICIO
Considera que queremos representar mediante un programa Java una biblioteca universitaria. Crear un esquema análogo al que hemos visto para vehículos, pero en este caso para libros. Define cuáles podrían ser las clases y cuáles podrían ser algunos objetos de esa clase.

Comentarios

Entradas populares de este blog

Practica de Diagrama de Flujo Intermedio - Resueltos

Personaliza tus reportes PDF desde PHP con la librería FPDF

Ejercicios Básicos para aprender a programar en Android Studio [Java y Kotlin]