Download Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a

Document related concepts
no text concepts found
Transcript
Unidad 2
REUTILIZACIÓN DE CLASES
Programación Orientada a Objetos
M.S.C. Ivette Hernández Dávila
Reutilización de clases
Composición
 Utilizar objetos como miembros de otros objetos
 Herencia
 Especialización o extensión de una clase para crear otra
nueva

Reutilización de código.
Composición
La forma más directa de usar una clase de objetos es
creando objetos concretos.
 Relación Tiene-un: También se puede decidir que un
elemento concreto compone a otro tipo de objetos
más general.
 Por ejemplo: la clase de objetos Coche posee cuatro
objetos de la clase Rueda.





Así, un objeto puede contener a muchos otros, y así
sucesivamente. Cuando un objeto recibe un mensaje,
dentro del método asociado a éste puede:
Responder directamente.
Reenviar el mensaje a otros objetos externos.
Reenviar el mensaje a objetos que él mismo contiene.

Sea por ejemplo la clase LamparaDeMesa, la cual tiene un bombillo,
un Suiche y un porta lámpara, su codificación quedaría de la
siguiente manera:
public class LamparaDeMesa {
private Bombillo bombilloLampara;
private Suiche interruptorLampara;
.....
}

Indica que la clase LamparaDeMesa tiene un objeto
bombilloLampara del tipo Bombillo y un objeto interruptorLampara
de tipo Suiche. Obviamente puede contener más objetos.
Composición




Consiste en meter objetos dentro de otros objetos. Es
como crear un registro.
Ejemplo:
SprinklerSystem.java
Para poder visualizar un objeto de la clase WaterSource
con System.out.println(), es necesario que posea un
método que lo convierta en String. Este método se
llama toString(), y debe retornar un String.
Ejemplos:
 clase Punto y clase Círculo
 Punto.java
 Circulo.java

Reutilización de código. Herencia


Relación es-un: En O.O. Se permite coger una clase,
crear un copia idéntica de la misma (clon), modificar la
estructura de la copia, y crear así una nueva clase.
Esto es lo que se denomina herencia, aunque Java hace
que si la clase original (llamada clase base o padre), se
modifica posteriormente, la clase copia (también
llamada clase heredera, derivada o hija), también
reflejará esos cambios.
Para diferenciar la clase hija de la padre se puede:
 Incluir nuevas funciones a la clase hija.
 Modificar el funcionamiento de las funciones ya
existentes en la clase padre. Es lo que se llama
reescritura.
 La reescritura viene a decir algo así como: «Estoy
empleando la misma interfaz que mi padre, pero me
quiero comportar de forma distinta».

FLUJOS EN JAVA
FLUJOS



Flujo de Entrada/Salida proporciona un camino a través
del cual un programa puede enviar una secuencia de
bytes.
Un flujo de entrada es una fuente de bytes.
Un flujo de salida es un destino de bytes.
DataInputStream


Es un clase que proporciona flujos de entrada, que
permite convertir los datos a tipos primitivos.
Usa los siguientes métodos:
Métodos del DataInputStream:
readBoolean(); lee un boleano
readByte(); lee un byte de 8 bits
readUnsignedByte(); lee un byte de 8 bits sin
signo
 readShort(); lee un short de 16 bits
 readChar(); lee un char de 16 bits
 readInt(); lee un entero de 32 bits
 readLong(); lee un long de 64 bits
 readFloat(); lee un float de 32 bits
 readDouble(); lee un double de 64 bits
 readLine(); lee una línea de texto



DataOutputStream


Es un flujo de salida que permite convertir los datos de
tipo primitivo a un flujo de bytes de salida.
Sus métodos son:
Métodos de DataOutputStream
writeBoolean(Boolean); Escribe un booleano
writeByte(Byte); Escribe un byte de 8 bits
writeShort(int); Escribe un short de 16 bits
writeChar(char); Escribe un char de 16 bits
writeInt(int); Escribe un int de 32 bits
writeLong(long); Escribe un long de 64 bits
writeFloat(float); Escribe un float de 32 bits
writeDouble(double); Escribe un double de 64 bits
writeBytes(String); Escribe una cadena como una
secuencia de bytes
 writeChars(String); Escribe una cadena como una
secuencia de caracteres de 16 bits









PrintStream
Proporciona un filtro de salida que
permite desplegar, números, valores,
cadenas etc.
 En modo texto.
 Funciona parecido el println de la consola.

Cerrando Flujos

Para cerrar un flujo , usamos el método:
close().
Abriendo Flujos
Para abrir un flujo, primero creamos un
Objeto como flujo de entrada o salida y
después abrimos el tipo de flujo.
 Esto dentro de un try
 Con catch que tenga una IOException

Flujos especificos
Para abrir archivos usamos dos clases:
 – File
 – FileInputStream
 – FileOutputStream

File
Esta clase proporciona una abstracción
independiente para obtener información
de un archivo, como:
 – Su ruta
 – Carácter de separación
 – Tamaño
 – Fecha

FileInputStream

Proporciona una flujo de entrada para
acceder los datos del archivo.
FileOutputStream

Es una clase que permite acceder al
archivo para escribir datos.
Ejemplos
Archivo texto
 Archivo binario
 Archivo de escritura
