SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Java Clases y objetos 1
Java: Clases y Objetos
Java Clases y objetos 2
Clases
La unidad fundamental de programación en Java
es la clase
Un programa Java está formado por un conjunto
de clases
Una clase es una “plantilla” que describe un
conjunto de objetos con atributos y
comportamiento similares
Un programa Java en ejecución crea y manipula
(mediante llamadas a métodos) objetos concretosobjetos concretos
(ejemplares o instancias)
Java Clases y objetos 3
Clases
Cada objeto es un ejemplar de una clase
Cuando se invoca un método de un objeto, se
mira en el código de su clase las acciones a
ejecutar
Un objeto puede usar otros para realizar su
trabajo
Java Clases y objetos 4
Clases
Una definición de clase comprende:
Cabecera
Campos o atributos:
Variables
Constantes
Métodos:
Funciones
Constructores
Bloques de inicialización static
Finalizador
estado del objeto
comportamiento
Java Clases y objetos 5
Definición de una clase
[Modificadores] class NombreClase [extends SuperClase] {
// definición de los atributos de la clase
tipo1 identificador1;
tipo2 identificador2;
……….…………….
// definición de los métodos de la clase
tipoDevuelto nombreMetodo1 (listaParametros) {
//instrucciones del método1
}
tipoDevuelto nombreMetodo2 (listaParametros) {
//instrucciones del método2
}
……….…………….
}
[Modificadores] class NombreClase [extends SuperClase] {
// definición de los atributos de la clase
tipo1 identificador1;
tipo2 identificador2;
……….…………….
// definición de los métodos de la clase
tipoDevuelto nombreMetodo1 (listaParametros) {
//instrucciones del método1
}
tipoDevuelto nombreMetodo2 (listaParametros) {
//instrucciones del método2
}
……….…………….
}
Java Clases y objetos 6
Modificadores de clase
Modificadores:
public class NombreClase // visible fuera del
paquete
Normalmente la clase se almacena en un fichero
NombreClase.java
En un fichero .java puede haber como mucho una clase
public
class C extends superclase // la clase hereda de
otra
Sólo herencia simple (una sóla superclase)
Si no aparece extends la clase definida hereda (es una
subclase) de un objeto general del sistema llamada
Object
Java Clases y objetos 7
Datos de una clase
public class Rectangulo{
int x;
int y;
int ancho;
int alto;
// faltan los métodos de Rectángulo
}
public class Rectangulo{
int x;
int y;
int ancho;
int alto;
// faltan los métodos de Rectángulo
}
Object
Rectangulo
Java Clases y objetos 8
Variables, objetos y
referencias
Una variable de un determinado tipo
simple (int, float, boolean..)proporciona
Capacidad para almacenar un valor simple
Un conjunto predifinido de operadores
Java Clases y objetos 9
Variables, objetos y
referencias
Un objeto de una determinada clase
proporciona
Capacidad para almacenar diversos valores
(atributos)
Define su propio conjunto de métodos para operar
sobre las instancias o ejemplares de esa clase
Cuando se declara un objeto de una clase se crea
una referencia a una instancia de dicha clase
Incialmente toma el valor null porque no existe objeto al
que referirse
No son punteros con los que se pueda trabajar
directamente
Java Clases y objetos 10
int num = 5;
Rectangulo rect;
num 5
rect null
Variables, objetos y
referencias
Java Clases y objetos 11
Variables, objetos y
referencias
La declaración de tipos primitivos reserva
memoria
La declaración de tipos no primitivos no
reserva memoria.
Los objetos declarados no son objetos, sino
punteros a objetos.
Antes de utilizar un objeto dentro del
programa es necesario reservar el espacio
necesario
Java Clases y objetos 12
Creación de instancias
(objetos)
Operador new
Crea una instancia o ejemplar de la
clase indicada y devuelve una
referencia a dicho objeto
Se reserva espacio de memoria
para los datos del objeto
Un ejemplar es una copia individual de
la plantilla de la clase que tiene su
propio conjunto de datos
Java Clases y objetos 13
Creación de instancias
(objetos)
Clase
Rectángulo
Rectángulo e = new Rectángulo()
e
Referencia al
objeto
Instancia de Rectángulo
Java Clases y objetos 14
x
y
ancho
alto
Creación de instancias
(objetos)
int num = 5;
// crea una referencia
Rectangulo rect;
rect = new Rectangulo();
Rectangulo otroRect;
otroRect = rect;
// otroRect se refiere al
mismo
// rectangulo que rect
int num = 5;
// crea una referencia
Rectangulo rect;
rect = new Rectangulo();
Rectangulo otroRect;
otroRect = rect;
// otroRect se refiere al
mismo
// rectangulo que rect
num 5
rect
otroRect
Java Clases y objetos 15
Asignación
int i =10;
int j =i;
Employee e = newEmployee e = newEmployee e = newEmployee e = new
Employee()Employee()Employee()Employee()
Employee x = e;Employee x = e;Employee x = e;Employee x = e;
Employee e Employee x
copia
la referencia
int i
copia
int j10 10
Por valor
Por Referencia
Java Clases y objetos 16
Objetos
Podemos instanciar varios objetos de una clase
Los métodos disponibles son los mismos
sendJunkMailTo
getName setName
Mrs. Edna Smith
12 Acacia Avenue
sendJunkMailTo
getName setName
Mr. J McDonald
14 High Street
sendJunkMailTo
getName setName
Mrs. T Hughes
27 Fern Cresent
Java Clases y objetos 17
Creación de instancias o
ejemplares
Cuando se crea un objeto, las variables miembro (atributos)
se inicializan al reservar memoria con los siguientes valores:
byte, short, int 0
long 0L
float 0.0f
double 0.0d
char 'u0000' (null)
boolean false
tipos de referencia null
Las variables locales a un método se deben inicializar. Éstas
no se inicializan automáticamente.
Java Clases y objetos 18
Acceso a los atributos de un
objeto
Desde un objeto se puede acceder a los
atributos o miembros con la siguiente sintaxis
referenciaObjeto.atributo;
Java Clases y objetos 19
Acceso a los atributos de un
objeto
public class Rectangulo {
int x;
int y;
int ancho;
int alto;
//faltan las funciones miembro
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo();
rect.x = 5;
rect.y = 7;
rect.ancho = 4;
rect.alto = 3;
System.out.println( "x = " + rect.x + ”
y = " + rect.y );
System.out.println( "ancho = " + rect.ancho
+ ” alto = " + rect.alto ); } }
public class Rectangulo {
int x;
int y;
int ancho;
int alto;
//faltan las funciones miembro
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo();
rect.x = 5;
rect.y = 7;
rect.ancho = 4;
rect.alto = 3;
System.out.println( "x = " + rect.x + ”
y = " + rect.y );
System.out.println( "ancho = " + rect.ancho
+ ” alto = " + rect.alto ); } }
Java Clases y objetos 20
Declaración de métodos
Funciones declaradas en la clase y que
determinan su comportamiento
tipoDevuelto nombreMetodo (listaParametros) {
//instrucciones del método
}
Java Clases y objetos 21
Declaración de métodos
Sintaxis
// calcula la superficie y la devuelve como un
número entero
int calcularSuperficie(){
int area;
area = ancho * alto;
return area;
}
// muestra los valores pero no devuelve nada
void mostrarValores(){
System.out.println( "x = " + x + " y = " + y );
System.out.println( "ancho = " + ancho + " alto
= " + alto );
}
// calcula la superficie y la devuelve como un
número entero
int calcularSuperficie(){
int area;
area = ancho * alto;
return area;
}
// muestra los valores pero no devuelve nada
void mostrarValores(){
System.out.println( "x = " + x + " y = " + y );
System.out.println( "ancho = " + ancho + " alto
= " + alto );
}
Java Clases y objetos 22
Llamada a los métodos
La invocación a los métodos desde una
instancia se hace mediante el operador de
acceso ( . )
referenciaObjeto.nombreMetodo(listaArgumentos);
Java Clases y objetos 23
Llamada a los métodos
public class Rectangulo {
int x; ………..
int calcularSuperficie(){ .……... }
void mostrarValores(){………….}
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo();
rect.x = 5; rect.y = 7; rect.ancho = 4;
rect.alto = 3;
int area = rect.calcularSuperficie();
rect.mostrarValores();
System.out.println( "Superficie: " + area );
System.out.println( "x = " + rect.x + ” y = " +
rect.y );
System.out.println( "ancho = " + rect.ancho + ”
alto = " + rect.alto ); }
}
public class Rectangulo {
int x; ………..
int calcularSuperficie(){ .……... }
void mostrarValores(){………….}
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo();
rect.x = 5; rect.y = 7; rect.ancho = 4;
rect.alto = 3;
int area = rect.calcularSuperficie();
rect.mostrarValores();
System.out.println( "Superficie: " + area );
System.out.println( "x = " + rect.x + ” y = " +
rect.y );
System.out.println( "ancho = " + rect.ancho + ”
alto = " + rect.alto ); }
}
Java Clases y objetos 24
Ejercicio 1
Crear clase
Rectangulo
Añadir datos, x, y,
ancho, alto de tipo
int
Añadir métodos
dameArea() e
imprime()
Instanciar un
objeto y que se
imprima
Java Clases y objetos 25
Parámetros
El lenguaje Java sólo pasa los argumentos de
tipos básicos por valor.
Cuando se pasa un objeto instanciado como
argumento a un método, el valor del
argumento es el puntero al objeto.
Los contenidos del objeto se pueden cambiar
dentro del método al que se ha llamado (los
objetos se pasan por referencia), pero el
puntero no se puede cambiar.
Java Clases y objetos 26
Ocultación de datos
cont : int
quita()cima()
esVacio()
métodos
públicos
métodos
privados
rep : int array
pon()
Java Clases y objetos 27
Ocultación de datos
La palabra reservada private permite
una accesibilidad total desde cualquier
método de la clase, pero no desde
fuera de esta.
Java Clases y objetos 28
Ocultación de datos
Como los datos son inaccesibles, la única
manera de leer o escribirlos es a través
de los métodos de la clase. Esto
proporciona consistencia y calidad.
Java Clases y objetos 29
Ocultación de datos
Regla: definir datos privados y métodos
accesores y modificadores públicos
Java Clases y objetos 30
Encapsulación
Ocultar los detalles de implementación de
la clase.
Fuerza al usuario a utilizar una interfaz
para acceder a los datos.
Hace que el código sea más fácil de
mantener.
Java Clases y objetos 31
Ejercicio 1
Datos privados
Crear métodos
accesores y
mutadores
públicos
Ancho y alto
no deben ser
negativos
Java Clases y objetos 32
Ejercicio 1
Java Clases y objetos 33
Ejercicio 1
Comprobar que desde otra clase no se ven los
datos y métodos privados
Java Clases y objetos 34
Acceso a clases
public privatepackageprotected
Al menos una clase o interface de una
unidad de compilación (package) debe ser
public
Al menos una clase o interface de una
unidad de compilación (package) debe ser
public
Java Clases y objetos 35
Sobrecarga de métodos
Se puede utilizar:
public void print(int i)
public void print(float i)
public void print(String i)
La lista de argumentos tiene que ser diferente.
El tipo que devuelve puede ser diferente.
Java Clases y objetos 36
Constructores
Método que inicializa el objeto en su creación
Se llama automáticamente cuando se crea un
objeto
Su nombre es igual que el de la clase y no tiene
tipo de retorno
Java proporciona un constructor sin parámetros
por defecto que deja de estar disponible cuando
se añade algún constructor
Java Clases y objetos 37
Constructores
public class Rectangulo{
int x;
….….…..
// constructor
public Rectangulo(int x1, int y1, int
w, int h){
x=x1;
y=y1;
ancho=w;
alto=h; }
….…..…..
public class Rectangulo{
int x;
….….…..
// constructor
public Rectangulo(int x1, int y1, int
w, int h){
x=x1;
y=y1;
ancho=w;
alto=h; }
….…..…..
Java Clases y objetos 38
Constructores
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo(5, 7, 4, 3);
int area=rect.calcularSuperficie();
rect.mostrarValores();
System.out.println( "Superficie: "
+ area );
………….
}
}
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo(5, 7, 4, 3);
int area=rect.calcularSuperficie();
rect.mostrarValores();
System.out.println( "Superficie: "
+ area );
………….
}
}
Java Clases y objetos 39
Constructores
Pueden sobrecargarse
Una clase puede tener más de un constructor
Si no se declara ninguno se hereda el de la superclase
(o el de Object)
Se puede crear un objeto con distintos tipos de
parámetros
Pueden llamar al constructor del padre
super(argumentos);
Debe ser la primera instrucción del constructor
o a otros constructores de la misma clase
this(argumentosPorDefecto);
Java Clases y objetos 40
Constructores
public class Empleado {
private String nombre;
private int salario;
public Empleado(String n, int s){
nombre = n;
salario = s; }
public Empleado(String n){
this (n,0); }
public Empleado( ){
this ("Desconocido"); }
}
Java Clases y objetos 41
Referencia a objeto this
Referencia especial que utilizada dentro
de un método de cualquier clase se
refiere a la instancia actual
Permite parámetros con igual nombre que
atributos
Posibilita la llamada a otros constructores
Java Clases y objetos 42
Referencia a objeto this
class Rectangulo{
int x;
….….…..
int ancho;
int alto;
// constructor
Rectangulo(int x1, int y1, int w, int h){
x=x1; y=y1; ancho=w; alto=h; }
// otro constructor polimorfico
Rectangulo(int ancho, int alto){
x=0; y=0;
this.ancho= ancho;
this.alto= alto; }
….…..…..
class Rectangulo{
int x;
….….…..
int ancho;
int alto;
// constructor
Rectangulo(int x1, int y1, int w, int h){
x=x1; y=y1; ancho=w; alto=h; }
// otro constructor polimorfico
Rectangulo(int ancho, int alto){
x=0; y=0;
this.ancho= ancho;
this.alto= alto; }
….…..…..
Java Clases y objetos 43
Referencia a objeto this
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo(5, 7, 4, 3);
rect.imprime();
Rectangulo nuevo;
nuevo = new Rectangulo(6, 9);
nuevo.imprime();
………….
}
}
public static void main(String args[ ]) {
Rectangulo rect;
rect = new Rectangulo(5, 7, 4, 3);
rect.imprime();
Rectangulo nuevo;
nuevo = new Rectangulo(6, 9);
nuevo.imprime();
………….
}
}
Java Clases y objetos 44
Ejercicio 1
Crear varios
constructores
Instanciar un
rectángulo
usando un
constructor no
por defecto
Java Clases y objetos 45
El constructor por defecto
Existe para cualquier clase
Permite crear una instancia de un objeto
con el método
new Xxx().
La definición de un constructor invalida al
constructor por defecto.
Java Clases y objetos 46
Ejercicio 1
Java Clases y objetos 47
La palabra clase final
Si se aplica esta palabra a una
clase, esa clase no puede
tener subclases.
Por ejemplo, la clase
java.lang.String, es una
clase final.
Java Clases y objetos 48
La palabra clase final
Los métodos marcados con esta
palabra no se pueden
sobreescribir.
Los métodos marcados como estáticos
o privados son finales
automáticamente.
Si una variable se marca con la
palabra reservada final, se
convierte en una constante. Si se
intenta cambiar el valor de
cualquier variable final,se
produce un error.
Java Clases y objetos 49
Variables (static) de la clase
Pertenece a todas las instancias de la
clase.
Puede estar como pública o como
privada.
Si está marcada como pública, se puede
acceder desde fuera de la clase, sin
necesidad de una instancia de la clase.
Java Clases y objetos 50
Variables (static) de la clase
public class Count {
private int serialNumber;
private static int counter = 0;
public Count () {
counter++;
serialNumber = counter;
}
}
Se le suele llamar variable clase.
Java Clases y objetos 51
Variables (static) de la clase
Desde fuera de la clase se puede acceder
a una variable static si no se marca
como private (que es lo habitual).
Las variables de tipo static son, en
algunos aspectos, parecidas a las
variables globales de algunos lenguajes.
Las instancias de la clase comparten la
variable static
Java Clases y objetos 52
Métodos (static) de la clase
Un método static se puede llamar sin
necesidad de una instancia de la clase a
la que pertenecen.
Con los métodos estáticos no se puede
utilizar el puntero this, ya que no se
necesitan instancias.
Java Clases y objetos 53
Métodos (static) de la clase
public class GeneralFunction {
public static int add(int x, int y) {
return x + y; }
}
public class UseGeneral {
public void método () {
int a = 9;
int b = 10;
int c = GeneralFunction.add(a, b);
System.out.println ("add devuelve: "
+ c"; }
}
Java Clases y objetos 54
Métodos (static) de la clase
Los métodos estáticos, sólo pueden acceder a
sus propios argumentos y a las variables
estáticas.
El método main() es estático, porque la
aplicación tiene que acceder a él para
ejecutarse, antes de que realice cualquier
instancia.
Los métodos estáticos no se pueden
sobreescribir
Java Clases y objetos 55
Ejercicio 1
Añadir entero estático para llevar un
contador de Rectángulos instanciados
Java Clases y objetos 56
Javadoc
Javadoc.exe, incluido en el JDK, genera
documentos html con la documentación de
una clase.
Podemos describir datos y métodos: /** ...*/
La documentación de los packages de clases e
interfaces estándar están hechas con javadoc,
se pueden descargar de internet o verlas
directamente en internet con un navegador
http://download.oracle.com/javase/7/
docs/api/
Java Clases y objetos 57
Ejercicio Javadoc
Comentar los métodos públicos /**...*/
Java Clases y objetos 58
Ejercicio Javadoc
Generar la documentación de la clase
Rectángulo con javadoc
Java Clases y objetos 59
Ejercicio Javadoc
Se debe indicar dónde se encuentra javadoc.exe
del JDK y la visibilidad de lo que se quiere
documentar
Java Clases y objetos 60
Ejercicio Javadoc
Abrir Rectangulo.html generado en un
navegador (como internet explorer)
Java Clases y objetos 61
Ficheros .jar
Los Ficheros con extensión .jar son ficheros
comprimidos (se abren con winzip, winrar..)
de bytecode de clases (ficheros .class).
Se pueden añadir a nuestros proyectos para
utilizar las clases.
Existen millones de .jars en internet, que se
pueden utilizar y ejecutar.
Si alguna clase tiene método main, el .jar se
puede crear como ejecutable.
Para ejecutarlo, se necesita el JRE (incluido en el
JDK)
Java Clases y objetos 62
Ejercicio .jar
Crear un .jar ejecutable de la clase
Rectangulo
Java Clases y objetos 63
Ejercicio .jar
Determinar clases y destino del .jar
Java Clases y objetos 64
Ejercicio .jar
Determinar clase ejecutable como
aplicación (debe tener método main)
Java Clases y objetos 65
Ejecutar .jar
Si el ejecutable del .jar es de clases gráficas, se
abre con doble click
Si es de consola, se ejecuta con la opción –jar
del intérprete java
El .jar tambien se puede añadir a un proyecto
como jar externo y utilizarlo para , instanciar
objetos, añadirlos como dato, heredar, etc.
Java Clases y objetos 66
Deprecation
El término "deprecation" se utiliza para indicar que
métodos y constructores de clases están obsoletos.
Tanto métodos como constructores obsoletos son
reemplazados por métodos, que sigue una
conversión de nombres estandarizada.
Al migrar código entre diferentes versiones de JDK,
debemos compilarlo con el flag -deprecation:
javac -deprecation MiFichero.java
Java Clases y objetos 67
La máquina virtual de Java
STATIC ( variables de
clase)
Monticulo (HEAP)
(instance variables)
Pila (STACK) (local
variables)
Java Exam Question
Exam
Instance
Question
Instance
main()
e
q
setAnswer()
aQuestion
Java Clases y objetos 68
La memoria reservada que no se va a
utilizar más, se tiene que liberar.
En otros lenguajes (como C++, PASCAL), la
liberación de memoria es responsabilidad del
programador.
El lenguaje Java proporciona un thread, que
rastrea las operaciones de reserva de
memoria.
El Garbage Collector:
Verifica y libera memoria que no se
necesita.
Se ejecuta automáticamente.
El recolector de basuras
Java Clases y objetos 69
Recolección automática de
memoria
rect
otroRect
Rectangulo rect = new Rectangulo();
Rectangulo otroRect =new Rectangulo();
// se pierde la referencia al primer rectángulo
otroRect = rect;
// este primer rectángulo pasa a ser candidato a recolección automática
Rectangulo rect = new Rectangulo();
Rectangulo otroRect =new Rectangulo();
// se pierde la referencia al primer rectángulo
otroRect = rect;
// este primer rectángulo pasa a ser candidato a recolección automática
alto
x
y
ancho
alto
x
y
ancho
rect
otroRect
alto
x
y
ancho
alto
x
y
ancho
Memoria que será recuperada
por el recolector automático
Java Clases y objetos 70
Métodos finalizadores
Java tiene recolector de basura
Un objeto se elimina cuando se deja de hacer
referencia a él
No hay que eliminar los objetos explícitamente
Al destruir un objeto se invoca el método
finalize
Para hacer limpieza de recursos no Java (recursos
externos)
Por ejemplo: cerrar conexiones, cerrar ficheros,
registrar algún tipo de resultado, etc.
Al acabar un programa, se ejecuta finalize para
todos los objetos
Java Clases y objetos 71
protected void finalize() throws
Throwable {
super.finalize();
// conviene ponerlo siempre
if ( archivo != null )
// si el archivo no se ha cerrado
{ archivo.close(); archivo = null; }
}
protected void finalize() throws
Throwable {
super.finalize();
// conviene ponerlo siempre
if ( archivo != null )
// si el archivo no se ha cerrado
{ archivo.close(); archivo = null; }
}
Métodos finalizadores
Java Clases y objetos 72
Ejercicio 2: clase Fracción
Define la clase Fracción para tratar con números racionales de la forma a/b,
donde a y b son enteros, b ≠0.
La fracción debe mantenerse siempre en forma reducida
Además del constructor, la clase debe incluir los siguientes métodospúblicos:
a. void imprimeFraccion(), que imprime un número racional en su forma
fraccionaria a/b
b. double toReal(), que calcula el número real representado por la fracción
c. void suma(Fraccion s), que calcula la suma de dos racionales y deja el
resultado en la fracción que recibe el mensaje
e. boolean equals(Fraccion s), que averigua si dos fracciones son iguales
f. boolean menor(Fraccion s), que averigua si s es menor que la fracción que
recibe el mensaje.
c. void suma(Fraccion s), que calcula la suma de dos racionales y deja el
resultado en la fracción que recibe el mensaje
Java Clases y objetos 73
Ejercicio 2: simplificar Fracción
Java Clases y objetos 74
Ejercicio 2: constructores Fracción
Java Clases y objetos 75
Ejercicio:
operaciones
con
Fracción
Java Clases y objetos 76
Ejercicio 3: Datos no básicos
Define la clase Punto para manejar puntos con coordenadas
enteras. Define constructoras para esta clase, y métodos de acceso y
mutación.
Define la clase Rect para manejar rectángulos. Un rectángulo
viene dado por las coordenadas enteras de los vértices superior
izquierdo e inferior derecho.
Define las siguientes constructoras y métodos para esta clase:
a. Constructora que recibe como parámetros las coordenadas de los
dosvértices que delimitan el rectángulo
b. Constructora que recibe el ancho y el alto del rectángulo, y construye
un rectángulo con el vértice superior izquierdo en el punto (0, 0)
c. void mueve(int deltaX, int deltaY), que mueve un rectángulo una
distancia deltaX horizontalmente y otra distancia deltaY verticalmente
d. boolean estaDentro(Punto p), que averigua si p está dentro del
rectángulo que recibe el mensaje
Java Clases y objetos 77
Ejercicio 3: clase Punto
Java Clases y objetos 78
Ejercicio 3:
clase Rect

Más contenido relacionado

La actualidad más candente

Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)sarai0000
 
Java Programs Lab File
Java Programs Lab FileJava Programs Lab File
Java Programs Lab FileKandarp Tiwari
 
Type casting in java
Type casting in javaType casting in java
Type casting in javaFarooq Baloch
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura1da4
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsMuhammadTalha436
 
Inheritance in OOPs with java
Inheritance in OOPs with javaInheritance in OOPs with java
Inheritance in OOPs with javaAAKANKSHA JAIN
 
Class and Objects in Java
Class and Objects in JavaClass and Objects in Java
Class and Objects in JavaSpotle.ai
 
Java Code for Sample Projects Inheritance
Java Code for Sample Projects InheritanceJava Code for Sample Projects Inheritance
Java Code for Sample Projects Inheritancejwjablonski
 
Lambda Expressions in Java
Lambda Expressions in JavaLambda Expressions in Java
Lambda Expressions in JavaErhan Bagdemir
 

La actualidad más candente (20)

C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 
Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)
 
Java Programs Lab File
Java Programs Lab FileJava Programs Lab File
Java Programs Lab File
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Type casting in java
Type casting in javaType casting in java
Type casting in java
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
Java arrays
Java arraysJava arrays
Java arrays
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Java 8 Lambda and Streams
Java 8 Lambda and StreamsJava 8 Lambda and Streams
Java 8 Lambda and Streams
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ Exams
 
Inheritance in OOPs with java
Inheritance in OOPs with javaInheritance in OOPs with java
Inheritance in OOPs with java
 
Class and Objects in Java
Class and Objects in JavaClass and Objects in Java
Class and Objects in Java
 
Java Code for Sample Projects Inheritance
Java Code for Sample Projects InheritanceJava Code for Sample Projects Inheritance
Java Code for Sample Projects Inheritance
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Lambda Expressions in Java
Lambda Expressions in JavaLambda Expressions in Java
Lambda Expressions in Java
 

Similar a Java clases objetos

Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Javasantosisidrorivera
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfChiquteRobledo
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxdocmarcoantoniosotov
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logicaanych27
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazRobert Wolf
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppterosslo
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...David Zapateria Besteiro
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxFamiliaAyluardo
 

Similar a Java clases objetos (20)

Java
JavaJava
Java
 
Introducción a la Programaciónen Java
Introducción a la Programaciónen JavaIntroducción a la Programaciónen Java
Introducción a la Programaciónen Java
 
C2 clases en java
C2 clases en javaC2 clases en java
C2 clases en java
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
UD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdfUD2-ConceptosBasicos.pdf
UD2-ConceptosBasicos.pdf
 
P4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptxP4 Programacion orientada a objetos con Java.pptx
P4 Programacion orientada a objetos con Java.pptx
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logica
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
Leccion 5 Java
Leccion 5 JavaLeccion 5 Java
Leccion 5 Java
 
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Tema2
Tema2Tema2
Tema2
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 

Más de BelenMonse

Tema 8 polimorfismo
Tema 8 polimorfismoTema 8 polimorfismo
Tema 8 polimorfismoBelenMonse
 
Programa analítico prog ii 17 17
Programa analítico prog ii 17 17Programa analítico prog ii 17 17
Programa analítico prog ii 17 17BelenMonse
 
Sílabo prog ii sistemas 17 17
Sílabo prog ii sistemas 17 17Sílabo prog ii sistemas 17 17
Sílabo prog ii sistemas 17 17BelenMonse
 
Historia del Internet
Historia del InternetHistoria del Internet
Historia del InternetBelenMonse
 
Plan de negocios
Plan de negociosPlan de negocios
Plan de negociosBelenMonse
 
Plan de negocios para hostingnet
Plan de negocios para hostingnetPlan de negocios para hostingnet
Plan de negocios para hostingnetBelenMonse
 
Plan de negocios para empresa de trabajo de campo, en la
Plan de negocios para empresa de trabajo de campo, en laPlan de negocios para empresa de trabajo de campo, en la
Plan de negocios para empresa de trabajo de campo, en laBelenMonse
 
Plan de negocios asdsdf
Plan de negocios asdsdfPlan de negocios asdsdf
Plan de negocios asdsdfBelenMonse
 
El modelo de negocios
El modelo de negociosEl modelo de negocios
El modelo de negociosBelenMonse
 
Planninf of Network
Planninf of NetworkPlanninf of Network
Planninf of NetworkBelenMonse
 

Más de BelenMonse (10)

Tema 8 polimorfismo
Tema 8 polimorfismoTema 8 polimorfismo
Tema 8 polimorfismo
 
Programa analítico prog ii 17 17
Programa analítico prog ii 17 17Programa analítico prog ii 17 17
Programa analítico prog ii 17 17
 
Sílabo prog ii sistemas 17 17
Sílabo prog ii sistemas 17 17Sílabo prog ii sistemas 17 17
Sílabo prog ii sistemas 17 17
 
Historia del Internet
Historia del InternetHistoria del Internet
Historia del Internet
 
Plan de negocios
Plan de negociosPlan de negocios
Plan de negocios
 
Plan de negocios para hostingnet
Plan de negocios para hostingnetPlan de negocios para hostingnet
Plan de negocios para hostingnet
 
Plan de negocios para empresa de trabajo de campo, en la
Plan de negocios para empresa de trabajo de campo, en laPlan de negocios para empresa de trabajo de campo, en la
Plan de negocios para empresa de trabajo de campo, en la
 
Plan de negocios asdsdf
Plan de negocios asdsdfPlan de negocios asdsdf
Plan de negocios asdsdf
 
El modelo de negocios
El modelo de negociosEl modelo de negocios
El modelo de negocios
 
Planninf of Network
Planninf of NetworkPlanninf of Network
Planninf of Network
 

Último

Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxPaolaVillalba13
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 

Último (20)

Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptx
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 

Java clases objetos

  • 1. Java Clases y objetos 1 Java: Clases y Objetos Java Clases y objetos 2 Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una “plantilla” que describe un conjunto de objetos con atributos y comportamiento similares Un programa Java en ejecución crea y manipula (mediante llamadas a métodos) objetos concretosobjetos concretos (ejemplares o instancias)
  • 2. Java Clases y objetos 3 Clases Cada objeto es un ejemplar de una clase Cuando se invoca un método de un objeto, se mira en el código de su clase las acciones a ejecutar Un objeto puede usar otros para realizar su trabajo Java Clases y objetos 4 Clases Una definición de clase comprende: Cabecera Campos o atributos: Variables Constantes Métodos: Funciones Constructores Bloques de inicialización static Finalizador estado del objeto comportamiento
  • 3. Java Clases y objetos 5 Definición de una clase [Modificadores] class NombreClase [extends SuperClase] { // definición de los atributos de la clase tipo1 identificador1; tipo2 identificador2; ……….……………. // definición de los métodos de la clase tipoDevuelto nombreMetodo1 (listaParametros) { //instrucciones del método1 } tipoDevuelto nombreMetodo2 (listaParametros) { //instrucciones del método2 } ……….……………. } [Modificadores] class NombreClase [extends SuperClase] { // definición de los atributos de la clase tipo1 identificador1; tipo2 identificador2; ……….……………. // definición de los métodos de la clase tipoDevuelto nombreMetodo1 (listaParametros) { //instrucciones del método1 } tipoDevuelto nombreMetodo2 (listaParametros) { //instrucciones del método2 } ……….……………. } Java Clases y objetos 6 Modificadores de clase Modificadores: public class NombreClase // visible fuera del paquete Normalmente la clase se almacena en un fichero NombreClase.java En un fichero .java puede haber como mucho una clase public class C extends superclase // la clase hereda de otra Sólo herencia simple (una sóla superclase) Si no aparece extends la clase definida hereda (es una subclase) de un objeto general del sistema llamada Object
  • 4. Java Clases y objetos 7 Datos de una clase public class Rectangulo{ int x; int y; int ancho; int alto; // faltan los métodos de Rectángulo } public class Rectangulo{ int x; int y; int ancho; int alto; // faltan los métodos de Rectángulo } Object Rectangulo Java Clases y objetos 8 Variables, objetos y referencias Una variable de un determinado tipo simple (int, float, boolean..)proporciona Capacidad para almacenar un valor simple Un conjunto predifinido de operadores
  • 5. Java Clases y objetos 9 Variables, objetos y referencias Un objeto de una determinada clase proporciona Capacidad para almacenar diversos valores (atributos) Define su propio conjunto de métodos para operar sobre las instancias o ejemplares de esa clase Cuando se declara un objeto de una clase se crea una referencia a una instancia de dicha clase Incialmente toma el valor null porque no existe objeto al que referirse No son punteros con los que se pueda trabajar directamente Java Clases y objetos 10 int num = 5; Rectangulo rect; num 5 rect null Variables, objetos y referencias
  • 6. Java Clases y objetos 11 Variables, objetos y referencias La declaración de tipos primitivos reserva memoria La declaración de tipos no primitivos no reserva memoria. Los objetos declarados no son objetos, sino punteros a objetos. Antes de utilizar un objeto dentro del programa es necesario reservar el espacio necesario Java Clases y objetos 12 Creación de instancias (objetos) Operador new Crea una instancia o ejemplar de la clase indicada y devuelve una referencia a dicho objeto Se reserva espacio de memoria para los datos del objeto Un ejemplar es una copia individual de la plantilla de la clase que tiene su propio conjunto de datos
  • 7. Java Clases y objetos 13 Creación de instancias (objetos) Clase Rectángulo Rectángulo e = new Rectángulo() e Referencia al objeto Instancia de Rectángulo Java Clases y objetos 14 x y ancho alto Creación de instancias (objetos) int num = 5; // crea una referencia Rectangulo rect; rect = new Rectangulo(); Rectangulo otroRect; otroRect = rect; // otroRect se refiere al mismo // rectangulo que rect int num = 5; // crea una referencia Rectangulo rect; rect = new Rectangulo(); Rectangulo otroRect; otroRect = rect; // otroRect se refiere al mismo // rectangulo que rect num 5 rect otroRect
  • 8. Java Clases y objetos 15 Asignación int i =10; int j =i; Employee e = newEmployee e = newEmployee e = newEmployee e = new Employee()Employee()Employee()Employee() Employee x = e;Employee x = e;Employee x = e;Employee x = e; Employee e Employee x copia la referencia int i copia int j10 10 Por valor Por Referencia Java Clases y objetos 16 Objetos Podemos instanciar varios objetos de una clase Los métodos disponibles son los mismos sendJunkMailTo getName setName Mrs. Edna Smith 12 Acacia Avenue sendJunkMailTo getName setName Mr. J McDonald 14 High Street sendJunkMailTo getName setName Mrs. T Hughes 27 Fern Cresent
  • 9. Java Clases y objetos 17 Creación de instancias o ejemplares Cuando se crea un objeto, las variables miembro (atributos) se inicializan al reservar memoria con los siguientes valores: byte, short, int 0 long 0L float 0.0f double 0.0d char 'u0000' (null) boolean false tipos de referencia null Las variables locales a un método se deben inicializar. Éstas no se inicializan automáticamente. Java Clases y objetos 18 Acceso a los atributos de un objeto Desde un objeto se puede acceder a los atributos o miembros con la siguiente sintaxis referenciaObjeto.atributo;
  • 10. Java Clases y objetos 19 Acceso a los atributos de un objeto public class Rectangulo { int x; int y; int ancho; int alto; //faltan las funciones miembro public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; System.out.println( "x = " + rect.x + ” y = " + rect.y ); System.out.println( "ancho = " + rect.ancho + ” alto = " + rect.alto ); } } public class Rectangulo { int x; int y; int ancho; int alto; //faltan las funciones miembro public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; System.out.println( "x = " + rect.x + ” y = " + rect.y ); System.out.println( "ancho = " + rect.ancho + ” alto = " + rect.alto ); } } Java Clases y objetos 20 Declaración de métodos Funciones declaradas en la clase y que determinan su comportamiento tipoDevuelto nombreMetodo (listaParametros) { //instrucciones del método }
  • 11. Java Clases y objetos 21 Declaración de métodos Sintaxis // calcula la superficie y la devuelve como un número entero int calcularSuperficie(){ int area; area = ancho * alto; return area; } // muestra los valores pero no devuelve nada void mostrarValores(){ System.out.println( "x = " + x + " y = " + y ); System.out.println( "ancho = " + ancho + " alto = " + alto ); } // calcula la superficie y la devuelve como un número entero int calcularSuperficie(){ int area; area = ancho * alto; return area; } // muestra los valores pero no devuelve nada void mostrarValores(){ System.out.println( "x = " + x + " y = " + y ); System.out.println( "ancho = " + ancho + " alto = " + alto ); } Java Clases y objetos 22 Llamada a los métodos La invocación a los métodos desde una instancia se hace mediante el operador de acceso ( . ) referenciaObjeto.nombreMetodo(listaArgumentos);
  • 12. Java Clases y objetos 23 Llamada a los métodos public class Rectangulo { int x; ……….. int calcularSuperficie(){ .……... } void mostrarValores(){………….} public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; int area = rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); System.out.println( "x = " + rect.x + ” y = " + rect.y ); System.out.println( "ancho = " + rect.ancho + ” alto = " + rect.alto ); } } public class Rectangulo { int x; ……….. int calcularSuperficie(){ .……... } void mostrarValores(){………….} public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; int area = rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); System.out.println( "x = " + rect.x + ” y = " + rect.y ); System.out.println( "ancho = " + rect.ancho + ” alto = " + rect.alto ); } } Java Clases y objetos 24 Ejercicio 1 Crear clase Rectangulo Añadir datos, x, y, ancho, alto de tipo int Añadir métodos dameArea() e imprime() Instanciar un objeto y que se imprima
  • 13. Java Clases y objetos 25 Parámetros El lenguaje Java sólo pasa los argumentos de tipos básicos por valor. Cuando se pasa un objeto instanciado como argumento a un método, el valor del argumento es el puntero al objeto. Los contenidos del objeto se pueden cambiar dentro del método al que se ha llamado (los objetos se pasan por referencia), pero el puntero no se puede cambiar. Java Clases y objetos 26 Ocultación de datos cont : int quita()cima() esVacio() métodos públicos métodos privados rep : int array pon()
  • 14. Java Clases y objetos 27 Ocultación de datos La palabra reservada private permite una accesibilidad total desde cualquier método de la clase, pero no desde fuera de esta. Java Clases y objetos 28 Ocultación de datos Como los datos son inaccesibles, la única manera de leer o escribirlos es a través de los métodos de la clase. Esto proporciona consistencia y calidad.
  • 15. Java Clases y objetos 29 Ocultación de datos Regla: definir datos privados y métodos accesores y modificadores públicos Java Clases y objetos 30 Encapsulación Ocultar los detalles de implementación de la clase. Fuerza al usuario a utilizar una interfaz para acceder a los datos. Hace que el código sea más fácil de mantener.
  • 16. Java Clases y objetos 31 Ejercicio 1 Datos privados Crear métodos accesores y mutadores públicos Ancho y alto no deben ser negativos Java Clases y objetos 32 Ejercicio 1
  • 17. Java Clases y objetos 33 Ejercicio 1 Comprobar que desde otra clase no se ven los datos y métodos privados Java Clases y objetos 34 Acceso a clases public privatepackageprotected Al menos una clase o interface de una unidad de compilación (package) debe ser public Al menos una clase o interface de una unidad de compilación (package) debe ser public
  • 18. Java Clases y objetos 35 Sobrecarga de métodos Se puede utilizar: public void print(int i) public void print(float i) public void print(String i) La lista de argumentos tiene que ser diferente. El tipo que devuelve puede ser diferente. Java Clases y objetos 36 Constructores Método que inicializa el objeto en su creación Se llama automáticamente cuando se crea un objeto Su nombre es igual que el de la clase y no tiene tipo de retorno Java proporciona un constructor sin parámetros por defecto que deja de estar disponible cuando se añade algún constructor
  • 19. Java Clases y objetos 37 Constructores public class Rectangulo{ int x; ….….….. // constructor public Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; } ….…..….. public class Rectangulo{ int x; ….….….. // constructor public Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; } ….…..….. Java Clases y objetos 38 Constructores public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(5, 7, 4, 3); int area=rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); …………. } } public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(5, 7, 4, 3); int area=rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); …………. } }
  • 20. Java Clases y objetos 39 Constructores Pueden sobrecargarse Una clase puede tener más de un constructor Si no se declara ninguno se hereda el de la superclase (o el de Object) Se puede crear un objeto con distintos tipos de parámetros Pueden llamar al constructor del padre super(argumentos); Debe ser la primera instrucción del constructor o a otros constructores de la misma clase this(argumentosPorDefecto); Java Clases y objetos 40 Constructores public class Empleado { private String nombre; private int salario; public Empleado(String n, int s){ nombre = n; salario = s; } public Empleado(String n){ this (n,0); } public Empleado( ){ this ("Desconocido"); } }
  • 21. Java Clases y objetos 41 Referencia a objeto this Referencia especial que utilizada dentro de un método de cualquier clase se refiere a la instancia actual Permite parámetros con igual nombre que atributos Posibilita la llamada a otros constructores Java Clases y objetos 42 Referencia a objeto this class Rectangulo{ int x; ….….….. int ancho; int alto; // constructor Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; } // otro constructor polimorfico Rectangulo(int ancho, int alto){ x=0; y=0; this.ancho= ancho; this.alto= alto; } ….…..….. class Rectangulo{ int x; ….….….. int ancho; int alto; // constructor Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; } // otro constructor polimorfico Rectangulo(int ancho, int alto){ x=0; y=0; this.ancho= ancho; this.alto= alto; } ….…..…..
  • 22. Java Clases y objetos 43 Referencia a objeto this public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(5, 7, 4, 3); rect.imprime(); Rectangulo nuevo; nuevo = new Rectangulo(6, 9); nuevo.imprime(); …………. } } public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(5, 7, 4, 3); rect.imprime(); Rectangulo nuevo; nuevo = new Rectangulo(6, 9); nuevo.imprime(); …………. } } Java Clases y objetos 44 Ejercicio 1 Crear varios constructores Instanciar un rectángulo usando un constructor no por defecto
  • 23. Java Clases y objetos 45 El constructor por defecto Existe para cualquier clase Permite crear una instancia de un objeto con el método new Xxx(). La definición de un constructor invalida al constructor por defecto. Java Clases y objetos 46 Ejercicio 1
  • 24. Java Clases y objetos 47 La palabra clase final Si se aplica esta palabra a una clase, esa clase no puede tener subclases. Por ejemplo, la clase java.lang.String, es una clase final. Java Clases y objetos 48 La palabra clase final Los métodos marcados con esta palabra no se pueden sobreescribir. Los métodos marcados como estáticos o privados son finales automáticamente. Si una variable se marca con la palabra reservada final, se convierte en una constante. Si se intenta cambiar el valor de cualquier variable final,se produce un error.
  • 25. Java Clases y objetos 49 Variables (static) de la clase Pertenece a todas las instancias de la clase. Puede estar como pública o como privada. Si está marcada como pública, se puede acceder desde fuera de la clase, sin necesidad de una instancia de la clase. Java Clases y objetos 50 Variables (static) de la clase public class Count { private int serialNumber; private static int counter = 0; public Count () { counter++; serialNumber = counter; } } Se le suele llamar variable clase.
  • 26. Java Clases y objetos 51 Variables (static) de la clase Desde fuera de la clase se puede acceder a una variable static si no se marca como private (que es lo habitual). Las variables de tipo static son, en algunos aspectos, parecidas a las variables globales de algunos lenguajes. Las instancias de la clase comparten la variable static Java Clases y objetos 52 Métodos (static) de la clase Un método static se puede llamar sin necesidad de una instancia de la clase a la que pertenecen. Con los métodos estáticos no se puede utilizar el puntero this, ya que no se necesitan instancias.
  • 27. Java Clases y objetos 53 Métodos (static) de la clase public class GeneralFunction { public static int add(int x, int y) { return x + y; } } public class UseGeneral { public void método () { int a = 9; int b = 10; int c = GeneralFunction.add(a, b); System.out.println ("add devuelve: " + c"; } } Java Clases y objetos 54 Métodos (static) de la clase Los métodos estáticos, sólo pueden acceder a sus propios argumentos y a las variables estáticas. El método main() es estático, porque la aplicación tiene que acceder a él para ejecutarse, antes de que realice cualquier instancia. Los métodos estáticos no se pueden sobreescribir
  • 28. Java Clases y objetos 55 Ejercicio 1 Añadir entero estático para llevar un contador de Rectángulos instanciados Java Clases y objetos 56 Javadoc Javadoc.exe, incluido en el JDK, genera documentos html con la documentación de una clase. Podemos describir datos y métodos: /** ...*/ La documentación de los packages de clases e interfaces estándar están hechas con javadoc, se pueden descargar de internet o verlas directamente en internet con un navegador http://download.oracle.com/javase/7/ docs/api/
  • 29. Java Clases y objetos 57 Ejercicio Javadoc Comentar los métodos públicos /**...*/ Java Clases y objetos 58 Ejercicio Javadoc Generar la documentación de la clase Rectángulo con javadoc
  • 30. Java Clases y objetos 59 Ejercicio Javadoc Se debe indicar dónde se encuentra javadoc.exe del JDK y la visibilidad de lo que se quiere documentar Java Clases y objetos 60 Ejercicio Javadoc Abrir Rectangulo.html generado en un navegador (como internet explorer)
  • 31. Java Clases y objetos 61 Ficheros .jar Los Ficheros con extensión .jar son ficheros comprimidos (se abren con winzip, winrar..) de bytecode de clases (ficheros .class). Se pueden añadir a nuestros proyectos para utilizar las clases. Existen millones de .jars en internet, que se pueden utilizar y ejecutar. Si alguna clase tiene método main, el .jar se puede crear como ejecutable. Para ejecutarlo, se necesita el JRE (incluido en el JDK) Java Clases y objetos 62 Ejercicio .jar Crear un .jar ejecutable de la clase Rectangulo
  • 32. Java Clases y objetos 63 Ejercicio .jar Determinar clases y destino del .jar Java Clases y objetos 64 Ejercicio .jar Determinar clase ejecutable como aplicación (debe tener método main)
  • 33. Java Clases y objetos 65 Ejecutar .jar Si el ejecutable del .jar es de clases gráficas, se abre con doble click Si es de consola, se ejecuta con la opción –jar del intérprete java El .jar tambien se puede añadir a un proyecto como jar externo y utilizarlo para , instanciar objetos, añadirlos como dato, heredar, etc. Java Clases y objetos 66 Deprecation El término "deprecation" se utiliza para indicar que métodos y constructores de clases están obsoletos. Tanto métodos como constructores obsoletos son reemplazados por métodos, que sigue una conversión de nombres estandarizada. Al migrar código entre diferentes versiones de JDK, debemos compilarlo con el flag -deprecation: javac -deprecation MiFichero.java
  • 34. Java Clases y objetos 67 La máquina virtual de Java STATIC ( variables de clase) Monticulo (HEAP) (instance variables) Pila (STACK) (local variables) Java Exam Question Exam Instance Question Instance main() e q setAnswer() aQuestion Java Clases y objetos 68 La memoria reservada que no se va a utilizar más, se tiene que liberar. En otros lenguajes (como C++, PASCAL), la liberación de memoria es responsabilidad del programador. El lenguaje Java proporciona un thread, que rastrea las operaciones de reserva de memoria. El Garbage Collector: Verifica y libera memoria que no se necesita. Se ejecuta automáticamente. El recolector de basuras
  • 35. Java Clases y objetos 69 Recolección automática de memoria rect otroRect Rectangulo rect = new Rectangulo(); Rectangulo otroRect =new Rectangulo(); // se pierde la referencia al primer rectángulo otroRect = rect; // este primer rectángulo pasa a ser candidato a recolección automática Rectangulo rect = new Rectangulo(); Rectangulo otroRect =new Rectangulo(); // se pierde la referencia al primer rectángulo otroRect = rect; // este primer rectángulo pasa a ser candidato a recolección automática alto x y ancho alto x y ancho rect otroRect alto x y ancho alto x y ancho Memoria que será recuperada por el recolector automático Java Clases y objetos 70 Métodos finalizadores Java tiene recolector de basura Un objeto se elimina cuando se deja de hacer referencia a él No hay que eliminar los objetos explícitamente Al destruir un objeto se invoca el método finalize Para hacer limpieza de recursos no Java (recursos externos) Por ejemplo: cerrar conexiones, cerrar ficheros, registrar algún tipo de resultado, etc. Al acabar un programa, se ejecuta finalize para todos los objetos
  • 36. Java Clases y objetos 71 protected void finalize() throws Throwable { super.finalize(); // conviene ponerlo siempre if ( archivo != null ) // si el archivo no se ha cerrado { archivo.close(); archivo = null; } } protected void finalize() throws Throwable { super.finalize(); // conviene ponerlo siempre if ( archivo != null ) // si el archivo no se ha cerrado { archivo.close(); archivo = null; } } Métodos finalizadores Java Clases y objetos 72 Ejercicio 2: clase Fracción Define la clase Fracción para tratar con números racionales de la forma a/b, donde a y b son enteros, b ≠0. La fracción debe mantenerse siempre en forma reducida Además del constructor, la clase debe incluir los siguientes métodospúblicos: a. void imprimeFraccion(), que imprime un número racional en su forma fraccionaria a/b b. double toReal(), que calcula el número real representado por la fracción c. void suma(Fraccion s), que calcula la suma de dos racionales y deja el resultado en la fracción que recibe el mensaje e. boolean equals(Fraccion s), que averigua si dos fracciones son iguales f. boolean menor(Fraccion s), que averigua si s es menor que la fracción que recibe el mensaje. c. void suma(Fraccion s), que calcula la suma de dos racionales y deja el resultado en la fracción que recibe el mensaje
  • 37. Java Clases y objetos 73 Ejercicio 2: simplificar Fracción Java Clases y objetos 74 Ejercicio 2: constructores Fracción
  • 38. Java Clases y objetos 75 Ejercicio: operaciones con Fracción Java Clases y objetos 76 Ejercicio 3: Datos no básicos Define la clase Punto para manejar puntos con coordenadas enteras. Define constructoras para esta clase, y métodos de acceso y mutación. Define la clase Rect para manejar rectángulos. Un rectángulo viene dado por las coordenadas enteras de los vértices superior izquierdo e inferior derecho. Define las siguientes constructoras y métodos para esta clase: a. Constructora que recibe como parámetros las coordenadas de los dosvértices que delimitan el rectángulo b. Constructora que recibe el ancho y el alto del rectángulo, y construye un rectángulo con el vértice superior izquierdo en el punto (0, 0) c. void mueve(int deltaX, int deltaY), que mueve un rectángulo una distancia deltaX horizontalmente y otra distancia deltaY verticalmente d. boolean estaDentro(Punto p), que averigua si p está dentro del rectángulo que recibe el mensaje
  • 39. Java Clases y objetos 77 Ejercicio 3: clase Punto Java Clases y objetos 78 Ejercicio 3: clase Rect