2. Clases y Objetos Estructura de una clase
•Las clases son estructuras o
plantillas que sirven para definir un
Cllases objeto.
•En una clase Java, se pueden utilizar Atributos
datos para describir propiedades y
métodos que definen su
comportamiento Métodos
La lógica
Objetos utilizada por
las clases y Clases
objetos es
fundamental
para la
programación
Ejemplo de Clase en java
en Java
•Un objeto es una colección de datos
y las subrutinas o métodos que class Circulo
operan sobre ellos. {
•Los objetos representan cosas físicas double radio =5.0;
o abstractas, pero que tienen un double calcularsuperficie0
estado y un comportamiento {
return radio*radio*3.141592;
}
}
3. Instanciación Declaración de clases y creación de objetos
•Un objeto es una instancia de una • Como ya se ha comentado, una vez que se define una clase, el
clase nombre de la clase se convierte en un nuevo tipo de dato y se utiliza
•La creación de un objeto se llama tanto para declarar variables de ese tipo, como para crear objetos del
instanciación mismo. La sintaxis para declarar un objeto es:
• Nombre_clase nombre_objeto; Cuadrado c;
• La variable c es una instancia de Cuadrado, por ende es un objeto de la clase
Cuadrado.
Objeto1 • 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
Ejemplo de Clase en java
refleja cuando
… creamos objetos con class Circulo
nuestro constructor {
double radio =5.0;
double calcularsuperficie0
{
Objeto return radio*radio*3.141592;
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
•Si se trata de acceder a información privada, hay
problemas con compilación
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
comúnes
•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
Tips de Herencia
•Las subclases heredan de las
superclases los miembros declarados Final Abastract 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. Modificadores
Tips de Herencia
•Las subclases heredan de las
superclases los miembros declarados Final Abastract 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
8. 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)
•Un interface se implementa {
(implements) no se extiende (extends) lado = ladoParametro;
por sus subclases }
•Una clase puede implementar más de public int area(){ return lado*lado;
una interfaz en Java, pero sólo puede }
extender una clase }
•Podemos declarar variables del tipo de
clase del interfaz, pero para
inicializarlas tendremos que hacerlo de
una clase que lo implemente
9. Se puede
Clases Clases declarar una
clase como final,
Abstractas Finales cuando no nos
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);
}
}
10. Paquetes
Declaración de un paquete
•Es una colección de clases que se
compilan en una unidad de
compilación package pruebac.dibujos;
•Proporcionan un medio adecuado para
organizar dichas clases. Acceso a los elementos de un
•El lenguaje Java viene con un conjunto paquete
rico de paquetes que se pueden utilizar
para construir aplicaciones.
Import directorio.paquete.clase;
•Un paquete puede contener a otros
paquetes.
•Los nombres de los paquetes deben ser
únicos para asegurar que no hay Un paquete, es una
conflictos de nombres. Java impone un colección de clases
convenio de nombres por el que un relacionadas e
nombre de paquete se construye por un interfaces que
número de componentes separados por proporcionan
un punto (separador . ). Estos protección de acceso y
Importaciones Estáticas componentes corresponden a la gestión de espacio de
posición de los archivos. nombres
• Permite llamar un método o import static java.lang.Math.*; Como tarea debes
propiedad estática sin necesidad public class ImportStatic { leer sobre los
de hacer referencia al nombre de public static void main(String[] args) { paquetes
su clase System.out.println((int)(random()*5)); incorporados
}