2. Clases y Objetos Estructura de una clase
•Las clases son el conjunto de objetos
Clases que compartes los mismas atributos Atributos
y métodos de una objeto.
Métodos
Objetos
Clases
Class <nombre de la clase> class Circulo
•Un objeto es una colección de datos
{
•Es la representación de
Tipo de dato <nombre de la clase> double radio =5.0;
características únicas de un objeto Tipo de dato <nombre de la clase> double calcularsuperficie0
real o abstracto
{
return radio*radio*3.141592;
}
}
3. Instanciación
•Un objeto es una instancia de una Creación de objetos
clase
•La creación de un objeto se llama
instanciación
La sintaxis para declarar un objeto es:
Objeto1 • Nombre_clase nombre_objeto; Cuadrado c;
• La variable c es una instancia de Cuadrado, por ende es un objeto de
la clase Cuadrado.
• Para crear realmente c(objeto de la clase Cuadrado) se necesita
utilizar el operador new Ejemplo: Cuadrado c=new Cuadrado;
Objeto2
Clase La instanciación se
refleja cuando
…
creamos objetos con
nuestro constructor
Objeto n
4. Por
defecto
•Tiene acceso a Clase, métodos y datos
en el mismo paquete
•Tiene acceso a Clase, métodos y datos
desde cualquier paquete
•Nivel de acceso menos restringido
Modificadores
Protected Public
de Acceso
•Tiene acceso a métodos y datos desde
la misma clase o cualquier subclase
•Se declaran con la palabra reservada •Tiene acceso a un método o datos visible solo en
Protected esta clase
•Nivel de acceso más restringido
•Su objetivo es proteger información contenida en
Private
variables para evitar ser accedido por un extraño
5. Estructura de la Herencia Ventajas
Superclase Facilidad de
Modificación
Subclase2 Subclase1 Subclase3
•También se le llama a una Extracción de
superclase : Padre
Adaptación
de programas Ventajas códigos
comunes
•También se le llama a una subclase:
hija
•Utiliza la siguiente Sintaxis
siguiente: public class Subclase
extends Superclase La clase object
•La herencia es transitiva por lo que proporcina la
se pueden heredar características de funcionalidad
superclases de muchos niveles mínima
Organización
de objetos en
•En principio todas las clases de java garantizada jerarquía
utilizan herencia: Se heredan que es común
características de la clase Object a todos los
objetos
6. Modificadores
Tipos de Herencia
Herencia por especialización
es la que se realiza cuando Final Abstract Static
necesitamos crear una clase nueva
que disponga de las mismas
características que otra pero que le
añada funcionalidades.
Herencia por generalización Los campos static son
es la que realizamos cuando tenemos La clase no puede ser La clase no puede ser
compartidos por
subclasificada instanciada
muchas clases que comparten unas todas las instancias
mismas funcionalidades se decide
crear una clase que implemente toda
esa parte común y se dejan solo las
partes especificas en cada clase
Una subclase hereda todos los miembros de su
superclase, que son accesibles en esa subclase a
menos que la subclase oculte explícitamente una
variable miembro o anule un método
7. Interface Ejemplo
interface Animal{
Son clases con
void comer();
métodos int respirar();
abstractos que }
permiten a una
sub clase tener class Perro implements Animal{
múltiples
public void comer(){
herencias //definimos cómo come el perro
}
public int respirar(){
//definimos cómo respira el perro
}
public String ladrar(){
//definimos un método exclusivo
del perro
}
}
8. Se puede
Clases Clases declarar una
clase como final,
Abstractas Finales cuando no
interesa crear
clases derivadas
de dicha clase
•Es una clase que puede ser •No puede ser heredada
heredada •Puede Ser Instanciada
•No puede ser instanciada
Clases Finales y métodos finales
final class Cuadrado extends Rectangulo final public void funcionFinal()
{ {
public Cuadrado(int x, int y, double dimension) //Sentencias
{ }}
super(x, y, dimension, dimension);
}
}
9. Paquetes
Declaración de un paquete
•Es una colección de clases que se
compilan en una unidad de
compilación package pruebac.dibujos;
•Un paquete puede contener a otros
paquetes. Acceso a los elementos de un
•Los nombres de los paquetes deben ser paquete
únicos para asegurar que no hay
conflictos de nombres..
Import directorio.paquete.clase;
Un paquete, es una
colección de clases
relacionadas e
interfaces que
proporcionan
protección de acceso y
Importaciones Estáticas gestión de espacio de
nombres
import static java.lang.Math.*;
• Permite llamar un método o
public class ImportStatic {
propiedad estática sin necesidad
public static void main(String[] args) {
de hacer referencia al nombre de
System.out.println((int)(random()*5));
su clase
}