Professional Documents
Culture Documents
Objetos
A. PROGRAMACIÓN ORIENTADA A OBJETOS *
B. ATRIBUTOS *
C. MÉTODOS *
E. HERENCIA *
F. POLIMORFISMO *
G. SOBREESCRIBIR *
H. DESTRUCCIÓN DE OBJETOS *
Java incorpora el uso de la orientación a objetos como uno de los pilares básicos del
lenguaje. El elemento básico no es la función sino un ente denominado objeto. Un
objeto es la representación de un programa en un concepto y contiene toda la
información necesaria para abstraerlo: datos que describen sus atributos y operaciones
que pueden realizarse sobre los mismos.
Una clase no es más que un modelo o plantilla para la creación de objetos. Antes de
poder utilizar un objeto se debe indicar que tipo de objeto es, es decir, la clase.
Para crear un objeto de la clase que se acaba de definir se utilizaría new del modo
siguiente:
EntradaAgenda unaEntrada;
B. ATRIBUTOS
Los atributos son datos específicos de una clase. En la definición de clase se indica
cuales son los atributos y conque nombre se va a designar a cada uno de ellos. El que
una declaración de atributo sea pública significa que el elemento definido pueda
utilizarse libremente desde cualquier otro punto del programa.
En el caso de una clase su carácter público es necesario para poder crear objetos de esa
clase en otros puntos del programa (new). Para acceder a un atributo hay que indicarle el
nombre del objeto al que pertenece:
C. MÉTODOS
Son los métodos de una clase son funciones propias de la misma, formando parte de su
definición. Cada instancia de la clase contiene los métodos y atributos particulares de la
misma. Los métodos de una clase operan sobre los atributos particulares. La llamada de
un método es similar a la consulta de atributo: nombre de objeto.método:
unaEntrada.muestraDatos ( );
Los paréntesis son obligatorios para la definición de los métodos aunque no se emplee
ningún argumento. Una de las consecuencias de que Java sea un lenguaje orientado a
objetos es que todo el código que se escriba ha de estar incluido dentro de una clase.
Hay que tener presente que todos los programas en su nivel más simple constan de dos
cosas: código y datos. Para tener una idea sobre lo que es el encapsulado, se puede
pensar en un envoltorio protector alrededor del código y los datos que se manipulan. El
envoltorio, que como se ve protege el código y define el comportamiento, también
protege los datos para evitar que otro código acceda a ellos de manera arbitraria. El
poder del código encapsulado viene dado por el conocimiento tan extensivo de acceso al
mismo y puede ser utilizado de este modo independientemente de los detalles de
implementación.
En Java, la base del encapsulado es la clase. Se crea una clase que representa una
abstracción para un conjunto de objetos que comparten la misma estructura y
comportamiento. Un objeto es una estancia única de una clase que mantiene la
estructura y comportamiento de la misma. A estos objetos se les llama instancia de una
clase. El comportamiento e interfaz de una clase se definen mediante métodos que
operan sobre los datos de una instancia. Un método es un mensaje para realizar alguna
acción en un objeto.
La clase es lo que agrupa los atributos generales de un objeto y los métodos para operar
en él. Una instancia es un caso concreto de la clase de un objeto.
Para limitar el acceso a las variables internas de una clase, se añade el término private
antes de su declaración. Así se limita el acceso desde el exterior. Cuando una variable
tiene la característica private, será invisible incluso para las clases que hereden de ésta.
Si se quiere mantener la integridad, pero que a la vez esos atributos puedan ser
heredados, se utilizará el modificador protected en vez de private.
. . .
. . .
Así nombre podrá ser heredado en la clase EntradaAmigo, pero continua siendo
inaccesible para el resto de las clases.
Para tener la certeza de que todo funciona del modo adecuado, evitar la modificación de
los datos es algo necesario y la manera de conseguirlo es haciendo invisibles los datos al
exterior.
Una vez escrita una clase y se comprueba que su funcionamiento es correcto, se tendrá
la certeza de que siempre lo será.
E. HERENCIA
// EntradaAmigo.java
import java.util.Date;
return nombrePareja;
// Sobrescribe EntradaAgenda.dameNombre ( )
return apodo;
// Sobrescribe EntradaAgenda.muestraEntrada ( )
super.muestraEntrada ( ); //Llama al de
su padre
if (casado) System.out.println
("Conyuge: " + nombrePareja);
System.out.println ("Fecha de
nacimiento: " +
// EntradaContacto.java
// profesionales
Super.muestraEntrada ( ) ; // Lama al
de su padre
El término extends indica que una clase deriva de otra heredando todas sus propiedades.
A una clase derivada de otra se le denomina subclase, mientras que la clase de la cual
procede recibe el nombre de superclase. En todo lenguaje orientado a objetos existe una
jerarquía de clases relacionadas en base a términos de herencia. En Java el punto más
alto de la jerarquía es la clase object de la cual derivan en último término todas las
demás clases. Object proporciona una serie de capacidades básicas que son comunes a
todas las clases. Si en la definición de la nueva clase no aparece el término extends Java
considera que tal clase deriva directamente de object.
Una clase hereda de cada uno de sus antecesores en la jerarquía de la clase. Java no
admite herencia múltiple, sino que es un lenguaje de herencia única. La herencia
interactúa con el encapsulado. Si una clase dada encapsula algunos atributos, cualquier
subclase tendrá esos mismos atributos más los que ésta necesita.
Sun ha definido un conjunto de clases de propósito general que pueden ser utilizadas
por el programador para realizar aplicaciones o como base para el desarrollo de nuevas
clases especializadas. La clase Date y la clase System son una de esas clases estándar.
Las clases que conforman una biblioteca estándar están organizadas en paquetes
(packages) que agrupan un conjunto de clases cuya finalidad es similar. Antes de poder
utilizar una clase es preciso indicar el paquete donde se encuentra.
import java.util.Date;
F. POLIMORFISMO
G. SOBREESCRIBIR
La sobrecarga de un método es una manera que tiene una clase de tratar con tipos
diferentes de una manera uniforme. Es estática porque el implementador de la clase
necesita conocer todos los tipos que se van a encontrar antes de escribir los métodos. La
utilización de subclases permite construir niveles de polimorfismo en tiempo de
ejecución más dinámico. Si se declara una subclase se puede sobre escribir un método
concreto para que se comporte de manera diferente al de la superclase.
H. DESTRUCCIÓN DE OBJETOS
Java aprovecha la capacidad multithread del lenguaje, de modo que esta operación se
ejecutará mayoritariamente en los tiempos muertos del programa (generalmente
esperando alguna respuesta por parte del usuario).