PDF de programación - Tema 3. Programación orientada a objetos en Java (Parte 1) - Programación en Java

Imágen de pdf Tema 3. Programación orientada a objetos en Java (Parte 1) - Programación en Java

Tema 3. Programación orientada a objetos en Java (Parte 1) - Programación en Javagráfica de visualizaciones

Publicado el 5 de Septiembre del 2020
418 visualizaciones desde el 5 de Septiembre del 2020
170,5 KB
21 paginas
Creado hace 21a (16/03/2003)
Programación en Java

Tema 3. Programación orientada a
objetos en Java (Parte 1)

Luis Rodríguez Baena

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática

1

Clases y objetos (I)

Clase

Cojunto de datos (atributos) y funciones (métodos) que definen la
estructura de los objetos y los mecanismos para su manipulación.

Atributos y métodos junto con interfacesy clases anidadas

constituyen los miembros de una clase.

Declaración

}

[modificadores] class NombreDeClase{

//Declaración de atributos
//Declaración de métodos
//Declaración de clases anidadas e interfaces

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

2

2

Clases y objetos (II)

Modificadores de clase

public, todo el mundo puede acceder a ella. Sin este modificador
sólo podrían acceder los miembros de su clase o los de las clases de
su paquete.

abstract, clase incompleta de la que no se pueden crear

instancias. Se utiliza para implementar superclases que las clases
“hijas” deberán completar.

final, no admite subclases por lo que no se podrán sobreescribir.
Todos sus métodos serán a su vez final, por lo que no podrán ser
sobreescritos.

synchronizable, todos sus métodos son sincronizables, es decir

no se puede acceder a ellos desde distintos hilos (threads) de
ejecución.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

3

3

Objetos (I)

Instancia de una clase.

Para su uso es necesaria la declaración, la instanciación y la

inicialización del objeto.
class Empleado{

long idEmpleado = 0;
String nombre = "SinNombre";
double sueldo = 0;

}

Declaración.

Empleado e;
Instanciación.

e = new Empleado();

Se puede resumir en una única instrucción:

Empleado e = new Empleado();

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

4

4

Objetos (II)

Constructores.

Constructor por omisión (constructor no-args): Asignatura(){}
Bloques de sentencias declarado dentro de una clase con el mismo

nombre que la clase y sin valor de retorno.

Las sentencias inicializan la instancia y se invocan después de

asignar los valores por omisión de los atributos.

Empleado(String nom){

nombre = nom;

}

Empleado e = new Empleado("Juan Martinez);

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

5

5

Objetos (III)

Constructores (continuación).

Es posible utilizar las características de otro constructor utilizando la palabra

reservada this que devuelve una referencia al objeto.
this.idEmpleado, haría referencia al código actual del objeto.
this(long), haría referencia al constructor.

Empleado(long id){
idEmpleado = id;

}

Empleado(long id, String nombre){

this(id);
this.nombre = nombre;


Empleado e = new Empleado(12345);
Empleado e1 = new Empleado(343234, "Ana Lopez")

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

6

6

Destructores y recolección de basura

El entorno de ejecución de Java dispone de un recolector

de basura (garbagecollector) que limpia de la memoria los
objetos no utilizados.
Cuando un objeto no se puede referenciar (acaba la vida de la

variable de referencia) marca el objeto como basura.

Cuando lo considere oportuno el recolector de basura lo eliminará
No es un destructor.

El método finalize() se ejecuta antes de eliminarlo.

Se puede utilizar para realizar otras operaciones de limpieza, cerrar

archivos, etc.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

7

7

Accesibilidad de las clases

Por omisión: acceso de paquete (friendlyo amistoso).
La clase sólo puede ser utilizada por otras clases del paquete.

Modificador public: permite que sea utilizada por otras

clases.
Sólo puede haber una clase pública por unidad de compilación.
Su nombre debe coincidir con el de la unidad de compilación.
Puede haber una unidad de compilación sin clases públicas.

No hay clases private.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

8

8

Atributos (I)

“Variables” de la clase.

Se declaran igual que las variables.

Inicialización de atributos.

Valor por omisión, expresión de inicialización, o mediante

constructores.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

9

9

Atributos (II)

Modificadores de acceso:

Acceso paquete (sin modificador de acceso).

Pueden acceder todas los miembros de la clase y de la clase del

paquete.

Para el resto de paquetes, se considerará como acceso privado.
Métodos get / set para facilitar el acceso al resto de paquetes.

Acceso publico (modificador public).

Disponible para todas las clases que se encuentren en el directorio de

CLASSPATH.

Las clases del mismo directorio se consideran del mismo paquete

(acceso de paquete).

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

10

10

Atributos (III)

Modificadores de acceso (continuación).

Acceso privado (modificador private).

Ningún miembro de otra clase puede acceder al atributo.
Atributos útiles para implementar métodos ayudantes(que utilizan

otros métodos de la clase).

Posibilidad de acceso mediante métodos get/set.

return nota;

private double sueldo = 0;
...
public double getSueldo(){
}
...
//Daría error
//System.out.println(e.sueldo());
System.out.println(e.getSueldo());

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

11

11

Atributos (IV)

Modificadores de acceso (continuación).
Acceso protegido (modificador protected).

Se utiliza para la herencia.
Permite a las clases hijas utilizar los atributos de la clase base aunque

pertenezcan a distintos paquetes.

Niveles de acceso.

Modificador
private
protected
public
“paquete”

X
X
X
X

Clase Subclase Paquete Mundo

X
X

X
X
X

X

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

12

12

Atributos (V)

Atributos de clase (modificador static).

Para campos que compartan todas las instancias de una clase.

...
static long numEmpleados = 0;
Empleado(){
}
...
System.out.println(Empleados.numEmpleados);

numEmpleados++;

Se utiliza como cualificador el nombre de la clase o de la instancia

(no recomendado).

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

13

13

Atributos (VI)

Atributos constantes (modificador final)

No pueden cambiarse una vez inicializados.
En atributos de tipos de datos primitivos se inicializan en tiempo de

compilación y se deben inicializar en la declaración.

En tipos de referencia:

No puede cambiar la referencia aunque si los atributos de la clase.
Para definir una clase final habría que definir todos sus atributos como

final.

Se puede hacer una inicialización tardía (constantes final blancaso

inicialización perezosa).

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

14

14

Métodos (I)

Proporcionan la funcionalidad a las clases y contiene el

código que maneja el estado de un objeto.

Declaración.

[modificadores de acceso][static][final][abstract]

[synchronized] tipoRetorno

nombreMétodo([listaParametrosFormales])
[throws listadeExceptiones]{

//cuerpo del método

}

Invocación.

objeto.método([listaParámetrosActuales])

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

15

15

Métodos (II)

Modificadores de acceso

Visibilidad
Desde la propia clase
Desde otra clase del paquete

Desde otra clase fuera del paquete

Desde otra subclase del paquete

Desde otra subclase fuera del paquete

public

protected

private

Por omisión

X
X

X

X

X

X
X

X

X

X

X
X

X

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

16

16

Métodos (III)

Tipos de retorno

subclase o void.

Datos primitivos, arrays, objetos, interfaces, objeto de la clase o

El valor lo devuelven mediante la sentencia return.

Paso de argumentos

Siempre se pasan por valor

En tipos de datos primitivos pasan copias de los parámetros actuales.
En tipos de datos de referencia se pasa el valor de la referencia.

Los atributos de la referencia se pueden modificar.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

17

17

Métodos (IV)

Sobrecarga de métodos.

Asigna un mismo nombre a métodos con distinta funcionalidad.

this.sueldo = (this.sueldo * porCiento / 100) + this.sueldo;

void aumentarSueldo(float porCiento){
}
void aumentarSueldo(double euros){
}

this.sueldo += euros;

El compilador los distingue por el número y tipo de argumentos.

¿Es posible utilizar el tipo de retorno para distinguirlos?

int f1(){…};
float f1{…};
//Llamada al método entero
int x = f1();
//Llamada al método real
float y = f1();
//Llamada ¿a qué método?
f1();

Universidad Pontifici
  • Links de descarga
http://lwp-l.com/pdf18177

Comentarios de: Tema 3. Programación orientada a objetos en Java (Parte 1) - Programación en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad