unidad 2 reutilizaciÓn de clases programación orientada a objetos m.s.c. ivette hernández dávila
TRANSCRIPT
![Page 1: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/1.jpg)
Unidad 2REUTILIZACIÓN DE CLASES
Programación Orientada a Objetos
M.S.C. Ivette Hernández Dávila
![Page 2: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/2.jpg)
Reutilización de clasesComposiciónUtilizar objetos como miembros de otros
objetosHerenciaEspecialización o extensión de una clase
para crear otra nueva
![Page 3: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/3.jpg)
Reutilización de código. ComposiciónLa 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.
![Page 4: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/4.jpg)
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.
![Page 5: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/5.jpg)
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.
![Page 6: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/6.jpg)
ComposiciónConsiste 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.
![Page 7: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/7.jpg)
Ejemplos:clase Punto y clase CírculoPunto.javaCirculo.java
![Page 8: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/8.jpg)
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.
![Page 9: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/9.jpg)
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».
![Page 10: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/10.jpg)
FLUJOS EN JAVA
![Page 11: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/11.jpg)
FLUJOSFlujo 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.
![Page 12: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/12.jpg)
DataInputStreamEs un clase que proporciona flujos de
entrada, que permite convertir los datos a tipos primitivos.
Usa los siguientes métodos:
![Page 13: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/13.jpg)
Métodos del DataInputStream:readBoolean(); lee un boleanoreadByte(); lee un byte de 8 bitsreadUnsignedByte(); lee un byte de 8 bits
sin signoreadShort(); lee un short de 16 bitsreadChar(); lee un char de 16 bitsreadInt(); lee un entero de 32 bitsreadLong(); lee un long de 64 bitsreadFloat(); lee un float de 32 bitsreadDouble(); lee un double de 64 bitsreadLine(); lee una línea de texto
![Page 14: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/14.jpg)
DataOutputStreamEs un flujo de salida que permite convertir
los datos de tipo primitivo a un flujo de bytes de salida.
Sus métodos son:
![Page 15: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/15.jpg)
Métodos de DataOutputStreamwriteBoolean(Boolean); Escribe un booleanowriteByte(Byte); Escribe un byte de 8 bitswriteShort(int); Escribe un short de 16 bitswriteChar(char); Escribe un char de 16 bitswriteInt(int); Escribe un int de 32 bitswriteLong(long); Escribe un long de 64 bitswriteFloat(float); Escribe un float de 32 bitswriteDouble(double); Escribe un double de 64
bitswriteBytes(String); Escribe una cadena como una
secuencia de byteswriteChars(String); Escribe una cadena como una secuencia de caracteres de 16 bits
![Page 16: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/16.jpg)
PrintStreamProporciona un filtro de salida
que permite desplegar, números, valores, cadenas etc.
En modo texto.Funciona parecido el println de la
consola.
![Page 17: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/17.jpg)
Cerrando FlujosPara cerrar un flujo , usamos el
método: close().
![Page 18: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/18.jpg)
Abriendo FlujosPara 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 tryCon catch que tenga una
IOException
![Page 19: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/19.jpg)
Flujos especificosPara abrir archivos usamos dos
clases:– File– FileInputStream– FileOutputStream
![Page 20: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/20.jpg)
FileEsta clase proporciona una
abstracción independiente para obtener información de un archivo, como:
– Su ruta– Carácter de separación– Tamaño– Fecha
![Page 21: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/21.jpg)
FileInputStreamProporciona una flujo de entrada
para acceder los datos del archivo.
![Page 22: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/22.jpg)
FileOutputStreamEs una clase que permite acceder
al archivo para escribir datos.
![Page 23: Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila](https://reader035.vdocuments.net/reader035/viewer/2022062309/5665b4751a28abb57c91a4be/html5/thumbnails/23.jpg)
EjemplosArchivo textoArchivo binarioArchivo de escritura