Apuntes programación orientada a objetos
pablo castañoInforme27 de Octubre de 2017
697 Palabras (3 Páginas)111 Visitas
APUNTES POO
- En la herencia se hereda todo: atributos (si son privados también) y métodos.
- Ejemplo: public class Gato extends animal {
- En todo constructor de una clase hija lo primero que se hace es llamar al constructor de la clase padre
- Super() →Representa a la clase padre
- *Ejemplo de constructor de Gato:
Public Gato() {
Super(); → con esto llamamos al constructor de la clase padre
System.out.println(‘’concretamente un gato’’);
}
- Control space para operaciones
- Con super.metodo(); llamo al método de la clase padre
- Utilizo super para hacer referencia a la clase padre
- Ver ejemplo de figuras en fotocopias
- Si tengo atributos privados en la clase padre los heredo en la clase hija, pero no son visibles desde ésta, puedo tener visibilidad con un get
- Si heredo algo, lo sobreescribo y quiero hacer alusión a la implementación de la clase padre utilizo super, si no this.
- Dentro de la misma clase no suelto utilizar get y sets
- Clases abstractas →solo pueden ser abstractas las clases padres
- Con que un método sea abstracto toda la clase es abstracta
- Si tengo un método que no tiene sentido en las clases padres pero sí en las hijas→metodo abstracto.
- Para decir que una clase es abstracta:
public abstract class Figura { *sin cuerpo
- Al hacer la clase abstracta ya no me puedo crear objetos de esa clase!
- Las clases padres aunque también sean hijas, pueden ser abstractas.
- Puedo tener arrays de clases
- En un array polimórfico puedo tratar a los objetos de la misma forma, sin preguntarme si es un circulo, cuadrado… ver apuntes dados.
- Puedo crear arrays al vuelo:
Double [] rectas = {5, 10, 2}; Aquí tengo un array con 3 posiciones y con esos valores en las posiciones.
- Atributo estático: no pertenece a los objetos de una clase, pertenece a toda la clase en general. Ejemplo descuento de coches.
- Si modifico un atributo estático afecta a todos los objetos de mi clase.
- Como hacen referencia a la clase en general, los llamo con el nombre de la clase: coche.descuento = 100;
- Si veo nombre de una clase, un punto y algo a continuación →eso es estática.
- Al invocar un método estático no me hace falta crear un objeto de la clase.
- En estática no utilizo this.
- Al invocar un método estático no me hace falta crear un objeto de la clase
- Ejemplo de get estático:
public static int getDescuento () {
return Coche.descuento;
- Ejemplo de set estático
public static void setDescuento (int descuento) {
Coche.decuento = descuento;
}
- En la clase coche sería:
public static int descuento = 2500;
- Para declarar constantes
private static final int N = 3; (el static no es necesario)
- A la hora de compilar solo puedo llamar a los métodos que aparecen en la clase padre
- For loop o for vitaminado:
for (Figura f: figuras) { donde f es la variable para identificar a cada objeto,
Figura es el tipo de los objetos del array
figuras es el array que vamos a iterar
- Cuando veo <> en la definición de una clase quiere decir que es una clase genérica, es decir puede crear una lista de lo que quieras.
- Para definir un arraylist:
ArrayList < Circulo> círculos = new ArrayList <> (); Circulo es el tipo de los objetos y círculos el nombre del arraylist.
...