clase 4 java 2012

18
Curso Básico de Java Facilitador: Prof. Bassam Asfur Republica Bolivariana de Venezuela Área de Computación

Upload: jose-braganza

Post on 12-Jun-2015

1.006 views

Category:

Business


7 download

TRANSCRIPT

Page 1: Clase 4 JAVA 2012

Curso Básico de Java

Facilitador:Prof. Bassam Asfur

Republica Bolivariana de VenezuelaÁrea de Computación

Page 2: Clase 4 JAVA 2012

El paquete java.io

Los streams.

Cualquier programa realizado en Java que necesite llevar a cabo una operación de I/O lo hará a través de un stream. Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que produzca o consuma información.

Podemos ver a este stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace el sistema de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues las clases y métodos de I/O que necesitamos emplear son las mismas independientemente del dispositivo con el que estemos actuando, luego, el núcleo de Java, sabrá si tiene que tratar con el teclado, el monitor, un sistema de archivos o un socket de red liberando a nuestro código de tener que saber con quién está interactuando.

Page 3: Clase 4 JAVA 2012

El acceso a la entrada y salida estándar es controlado por tres objetos que se crean automáticamente al iniciar la aplicación: System.in, System.out y System.err

a.) System.in

Este objeto implementa la entrada estándar (normalmente el teclado). El método que proporciona el control de entrada es:

•read(): Devuelve el carácter que se ha introducido por el teclado leyéndolo del buffer de entrada y lo elimina del buffer para que en la siguiente lectura sea leído el siguiente carácter.

Si no se ha introducido ningún carácter por el teclado devuelve el valor -1.

El paquete java.io

Page 4: Clase 4 JAVA 2012

b.) System.out

Este objeto implementa la salida estándar. Los métodos que nos proporciona para controlar la salida son:

•print(a): Imprime a en la salida, donde a puede ser cualquier tipo básico Java ya que Java hace su conversión automática a cadena. •println(a): Es idéntico a print(a) salvo que con println() se imprime un salto de línea al final de la impresión de a.

c.) System.err

Este objeto implementa la salida en caso de error. Normalmente esta salida es la pantalla o la ventana del terminal como con System.out, pero puede ser interesante redirigirlo, por ejemplo hacia un fichero, para diferenciar claramente ambos tipos de salidas.Las funciones que ofrece este objeto son idénticas a las proporcionadas por System.out.

El paquete java.io

Page 5: Clase 4 JAVA 2012

La entrada de consola, se obtiene a través de la instrucción System.in.

Para conseguir un flujo de caracteres envolvemos dicha clase en un objeto del tipo BufferedReader, el cual soporta un flujo de entrada del buffer.

Atendiendo a las especificaciones de esta clase, el parámetro que se le pasa es el stream de entrada que es de tipo Reader, el cual es abstracto por lo que recurriremos a una de sus subclases, en nuestro caso será InputStreamReader que convierte bytes a caracteres.

Otra vez más, atendiendo a la especificación de esta última clase vemos que el parámetro que se le pasa es de tipo InputStream, o sea, la entrada orientada a byte que en nuestro caso es System.in, ya hemos asociado un dispositivo físico (el teclado) a un stream orientado a caracteres mediante la clase System con la clase BufferedReader

Lectura de consola.

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

Page 6: Clase 4 JAVA 2012

Definición

La Herencia es el mecanismo por el que se crean nuevos objetos definidos en términos de objetos ya existentes. Por ejemplo, si se tiene la clase Pelota, se puede crear la subclase Pelota_Futbol, que es una especialización de Pelota.

class Pelota_Futbol extends Pelota{ String color; int diametro; }

La palabra clave extends se usa para generar una subclase (especialización) de un objeto. Pelota_Futbol es una subclase de Pelota. Cualquier cosa que contenga la definición de Pelota será copiada a la clase Pelota_Futbol.

Pero, además de heredar la funcionalidad de la clase padre, una clase hija puede sobreescribirla.

Herencia en Java

Page 7: Clase 4 JAVA 2012

Herencia en Java

Page 8: Clase 4 JAVA 2012

Herencia en Java

•Características

• Herencia simple

• Estructura jerárquica en árbol en donde en la raiz podemos encontrar la clase Object, de las que heredan todas las clases.

•Todas las clases tienen un padre

•Todos los objetos son “Object”

•Java no permite que una subclase elimine un método o una variable de instancia aunque esta no la necesite

Page 9: Clase 4 JAVA 2012

class Padre { String nombre, edad; public void mover() { System.out.println("Funcion implmetado en el padre"); }}class Hijo extends Padre { String madre; public void mover() { super.mover(); System.out.println("Funcion implemetado en el hijo"); }}public class Ejemplo{ public static void main(String[] args) { Hijo Alejandro= new Hijo(); Alejandro.mover(); }}

Ejemplo Herencia

Page 10: Clase 4 JAVA 2012

Interfases y Clases Abstractas.

Clases Abstractas.

Al ser utilizado Herencias y/o Polimorfismo es muy común que en la Clase Base existan métodos diseñados únicamente con el propósito de ofrecer una guia para las Clases heredadas, en Java existe un vocablo que permite prohibir el uso de métodos en Clases Base, este calificativo es : abstract.

Al ser definido un método como abstract se restringe que éste sea llamado directamente, cuando una Clase contiene un método de este tipo a ésta se le llama: Clase Abstracta.

Una de las características de las Clases que Heredande una Clase abstracta, es que éstas deben definir los mismos métodos definidos en la Clase Base.

Page 11: Clase 4 JAVA 2012

Clases Abstractas

Una clase abstracta es una descripción incompleta de algo. Un conjunto de operaciones y atributos que por sí solos no describen nada.

•Las clases abstractas no pueden ser instanciadas. •No es posible crear objetos o variables. •Describen partes de objetos. •Creadas por generalización, características comunes, pero no completas Utilizadas en polimorfismo para definir operaciones comunes •Las clases abstractas se utilizan junto con la herencia

Hay mucho interés en torno al polimorfismo. Los métodos pueden ser polimórficos si se aplican objetos de distintas clases para conseguir el mismo significado semántico.

Clases Abstractas.

Page 12: Clase 4 JAVA 2012

Definición:

Un interface es una colección de definiciones de métodos (sin implementaciones) y de valores constantes.

Los interfaces se utilizan para definir un protocolo de comportamiento que puede ser implementado por cualquier clase del árbol de clases.

En Java, un interface es un tipo de dato de referencia, y por tanto, puede utilizarse en cualquier parte del código.

Interface

Page 13: Clase 4 JAVA 2012

Interface

Una Interfase básicamente no indica que todas las Clases que implementen esta Interfase deben contener su misma estructura, para definir una Interfase se utiliza el vocablo interface y para especificar que una Clase debe utilizar determinada Interfase se utiliza el vocablo implements.

Una característica especifica de Interfases que no es posible a través de Clases Abstractas es el uso de Herencias Múltiples, este concepto reside en diseñar Clases que adoptan el comportamiento de más de una Clase

class Clase_Hijo extends Clase_Padre implements Interface1, Interface2, Interface3{ …}

Page 14: Clase 4 JAVA 2012

interface Instrumento { // Constante al compilar, automáticamente static y final int i = 5; // Métodos Automáticamente Públicos void tocar(); String tipo(); void afinar();}

class Guitarra implements Instrumento { public void tocar() {

System.out.println("Guitarra.tocar()"); } public String tipo() { return "Guitarra"; } public void afinar() {}}

Interface (Ejemplo)

Page 15: Clase 4 JAVA 2012

El polimorfismo es un concepto de la programación orientada a objetos que nos permite programar en forma general, en lugar de hacerlo en forma específica. En general nos sirve para programar objetos con características comunes y que todos estos compartan la misma superclase en una jerarquía de clases, como si todas fueran objetos de la superclase. Esto nos simplifica la programación.

Ejemplo Polimorfismo

Sumar

Sumar(4,6);

Sumar(4.5,6.5);

Sumar(‘e’,’t’);

Page 16: Clase 4 JAVA 2012

class Hijo2 extends Padre { String Ruta; public void mover() { System.out.println("La funcion del Hijo 2"); }}

class Ejemplo4{ public static void Ejecutar(Padre m) { m.mover(); } public static void main(String[] args) { Hijo jose= new Hijo(); Hijo2 anibal = new Hijo2(); Ejecutar(jose); Ejecutar(anibal); }}

Ejemplo Polimorfismo

Page 17: Clase 4 JAVA 2012

public class Ejemplo{ int i; public Ejemplo() { i = 10; } // Este constructor establece el valor de i public Ejemplo( int valor ) { this.i = valor; // i = valor } public void Suma_a_i( int j ) { i = i + j; }}

Al acceder a variables de instancia de una clase, la palabra clave this hace referencia a los miembros de la propia clase en el objeto actual; es decir, this se refiere al objeto actual sobre el que está actuando un método determinado y se utiliza siempre que se quiera hace referencia al objeto.

Operador This

Page 18: Clase 4 JAVA 2012

Operador super

class Clase{ void imprimir(){ System.out.println("Funcion Padre"); }}

class Nueva_Clase extends Clase{ void imprimir(){ super.imprimir(); }}

class Ejemplo { public static void main(String []y){ new Nueva_Clase().imprimir(); }}

Si se necesita llamar al método padre dentro de una clase que ha reemplazado ese método, se puede hacer referencia al método padre con la palabra clave super:

Si un método sobrescribe un método de su superclase, se puede utilizar la palabra clave super para eludir la versión sobrescrita de la clase e invocar a la versión original del método en la supreclase.