SlideShare una empresa de Scribd logo
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

Palabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en javaPalabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en java
jose manuel plata cabello
 
8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse
Clara Patricia Avella Ibañez
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
Network Sens
 
Tipos de datos Java
Tipos de datos JavaTipos de datos Java
Tipos de datos Java
Ricardo Daniel
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
Clara Patricia Avella Ibañez
 
Java
JavaJava
Java
UTN
 
ArrayList in JAVA
ArrayList in JAVAArrayList in JAVA
ArrayList in JAVA
SAGARDAVE29
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
tavo_3315_
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
desimartinez
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
jlmanmons
 
Java Collections
Java  Collections Java  Collections
Alice 13
Alice 13Alice 13
Alice 13
Elian Maya
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
Angel Vázquez Patiño
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
Angel Vázquez Patiño
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
geova666
 
Polimorfismo y herencia
Polimorfismo y herenciaPolimorfismo y herencia
Polimorfismo y herencia
PonceSolsFernando
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
cibernano
 

La actualidad más candente (20)

Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Palabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en javaPalabras reservadas en java y tipos de datos en java
Palabras reservadas en java y tipos de datos en java
 
8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse8a Curso de POO en Java - crear proyecto eclipse
8a Curso de POO en Java - crear proyecto eclipse
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Tipos de datos Java
Tipos de datos JavaTipos de datos Java
Tipos de datos Java
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Java
JavaJava
Java
 
ArrayList in JAVA
ArrayList in JAVAArrayList in JAVA
ArrayList in JAVA
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Java Collections
Java  Collections Java  Collections
Java Collections
 
Alice 13
Alice 13Alice 13
Alice 13
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 
Polimorfismo y herencia
Polimorfismo y herenciaPolimorfismo y herencia
Polimorfismo y herencia
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
COLAS
COLASCOLAS
COLAS
 

Similar a Tema 4 clases_y_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 Java
santosisidrorivera
 
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.pdf
ChiquteRobledo
 
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
docmarcoantoniosotov
 
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.ppt
erosslo
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
miguel checa
 
Java2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a ObjetosJava2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a Objetos
Jairo887360
 
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
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Cindy Adriana Bohórquez Santana
 

Similar a Tema 4 clases_y_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
 
Java2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a ObjetosJava2-Clases.ppt Programación Orientada a Objetos
Java2-Clases.ppt Programación Orientada a Objetos
 
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
 

Más de BelenMonse

Tema 8 polimorfismo
Tema 8 polimorfismoTema 8 polimorfismo
Tema 8 polimorfismo
BelenMonse
 
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
BelenMonse
 
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
BelenMonse
 
Historia del Internet
Historia del InternetHistoria del Internet
Historia del Internet
BelenMonse
 
Plan de negocios
Plan de negociosPlan de negocios
Plan de negocios
BelenMonse
 
Plan de negocios para hostingnet
Plan de negocios para hostingnetPlan de negocios para hostingnet
Plan de negocios para hostingnet
BelenMonse
 
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
BelenMonse
 
Plan de negocios asdsdf
Plan de negocios asdsdfPlan de negocios asdsdf
Plan de negocios asdsdf
BelenMonse
 
El modelo de negocios
El modelo de negociosEl modelo de negocios
El modelo de negocios
BelenMonse
 
Planninf of Network
Planninf of NetworkPlanninf of Network
Planninf of Network
BelenMonse
 

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

libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
MiriamAquino27
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
Carlos Pulido
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 
Comunicación del Protocolo de investigación..pdf
Comunicación del Protocolo de investigación..pdfComunicación del Protocolo de investigación..pdf
Comunicación del Protocolo de investigación..pdf
211k0304
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....
lawjose243
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
La gestión y administración de almacenes
La gestión y administración de almacenesLa gestión y administración de almacenes
La gestión y administración de almacenes
RicardoCruzHernndez1
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
edujunes132
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
Relieve, Cuencas y curvas de nivel representación gráfica
Relieve, Cuencas y curvas de nivel representación gráficaRelieve, Cuencas y curvas de nivel representación gráfica
Relieve, Cuencas y curvas de nivel representación gráfica
paulsurvey
 
Flujo vehicular en análisis de trafico vial
Flujo vehicular en análisis de trafico vialFlujo vehicular en análisis de trafico vial
Flujo vehicular en análisis de trafico vial
SamuelMendozaS
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
ivan848686
 
EDT (Estructura de Desglose de Trabajo).pdf
EDT (Estructura de Desglose de Trabajo).pdfEDT (Estructura de Desglose de Trabajo).pdf
EDT (Estructura de Desglose de Trabajo).pdf
franco14021
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
arielemelec005
 
CAPACITACION EN USO Y MANEJO DE EXTINTORES
CAPACITACION EN USO Y MANEJO DE EXTINTORESCAPACITACION EN USO Y MANEJO DE EXTINTORES
CAPACITACION EN USO Y MANEJO DE EXTINTORES
vaniacordova6
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
CarlitosWay20
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
RobertRamos84
 
Organizacion-y-direccion-de-los-centros-de-informatica.pptx
Organizacion-y-direccion-de-los-centros-de-informatica.pptxOrganizacion-y-direccion-de-los-centros-de-informatica.pptx
Organizacion-y-direccion-de-los-centros-de-informatica.pptx
GuillerminaReyesJuar
 

Último (20)

libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 
Comunicación del Protocolo de investigación..pdf
Comunicación del Protocolo de investigación..pdfComunicación del Protocolo de investigación..pdf
Comunicación del Protocolo de investigación..pdf
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
La gestión y administración de almacenes
La gestión y administración de almacenesLa gestión y administración de almacenes
La gestión y administración de almacenes
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
Relieve, Cuencas y curvas de nivel representación gráfica
Relieve, Cuencas y curvas de nivel representación gráficaRelieve, Cuencas y curvas de nivel representación gráfica
Relieve, Cuencas y curvas de nivel representación gráfica
 
Flujo vehicular en análisis de trafico vial
Flujo vehicular en análisis de trafico vialFlujo vehicular en análisis de trafico vial
Flujo vehicular en análisis de trafico vial
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
 
EDT (Estructura de Desglose de Trabajo).pdf
EDT (Estructura de Desglose de Trabajo).pdfEDT (Estructura de Desglose de Trabajo).pdf
EDT (Estructura de Desglose de Trabajo).pdf
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
 
CAPACITACION EN USO Y MANEJO DE EXTINTORES
CAPACITACION EN USO Y MANEJO DE EXTINTORESCAPACITACION EN USO Y MANEJO DE EXTINTORES
CAPACITACION EN USO Y MANEJO DE EXTINTORES
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
 
Organizacion-y-direccion-de-los-centros-de-informatica.pptx
Organizacion-y-direccion-de-los-centros-de-informatica.pptxOrganizacion-y-direccion-de-los-centros-de-informatica.pptx
Organizacion-y-direccion-de-los-centros-de-informatica.pptx
 

Tema 4 clases_y_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