Está en la página 1de 28

Atributos Estticos

Los atributos de clase static son compartidas por todos los


objetos de la clase; se declaran de igual manera que otra
variable, aadiendo como prefijo la palabra reservada static;
por ejemplo:
public class Conjunto {
public static int contador= 0;
public Conjunto (){
this.contador++;
}
}

Los atributos miembro static no forman parte de los objetos


de la clase sino de la propia clase
Estructuras de Datos
ESPOL
2016-1T

Mtodos Estticos
La llamada a los mtodos static se realiza mediante la clase:
NombreClase.metodo(), respetando las reglas de visibilidad;
aunque tambin se pueden llamar con un objeto de la clase,
no es recomendable debido a que son mtodos
dependientes de la clase y no de los objetos.
Los atributos estticos deben llevar un modificador de
acceso que permita su uso desde el exterior de la misma,
este puede ser public, protected o ninguno.

Estructuras de Datos
ESPOL
2016-1T

Atributos y Mtodos Estticos


Muchos mtodos de la biblioteca Java se definen como
static; por ejemplo, los mtodos matemticos de la clase
Math: Math.sin(), Math.sqrt().

Estructuras de Datos
ESPOL
2016-1T

Herencia
Estructuras de Datos
FIEC03012
Sesin 06

Estructuras de Datos
ESPOL
2016-1T

Herencia
Es un mecanismo para compartir atributos y mtodos entre
clases.
Permite definir una clase hija (subclase) a partir de una clase

padre (base, superclase).


Las subclases heredan los atributos y mtodos de las superclases.

Superclase

Subclase
Estructuras de Datos
ESPOL
2016-1T

Herencia
Por la herencia se forman jerarquas de clases (superclases y
subclases).
La clase hija hereda el interfaz (con la implementacin de las
operaciones) y los atributos.
Permite la reutilizacin de cdigo.

Relacin es un

Estructuras de Datos
ESPOL
2016-1T

Ejemplo de Herencia
Mamfero
- colorOjo:String
+ getcolorOjo: String

es un

es un

Perro
- frecLadrido:int
+ ladrar::void

es un

PastorAlemn
+ esAleman::void

Gato
- frecMaullido:int
+maullar::void

es un

Poodle
+ esFrances::void

Estructuras de Datos
ESPOL
2016-1T

Herencia
ANTES

Auto
maxFuel
maxNroDePasajeros
modelo
velocidad
acelerar()
desacelerar()
girarAIzq()
girarADcha()

DESPUES
Vehiculo
maxFuel
maxNroDePasajeros
velocidad

Avion
maxAltitud
maxFuel
maxNroDePasajeros
velocidad
nroDeMotores
acelerar()
desacelerar()
descender()
ascender()

superclase

acelerar()
desacelerar()

Auto
modelo

Avion
maxAltitud
nroDeMotores

doblarAIzq()
doblarADcha()

descender()
ascender()

subclases
Estructuras de Datos
ESPOL
2016-1T

Herencia
Java

UML

public class Vehiculo {

Vehiculo

}
public class Auto extends Vehiculo{
}
Auto

Avion

