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