PDF de programación - Herencia - Java y Servicios Web I - Master en Ingeniería Matemática

Imágen de pdf Herencia - Java y Servicios Web I - Master en Ingeniería Matemática

Herencia - Java y Servicios Web I - Master en Ingeniería Matemáticagráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.440 visualizaciones desde el 14 de Enero del 2017
632,6 KB
32 paginas
Creado hace 11a (13/05/2012)
Herencia

Java y Servicios Web I

Master en Ingeniería Matemática

Manuel Montenegro

Dpto. Sistemas Informáticos y Computación

Desp. 467 (Mat)

[email protected]

Contenidos

● Extensión mediante herencia.
● Reescritura de métodos.
● Modificador de acceso protected.
● Jerarquía de clases.
● La clase Object.

14/Mayo/2012

4. Herencia

2

Herencia

● Mecanismo de la programación orientada a

objetos diseñado para la reutilización y la
extensibilidad.

● Permite añadir funcionalidad a una clase ya

existente.

Superclase

Subclase

14/Mayo/2012

4. Herencia

3

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

Ejemplo: Persona

public class Persona {
private String nombre;
private Fecha fechaNacimiento;
private int dni;

public Persona(String nombre,
Fecha fechaNacimiento, int dni) {
this.nombre = nombre;
this.fechaNacimiento = fechaNacimiento;
this.dni = dni;
}

public void imprimirDatos() {
System.out.print("DNI: ");
System.out.println(dni);
System.out.println("NOMBRE: " + nombre);
System.out.print("FECHA DE NACIMIENTO: ");
fechaNacimiento.imprimir();
System.out.println();
}
}

14/Mayo/2012

4. Herencia

4

Ejemplo: Persona

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

Empleado
int sueldoBase;
int getSueldo()

14/Mayo/2012

4. Herencia

5

Ejemplo: Persona

public class Empleado extends Persona {
private int sueldoBase;

public int getSueldo() {
return sueldoBase;
}
}

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

Empleado
int sueldoBase;
int getSueldo()

14/Mayo/2012

4. Herencia

6

Contenidos

● Extensión mediante herencia.
● Reescritura de métodos.
● Modificador de acceso protected.
● Jerarquía de clases.
● La clase Object.

14/Mayo/2012

4. Herencia

7

Reescritura de métodos

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

public class Empleado extends Persona {

public void imprimirDatos() {
System.out.print("DNI: ");
System.out.println(dni);
System.out.println("NOMBRE: " + nombre);
System.out.print("FECHA DE NACIMIENTO: ");
fechaNacimiento.imprimir();
System.out.println();
System.out.print(“SUELDO: “);
System.out.println(sueldoBase);
}
}

Empleado
int sueldoBase;
int getSueldo()

void imprimirDatos()

14/Mayo/2012

4. Herencia

8

Reescritura de métodos

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

public class Empleado extends Persona {

public void imprimirDatos() {
super.imprimirDatos();
System.out.print(“SUELDO: “);
System.out.println(sueldoBase);
}
}

Empleado
int sueldoBase;
int getSueldo()

void imprimirDatos()

14/Mayo/2012

4. Herencia

9

Reescritura de métodos

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

public class Empleado extends Persona {

public Empleado(String nombre, Fecha fechaNacimiento,
int dni, int sueldoBase) {
this.nombre = nombre;
this.fechaNacimiento = fechaNacimiento;
this.dni = dni;
this.sueldoBase = sueldoBase;
}

}

Empleado
int sueldoBase;
<<constructor>>
int getSueldo()

void imprimirDatos()

14/Mayo/2012

4. Herencia

10

Reescritura de métodos

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

Empleado
int sueldoBase;
<<constructor>>
int getSueldo()

void imprimirDatos()

public class Empleado extends Persona {

public Empleado(String nombre, Fecha fechaNacimiento,
int dni, int sueldoBase) {
super(nombre, fechaNacimiento, dni);
this.sueldoBase = sueldoBase;
}


}

● La primera línea del constructor de la

subclase ha de llamar al constructor
de la superclase.

● Si no lo hace, se intentará llamar

automáticamente al constructor por
defecto.

14/Mayo/2012

4. Herencia

11

Contenidos

● Extensión mediante herencia.
● Reescritura de métodos.
● Modificador de acceso protected.
● Jerarquía de clases.
● La clase Object.

14/Mayo/2012

4. Herencia

12

Modificadores de acceso

● ¿Qué elementos de la superclase son accesibles

desde la subclase?
● Los métodos y atributos public son accesibles.
● Los métodos y atributos private no son accesibles,

aunque sí se heredan.

● Si queremos que un atributo o método privado

sea accesible desde las subclases, tendremos
que definirlo en la superclase con el
modificador protected.

public class Empleado extends Persona {
protected int sueldoBase;
}

14/Mayo/2012

4. Herencia

13

Modificadores de acceso

public

protected private

Dentro de la

clase

Subclases

Otro sitio

14/Mayo/2012

4. Herencia

14

Ejemplo: Estudiante