public class Avion extends Vehiculo{

Estructuras de Datos
ESPOL
2016-1T

Herencia
Persona
nombre, apellido, edad

Estudiante

numero matricula
Mostrar Nombre Apellido y Matricula

Estructuras de Datos
ESPOL
2016-1T

10

Herencia
Simple: una clase (clase hija) puede heredar de otra clase (una clase
padre).
Mltiple: una clase (clase hija) puede heredar de otras clases padres

(tener varias clases padres).


problemas de ambiguedad
problema del diamante

Estructuras de Datos
ESPOL
2016-1T

11

Herencia
Simple: una clase (clase hija) puede heredar de otra clase (una clase
padre).
Mltiple: una clase (clase hija) puede heredar de otras clases padres

(tener varias clases padres).


problemas de ambiguedad
problema del diamante

Estructuras de Datos
ESPOL
2016-1T

12

Herencia
Simple: una clase (clase hija) puede heredar de otra clase (una clase
padre).
Mltiple: una clase (clase hija) puede heredar de otras clases padres

(tener varias clases padres).


problemas de ambiguedad
problema del diamante

Estructuras de Datos
ESPOL
2016-1T

13

Clases Abstractas
Su objetivo es especificar una estructura comn para todas sus
subclases.
El uso de clases abstractas puede simplificar el modelamiento de las
clases que participan en la misma relacin con otras clases.
No siempre se pueden encontrar clases abstractas.

Deja sin definir una o ms operaciones (slo declara sus prototipos


no tienen implementacin), que se definirn en subclases. Estas
operaciones se denominan operaciones abstractas.
Estructuras de Datos
ESPOL
2016-1T

14

Clases Abstractas
Figura {Abstracto}

public abstract class Figura {


...
}
Circulo

Rectangulo

public class Circulo extends Figura{


...
}
public class Rectangulo extends Figura{
...
}

Estructuras de Datos
ESPOL
2016-1T

15

Clases Abstractas
Figura {Abstracto}

calcularArea()
Rectangulo
ancho, alto
calcularArea()

Circulo
radio, centro
calcularArea()

Estructuras de Datos
ESPOL
2016-1T

16

Clases Abstractas

Estructuras de Datos
ESPOL
2016-1T

17

Overriding
Es una relacin de herencia.
La clase hija puede extender o redefinir (override) el
comportamiento de la clase padre.
El Method Overriding (sobremontado de mtodo) permite
implementar un mismo mtodo de una superclase, en una subclase.

Hay dos clases de overriding:


Redefinicin: Se reemplaza el mtodo de la superclase totalmente.
Extensin: Se aumenta el mtodo original con un comportamiento adicional.

Estructuras de Datos
ESPOL
2016-1T

18

Overriding
Barco

alarma()

DeVapor

alarma()

Estructuras de Datos
ESPOL
2016-1T

19

Overriding

Estructuras de Datos
ESPOL
2016-1T

20

Overloading (Sobrecarga)
En una clase se puede definir dos o ms mtodos con el mismo

nombre, pero que reciben diferentes parmetros (cantidad y/o tipo).


Estos mtodos son overloading.
Ejm:
public void getCab( );
public void getCab(String cabbieName);
public void getCab(int numberOfPassengers);

Estructuras de Datos
ESPOL
2016-1T

21

Polimorfismo
Significa que la misma operacin puede comportarse diferente en
clases distintas.

El polimorfismo est muy ligado a la herencia.


Distintas instancias del mismo tipo interpretan el mismo mensaje en
diferentes formas.
El polimorfismo requiere enlace dinmico
Enlace dinmico: la llamada se resuelve en tiempo de ejecucin.
Enlace esttico: la llamada se resuelve en tiempo de compilacin
Estructuras de Datos
ESPOL
2016-1T

22

Ejemplo de Polimorfismo
Atributo:
area

FiguraGeomtrica

Mtodo:
ObtenerArea

rectngulo

crculo

Atributos:
radio

Atributos:

ancho

longitud

Mtodos:

ancho

CrearCirculo

Mtodos:

ObtenerArea

CrearRectangulo
ObtenerArea
Estructuras de Datos
ESPOL
2016-1T

23

Ejemplo de Polimorfismo

mtodo abstracto

Mtodo
abstracto

Figura {abstracto}

Figura f = new Rectangulo();


int s = f.obtenerArea();

+obtenerArea()

Circulo
+obtenerArea()

Rectangulo
+obtenerArea()

mtodo concreto

Estructuras de Datos
ESPOL
2016-1T

24

Interface
Permite declarar un conjunto de constantes y de cabeceras de
mtodos abstractos.
Las interfaces son implementadas en las clases.

Una interface especifica el comportamiento que va a tener la clase


que la implemente.
Para declararlas, es necesario utilizar la palabra reservada interface

Estructuras de Datos
ESPOL
2016-1T

25

Ejemplo de un Interface
public interface Barco

{
void alarma();
void msgeSocorro(String av);
}
public class Pesquero implements Barco {
public Pesquero() {
}
public void alarma() {
System.out.println("Alarma desde el pesquero!!");
}
public void msgeSocorro(String av) {
System.out.println("SOS SOS!");
}
}
Estructuras de Datos
ESPOL
2016-1T

26

Variable Interfaz
public interface Caja {
Caja insertar (Object elemento);
}
public class CajaRegalo implements Caja {
public Caja insertar(Object e) { ...
}
}
public class CajaJuguete implements Caja{
public Caja insertar(Object e) { ...
}
}

Estructuras de Datos
ESPOL
2016-1T

Caja q;
q = new CajaRegalo();
q.insertar("Reloj");
...
q = new CajaJuguete();
q.insertar("Pelota");

27

Interface
Java por defecto no soporta Herencia Mltiple.
Sin embargo, una clase si puede implementar ms de una interfaz, es
decir si puede tener el comportamiento de varias interfaces
public class A implements B, C {
/* implementacion de B y C */
}

Estructuras de Datos
ESPOL
2016-1T

28

También podría gustarte