Você está na página 1de 10

Guía Fundamentos de Programación

Otoño 2007
INSTITUTO PROFESIONAL PROVIDENCIA
ESCUELA DE TECNOLOGÏA E INFORMATICA

Guía Fundamentos de Programación:


Profesor: Pedro González

Herencia:

Cuando en Java indicamos que una clase “extends” otra clase estamos
indicando que es una clase hija de esta y que, por lo tanto, hereda todos
sus métodos y variables. Este es un poderoso mecanismo para la
reusabilidad del código. Podemos heredar de una clase, por lo cual
partimos de su estructura de variables y métodos, y luego añadir lo que
necesitemos o modificar lo que no se adapte a nuestros requerimientos.
Veamos un ejemplo:

gonzalezpe Página 1 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
Implementación

class Persona {
private String nombre;
private int edad;
public Persona() {}
public Persona (String n, int e)
{
nombre = n;
edad = e;
System.out.println (n + "-" + e);
}

class Alumno extends Persona {


private int curso;
private String nivelAcademico;
public Alumno (String n, int e, int c, String nivel) {
super(n, e);
curso = c;
nivelAcademico = nivel;
}
public static void main(String[] args) {
Alumno a = new Alumno("Pepe", 1, 2, "bueno");
}
}

gonzalezpe Página 2 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
Polimorfismo

El concepto de Polimorfismo es uno de los fundamentos para cualquier


lenguaje orientado a Objetos, las mismas raíces de la palabra pueden
ser una fuerte pista de su significado: Poli = Multiple, morfismo= Formas
, esto implica que un mismo Objeto puede tomar diversas formas.

gonzalezpe Página 3 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
Implementación

class Persona {
private String nombre;
private int edad;
public Persona() {}
public Persona (String n, int e)
{
nombre = n;
edad = e;
System.out.println (n + "-" + e);
}

class Coordinador extends Persona {


public void Coordinador() {
System.out.println("Escuela Tecnología e Informática");
}
}
class Profesor extends Persona{
public void Profesor(){System.out.println("Economia");
}
}

class Alumno extends Persona {


private int curso;
private String nivelAcademico;
public Alumno (String n, int e, int c, String nivel) {
super(n, e);
curso = c;

gonzalezpe Página 4 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
nivelAcademico = nivel;
}
public static void main(String[] args) {
Alumno a = new Alumno("Pepe", 1, 2, "bueno");

}
}

public class Polimorfismo


{
public static void main(String[] args) {
Persona v[]=new Persona[10];
int tipo = 2;
// Se introducen alumnos, profesores y personas en v
for (int i=0 ; i<10; i++)
/* Se piden datos al usuario de profesor, alumno o persona */
switch (tipo) {
case 1:
v[i] = new Profesor ();
break;
case 2:
v[i] = new Alumno("pepe",23,1,"universitario");
break;
case 3:
v[i] = new Coordinador ();
break;
default:
System.out.println("Opción no Existe");
}
for (int i=0 ; i<10; i++)
System.out.println(v[i]);

gonzalezpe Página 5 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
// enlace dinámico con toString()
}
}

gonzalezpe Página 6 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
Interfaces

En Java no está soportada la herencia múltiple, esto es, no está


permitido que una misma clase pueda heredar las propiedades de varias
clases padres. En principio esto pudiera parecer una propiedad
interesante que le daría una mayor potencia al lenguaje de
programación, sin embargo los creadores de Java decidieron no
implementar la herencia múltiple por considerar que esta añade al
código una gran complejidad (lo que hace que muchas veces los
programadores que emplean programas que sí la soportan no lleguen a
usarla).
Sin embargo para no privar a Java de la potencia de la herencia múltiple
sus creadores introdujeron un nuevo concepto: el de interface.
Una interface es formalmente como una clase, con dos diferencias: sus
métodos están vacíos, no hacen nada, y a la hora de definirla en vez de
emplear la palabra clave “class” se emplea “inteface”. Veámoslo con un
ejemplo:

gonzalezpe Página 7 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007

gonzalezpe Página 8 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
Implementación

public class inicioInter


{
private Figura a;
public inicioInter() {
this.a = new Circulo();
System.out.println(a.area());
}

public static void main() {


new inicioInter();
}
}

public interface Figura {


abstract double area();
abstract double perimetro();
}

public class Circulo implements Figura {


private double radio=10;
private static double PI=3.1416;

public double area() { return PI*radio*radio; }


public double perimetro() { return 2*PI*radio; }
}

gonzalezpe Página 9 15/10/yyyy


Guía Fundamentos de Programación
Otoño 2007
public class Cuadrado implements Figura {
private double lado;

public double area() { return lado*lado; }


public double perimetro() { return 4*lado; }
}

this
Es una variable especial de sólo lectura que proporciona Java. Contiene
una referencia al
objeto en el que se usa dicha variable. A veces es útil que un objeto
pueda referenciarse a si
mismo:

class Cliente{
public Cliente(String n){
//Llamamos al otro constructor. El empleo de this ha de ser
//siempre en la primera línea dentro del constructor.
this(n, Cuenta.nuevo_numero());
.....
}
public Cliente (String n, int a){
nombre = n;
numero_cuenta = a;
}
.....
} ///:~

gonzalezpe Página 10 15/10/yyyy

Você também pode gostar