public class Estudiante extends Persona {
private int puntuacionTotal;
private int numeroCalificaciones;

public Empleado(String nombre, Fecha fechaNacimiento,
int dni) {
super(nombre, fechaNacimiento, dni);
this.sueldoBase = sueldoBase;
this.puntos = 0;
this.numeroCalificaciones = 0;
}
public void nuevaCalificacion(int puntos) {
puntuacionTotal += puntos;
numeroCalificaciones++;
}
public double getNotaMedia() {
return ((double) puntos)/numeroCalificaciones;
}

public void imprimirDatos() {
super.imprimirDatos();
System.out.println(“NOTA MEDIA: “);
System.out.println(getNotaMedia());
}
}

Persona

String nombre;

Fecha fechaNacimiento;

int dni;

<<constructor>>

String getNombre()

Fecha getFechaNacimiento()

int getDni()

void imprimirDatos()

Estudiante

int puntuacionTotal;

int numeroCalificaciones

<<constructor>>

void nuevaCalificacion(int)

double getNotaMedia()

void imprimirDatos()

14/Mayo/2012

4. Herencia

15

Contenidos

● Extensión mediante herencia.
● Reescritura de métodos.
● Modificador de acceso protected.
● Jerarquía de clases.
● La clase Object.

14/Mayo/2012

4. Herencia

16

Jerarquía de clases

Persona

Estudiante

Empleado

● Conceptualmente, la relación entre las

superclases y las subclases es de tipo es-un.

● Representan concreciones sobre el concepto

de Persona.

14/Mayo/2012

4. Herencia

17

Jerarquía de clases

Persona

Estudiante

Empleado

EmpleadoComision

● La jerarquía puede extenderse a varios niveles.
● No se permite herencia múltiple: una clase

sólo tiene una superclase.

14/Mayo/2012

4. Herencia

18

Ejemplo: EmpleadoComision

public class EmpleadoComision extends Empleado
{
private double porcentajeComision;
private int dineroVentas;

public EmpleadoComision(String nombre, Fecha fechaNacimiento, int dni,
int sueldoBase, double porcentajeComision) {
super(nombre, fechaNacimiento, dni, sueldoBase);
this.porcentajeComision = porcentajeComision;
this.dineroVentas = 0;
}

public void vender(int dineroVenta) { this.dineroVentas += dineroVenta; }

public int getSueldo() {
return sueldoBase + (int) (dineroVentas * porcentajeComision / 100.0);
}
}

Acceso a atributo protected

14/Mayo/2012

4. Herencia

19

Ejemplo: EmpleadoComision

public class TestEmpleadoComision {
public static void main(String[] args) {
EmpleadoComision ec = new EmpleadoComision(“Fuckencio Martinez”,
new Fecha(15, 3, 1979),
123456, 1000, 20);
ec.vender(200);
System.out.print(“Sueldo: %d\n“, ec.getSueldo());

ec.imprimirDatos();
}
}

1040

● Discusión: ¿qué sueldo muestra el método

imprimirDatos?

14/Mayo/2012

4. Herencia

20

Figuras geométricas

public class Cuadrado {
public Cuadrado(Punto posicion, int ancho) {
super(posicion, ancho, ancho);
}
}

Rectangulo
Punto origen;

int ancho;
int alto;

<<constructor>>
Punto getOrigen()

int getAncho()
int getAlto()
double area()

double perimetro()

void dibujar(Ventana v)

Cuadrado
<<constructor>>

14/Mayo/2012

4. Herencia

21

Figuras geométricas

Rectangulo
Punto origen;

int ancho;
int alto;

<<constructor>>
Punto getOrigen()

int getAncho()
int getAlto()
double area()

double perimetro()

void dibujar(Ventana v)

Cuadrado
<<constructor>>

RectanguloColor

Color colorBorde;
<<constructor>>

Color getColorBorde()
void dibujar(Ventana v)

14/Mayo/2012

4. Herencia

22

Figuras geométricas

RectanguloColor

Color colorBorde;
<<constructor>>

Color getColorBorde()
void dibujar(Ventana v)

RectanguloRelleno

Color colorRelleno;

<<constructor>>

Color getColorRelleno()
void dibujar(Ventana v)

14/Mayo/2012

4. Herencia

23

Contenidos

● Extensión mediante herencia.
● Reescritura de métodos.
● Modificador de acceso protected.
● Jerarquía de clases.
● La clase Object.

14/Mayo/2012

4. Herencia

24

La clase Object

● Definida en el paquete java.lang

● Siempre se importa por defecto.

● Es la raíz de toda jerarquía de clases.
● Si una clase no hereda de ninguna otra

mediante extends, automáticamente hereda
de Object.

● Consecuencia: toda clase hereda, directa o

indirectamente, de Object.

14/Mayo/2012

4. Herencia

25

La clase Object

● No tiene ningún atributo público ni protegido.
● Define 11 métodos, que pueden ser

sobreescritos en las subclases.

http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html

● Nosotros veremos:

● toStr
  • Links de descarga
http://lwp-l.com/pdf814

Comentarios de: Herencia - Java y Servicios Web I - Master en Ingeniería Matemática (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad