La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.

Presentaciones similares


Presentación del tema: "Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009."— Transcripción de la presentación:

1 Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009

2 Herencia  La Herencia es el mecanismo por el que se crean nuevos objetos definidos en términos de objetos ya existentes.  La herencia ofrece una ventaja importante, permite la reutilización del código. Una vez que una clase ha sido depurada y probada, el código fuente de dicha clase no necesita modificarse. Su funcionalidad se puede cambiar derivando una nueva clase que herede la funcionalidad de la clase base y le añada otros comportamientos.  En Java no se puede hacer herencia múltiple

3 Modificadores de Acceso  Hay cuatro modificadores de acceso a los miembros dato y a los métodos: private, protected, public y default (por defecto, o en ausencia de cualquier modificador).  La herencia complica aún más el problema de acceso, ya que las clases dentro del mismo paquete tienen diferentes accesos que las clases de distinto paquete

4 Modificadores de Acceso public - Todo el mundo puede acceder al elemento. Si es un dato miembro, todo el mundo puede ver el elemento, es decir, usarlo y asignarlo. Si es un método todo el mundo puede invocarlo. Si es en una clase: Todo el mundo puede usarla. Se pueden crear instancias de esa clase, siempre y cuando alguno de sus constructores sea accesible private - Sólo se puede acceder al elemento desde métodos de la clase, o sólo puede invocarse el método desde otro método de la clase.

5 Modificadores de Acceso protected - El modificador de acceso protected es una combinación de los accesos que proporcionan los modificadores public y private. protected proporciona acceso público para las clases derivadas y acceso privado (prohibido) para el resto de clases. Sin modificador(default) - Se puede acceder al elemento desde cualquier clase del package donde se define la clase. Si es en una clase: Solo puede ser usada e instanciada por clases dentro del package donde se define. Pueden utilizarse estos modificadores para cualquier tipo de miembros de la clase, incluidos los constructores (con lo que se puede limitar quien puede crear instancias de la clase).

6 Clases Abstractas Una clase abstracta es una clase de la que no se puede crear objetos. La utilidad esta en que otras clases hereden de ésta, para reutilizar código. Para declarar una clase como abstracta utilizamos la palabra reservada abstract. Los métodos sin implementar serán declarados abstractos. Si una clase tiene un método abstract es obligatorio que la clase sea abstract. Todas las subclases que hereden de una clase abstracta tendrán que redefinir los métodos abstractos dándoles una implementación. En el caso de que no implementen alguno de esos métodos la clase hija también será abstracta y tendrá que declararse como tal (tanto la clase como los métodos que siguen siendo abstractos).

7 Clases Abstractas public abstract class Forma { private int xpos, ypos; private Color color; //... public abstract void dibuja(); public void setColor(Color c) { /*...*/ }; }

8 Clases Abstractas public class Circle extends Forma { private int radio; public void dibuja() { /*...*/ }; public void setRadio(int) { /*...*/ }; }

9 Clases Abstractas public class Rectangle extends Forma { private int altura, anchura; public void dibuja() { /*...*/ }; public void setAltura(int) { /*...*/ }; }

10 Interfaces Un interface es parecido a una clase abstracta en Java, pero con las siguientes diferencias:una clase abstracta en Java - Todo método es abstracto y público sin necesidad de declararlo. Por lo tanto un interface en Java no implementa ninguno de los métodos que declara. -Las variables del interface serán las variables miembro de la clase.variables miembro de la clase - Un interface se implementa (implements) no se extiende (extends) por sus subclases.

11 Interfaces -Una clase puede implementar más de un interfaz en Java, pero sólo puede extender una clase. (Es lo más parecido que tiene Java a la herencia múltiple, que de clases normales está prohibida.) - Podemos declarar variables del tipo de clase del interfaz, pero para inicializarlas tendremos que hacerlo de una clase que lo implemente.

12 Interfaces Vamos a crear un interface denominado Mensaje que contenga la declaración de una función denominada Muestra. public interface Mensaje { public abstract void Muestra(); } Hacemos que la jerarquía de clases que deriva de Animal implemente la interface Mensaje public abstract class Animal implements Mensaje { public abstract void Muestra(); }

13 Interfaces class Perro extends Animal { public void Muestra(){ System.out.println("¡Guau!"); } class Gato extends Animal { public void Muestra(){ System.out.println("¡Miau!"); }

14 Interfaces Ahora con otra jerarquía de clases completamente distinta, la que deriva de la clase base Reloj. Una de las clases de dicha jerarquía Cucu implementa el interface Mensaje y por tanto, debe de definir obligatoriamente la función Muestra declarada en dicho interface. public abstract class Reloj { } class Cucu extends Reloj implements Mensaje{ public void Muestra(){ System.out.println("¡Cucu, cucu,..!"); } }

15 Interfaces Definamos la función Muestra2 de modo que conozca al objeto que se le pasa no por una clase base, sino por el interface Mensaje. public class PoliApp { public static void main(String[] args) { Gato gato=new Gato(); Muestra2(gato); Cucu cucu=new Cucu(); Muestra2(cucu); } static void Muestra2(Mensaje sujeto){ sujeto. Muestra2(); }


Descargar ppt "Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009."

Presentaciones similares


Anuncios Google