3. Instanciación Creación de objetos
•Un objeto es una instancia de una La sintaxis para declarar un objeto es:
clase • Nombre_clase nombre_objeto; Cuadrado c;
•La creación de un objeto se llama • La variable c es una instancia de Cuadrado, por ende es un objeto de
instanciación la clase Cuadrado.
• Para crear realmente c(objeto de la clase Cuadrado) se necesita
utilizar el operador new Ejemplo: Cuadrado c=new Cuadrado;
Objeto1
Objeto2
Clase La instanciación se
Ejemplo de Clase en java
refleja cuando
…
creamos objetos con class Circulo
nuestro constructor {
double radio =5.0;
double calcularsuperficie0
{
Objeto n return radio*radio*3.141592;
}
}
4. Por defecto
Tiene acceso a Clase, métodos y datos en
el mismo paquete
Protected Public
Modificadores
Tiene acceso a métodos y datos desde la Tiene acceso a Clase, métodos y datos
misma clase o cualquier subclase
de desde cualquier paquete
Se declaran con la palabra reservada Acceso Nivel de acceso menos restringido
Protected
Private
Tiene acceso a un método o datos visible solo en esta clase
Nivel de acceso más restringido
Su objetivo es proteger información contenida en
variables para evitar ser accedido por un extraño
5. Estructura de la Herencia
Superclase
Subclase2 Subclase1 Subclase3
Facilidad de
Modificación
Extracción de
Adaptación de Ventajas códigos
programas
comunes
Organización de
objetos en
jerarquía
6. Modificadores
Tipos de Herencia
•Las subclases heredan de las
superclases los miembros declarados Final Abstract Static
como public o protected
•Si no tiene identificador hereda
siempre y cuando esté en el mismo
paquete
•La Subclase no hereda un miembro Los campos static son
si tiene declarado un miembro con el La clase no puede ser La clase no puede ser
compartidos por
subclasificada instanciada
mismo nombre todas las instancias
Una subclase hereda todos los miembros de su Los constructores
superclase, que son accesibles en esa subclase a no se heredan
menos que la subclase oculte explícitamente una por la subclase
variable miembro o anule un método
7. Interface Ejemplo
•Un interface es parecido a una clase interface Figura
abstracta en Java , pero con algunas {
diferencias Son clases con int area();
•Todo método es abstracto y público sin métodos }
necesidad de declararlo. Por lo tanto un abstractos que
interface en Java no implementa permiten a una public class Cuadrado implements Figura
ninguno de los métodos que declara. sub clase tener {
•Las variables de la interface serán las múltiples int lado;
variables miembro de la clase herencias public Cuadrado (int ladoParametro)
•Una clase puede implementar más de {
una interfaz en Java, pero sólo puede lado = ladoParametro;
extender una clase. }
public int area(){ return lado*lado;
}
}
8. Clases abstractas
•Una clase abstracta es una clase de la cual no se pueden
definir o construir instancias (u objetos).
•Una clase abstracta puede contener métodos no-
abstractos pero al menos uno de los métodos debe ser
declarado abstracto. 0 a N métodos
•Las clases abstractas cumplen una función muy especial.
Sólo sirven para la herencia.
abstract class Ejemplo{
abstract miMetodo();
}
abstract class OtroEjemplo{
}
9. Ejemplo
Clase Animal:
abstract class Animal{
public abstract void habla();
}
Clase Perro:
class Perro extends Animal{
public void habla(){
System.out.println("Guau, guau!");
}
}
Clase Gato:
class Gato extends Animal{
public void habla(){
System.out.println("Miau, miau!");
}
}
Sabemos que todos los animales hablan, pero no todos
lo hacen de la misma forma… Por eso heredamos de la
clase Animal el método abstracto habla y lo
implementamos en las clases Perro y Gato
10. Paquetes
Declaración de un paquete
•Un Paquete en Java es un contenedor
de clases que permite agrupar las
distintas partes de un programa cuya package nombrePaquete;
funcionalidad tienen elementos
comunes. Acceso a los elementos de un
•Un paquete es un conjunto de clases e paquete
interfaces relacionadas
•Un paquete puede contener a otros
Import directorio.paquete.clase;
paquetes.
•Los nombres de los paquetes deben ser
únicos para asegurar que no hay
conflictos de nombres.
Un paquete, es una
colección de clases
relacionadas e
interfaces que
proporcionan
protección de acceso y
gestión de espacio de
nombres