PDF de programación - Tema 6:Encapsulación en clases

<<>>
Imágen de pdf Tema 6:Encapsulación en clases

Tema 6:Encapsulación en clasesgráfica de visualizaciones

Publicado el 4 de Enero del 2019
605 visualizaciones desde el 4 de Enero del 2019
3,0 MB
39 paginas
Programación

Tema 6:Encapsulación en clases

Programación DIT-UPM

1

Contenidos

l 1. Clases
l 2. Visibilidad-derechos de acceso
l 3. Elementos estáticos
l 4. Relaciones de uso y composición de clases
l 5. Estilo y documentación
l 6. Diseño de clases

Programación DIT-UPM

2

Clases (1/2)

l Las clases soportan varios conceptos:

n Definición de tipos de datos

¡  Definen los datos (campos) y comportamiento (métodos)

para representar conceptos tratados del programa

¡  La clase define un ámbito de nombres reconocibles en

n Espacios de nombres

todo su espacio
n Encapsulamientos

relacionados

¡  Las clases permiten agrupar datos y comportamientos

Programación DIT-UPM

3

Clases (2/2)
l Las clases son las entidades fundamentales del

desarrollo de los programas

l Los objetos son las entidades fundamentales de

la ejecución
n En Java solo accedemos a los objetos mediante las

referencias

n Un programa no incluye especificación de objetos,

solo se crean durante su ejecución

n Todos los objetos tienen asociada una clase que es

la que se emplea en su creación



Programación DIT-UPM

4

Ciclo de vida del objeto

l Declaración: Crear una
referencia para el objeto

Punto c; // inicialmente null

l Creación: Crear el objeto
mediante new y llamada
a un método constructor

c = new Punto(1.0, 1.0);

c

c

Punto
1.0
1.0
getX
setX
getY
setY
distancia

Programación DIT-UPM

5

Ciclo de vida del objeto

l  Manipulación: Usar el objeto

mediante su referencia:
llamar a sus métodos, usar
sus datos, pasarlo como
parámetro, etc.
c.setX (2.0);

l  Destrucción: Olvidar el objeto
cuando no haga falta; cuando
no tiene referencias, el
recolector de basura lo
destruye
c = null;

Programación DIT-UPM

Punto
2.0
1.0
getX
setX
getY
setY
distancia

c

c

6

Referencia this
l  Es una variable predefinida en todos los ámbitos de una

clase (salvo los métodos static)

l  El tipo de this es la clase en la que aparece
l  Es una referencia al objeto sobre el que se ejecuta el
método. Esa referencia no es modificable (el objeto si)

l  Podemos usarla para:

n  Pasar referencias de este objeto mediante parámetros de

métodos (de esta u otras clases)

n  Asignaciones a variables (locales o atributos)

l  Cuando referenciamos campos y métodos sin usar

referencia, usamos implícitamente this
n  this.nombreCampo equivale a nombreCampo
n  this.nomMetodo(arg) equivale a nomMetodo(arg)

Programación DIT-UPM

7

Constructor this

n  Todo objeto tiene un método que se llama this

¡  Representa cualquiera de sus constructores (según su

signatura)

public class Punto {
private double x, y;

public Punto (double x, double y) { … }
public Punto (double x) {this(x,0.0); }
public Punto (Punto q) {this(q.x,q.y); }
}



Programación DIT-UPM

8

Contenidos

l 1. Clases
l 2. Visibilidad-derechos de acceso
l 3. Elementos estáticos
l 4. Relaciones de uso y composición de clases
l 5. Estilo y documentación
l 6. Diseño de clases

Programación DIT-UPM

9

Ámbitos

l El cuerpo de una clase determina un ámbito

n Métodos y campos que declara son visibles en toda

la clase

l Un método (incluido constructores) determina

otro ámbito
n Los parámetros son visibles en el ámbito del método

l Un bloque de código es otro ámbito

n Bloques de código

¡  Cuerpo de métodos y constructores
¡  Cuerpos de sentencias

n La declaración de variables es visible en las

sentencias que siguen a la declaración

Programación DIT-UPM

10

l Un elemento es visible en su ámbito y en los

ámbitos que incluye

l Cuando dos elementos tienen el mismo

identificador la declaración mas interna esconde
la externa dentro del ámbito interno
n En el mismo ámbito no podemos sobrecargar el

Ámbitos

mismo identificador/signatura

int x = 0;
public int m(int x) {
x=4;
this.x=6;
return x;
}

Programación DIT-UPM

11

Paquetes

l Los paquetes son una forma de agrupar clases

relacionadas y con fuertes dependencias
n Una encapsulación de alto nivel
n Una forma de organizar las clases

¡  java.lang
¡  java.awt, java.awt.color, java.awt.event

l Los paquetes son espacios de nombres
n Para acceder a una clase hay que hacer visible el
espacio de nombres del paquete en el que se
encuentra o definir todo el camino hasta llegar a la
clase

import java.util.*;
import java.util.Date;

Programación DIT-UPM

12

Paquete de una clase
l  Al principio del fichero que contiene una clase (antes de
declarar la clase) definimos el paquete que contiene la
clase
package nombre1.nombre2. … nombren;

l  Un único paquete para todo el fichero
l  Cuando compilamos (salvo opciones de compilación

específicos) se crea un directorio para cada nombre del
camino y un directorio contiene a los nombres que le
siguen

l  Dentro del mismo paquete no pueden existir dos clases

o paquetes con el mismo nombre

Programación DIT-UPM

13

Visibilidad de paquetes y clases

l  Una clase debe ser visible para poder usarla
l  Las importaciones las incluimos al principio del fichero

¡  Son visibles todas las clases incluidas en ese paquete

l  Si no importamos, hay que definir todo el camino:

java.util.Date d = new java.util.Date();
Necesario cuando utilizamos varias clases con el mismo nombre en
paquetes diferentes

Programación DIT-UPM

14

n  Importación de una clase
import nomPaquete1.nomPaquete2….NomClase;

¡  Podemos referenciar la clase (NomClase) libremente

n  Importación de todo el paquete
import nomPaquete;

¡  Para poder usar una clase hay que cualificarla

nomPaquete.nomClase

n  Importación sin uso qualificado
import nomPaquete1.nomPaquete2….*;

Contenidos

l 1. Clases
l 2. Visibilidad-derechos de acceso
l 3. Elementos estáticos
l 4. Relaciones de uso y composición de clases
l 5. Estilo y documentación
l 6. Diseño de clases

Programación DIT-UPM

15

Características de clase

l  En general los campos y métodos son de objeto

n  Métodos se ejecutan en el contexto de un objeto
n  Cada objeto tiene valores específicos para sus campos
l  Hay métodos y campos que no están asociados a

objetos y que están asociados a la clase
n  Los campos de clase son únicos

¡  La comparten todos los objetos de clase
¡  Las modificaciones son visibles y afectan todos los objetos de la

clase

n  El modificador static hace un campo o método de clase
n  No es necesario un objeto para referenciarlos

NombreClase.campoStatic
NombreClase.metodoStatic(arg)

n  Dentro de la clase, no es necesario el nombre de la clase
16

Programación DIT-UPM

Elementos de clase

l ¿Cuando definir elementos de clase?

n  cuando son campos constantes (static final)
n  variables únicas y comunes para todos los objetos

public static final double PI = 3.14;

de esa clase
class Punto {
public static Punto origen = new Punto(0.0,0.0);
…}
n  métodos que necesitemos utilizar aunque no haya

objetos
¡  Métodos en la clase Math

n  métodos que sólo utilizan elementos de clase
n  main, para poder entrar en el programa sin más

Programación DIT-UPM

17

Características de clase

l  En métodos static no podemos usar this, y solo

podemos usar campos static. ¿Por qué?
n  La llamada puede llegar de un contexto que no es de ningún

objeto

n  La llamada puede llegar del contexto de un objeto de otra clase
l  Campos static se deben inicializar en la declaración o
l  Mediante bloques static:

class C {

static int i=0;
static { // solo podemos acceder a statics



// podemos incluir bucles y alternancias

}
…}

Programación DIT-UPM

18

Método main
n  main es la forma estándar para entrar en un programa
que no incluye ningún objeto todavía
¡  Si no fuese static, primero habría que crear un objeto, y se
n  La máquina virtual inicializa la ejecución y busca main

ejecutaría el constructor

para cederle control; ejecuta
NombreClase.main(args)


n  Por eso main debe ser un método de clase, hay que
respetar sus argumentos y retorno, y debe ser público

Programación DIT-UPM

19

Contenidos

l 1. Clases
l 2. Visibilidad-derechos de acceso
l 3. Elementos estáticos
l 4. Relaciones de uso y composición de clases
l 5. Estilo y documentación
l 6. Diseño de clases

Programación DIT-UPM

20

Relaciones entre Clases
l  Las clases son un mecanismo complejo para soportar la

reutilización del software (no reinventar la rueda)

l  Las clases integran funcionalidades para tratar al tipo

de concepto que soportan

l  Una clase compleja se puede construir a partir de

clases simples

l  Tipos de relaciones entre clases

n  Uso
n  Composición
n  Agregación
n  Dependencia

l  En Java las implementamos todas mediante import,

referencias a clases y referencias a objetos

Programación DIT-UPM

21

Relaciones Uso

l  Utilizamos los métodos de otra clase para poder

implementar algunos métodos

l  Hay que importar la clase, y debemos tener algún tipo
de referencia (campos o variables locales), o que los
métodos sean static

l  Una clase puede utilizar los métodos definidos en otra,

aunque no incluya campos que la referencien
import ClaseUsada;
class ClaseQueUsa {



}

public void metodo(ClaseUsada usada) {
usada.metodoUsado();
(new ClaseUsada()).metodoUsado();
}

Programación DIT-UPM

22

Relaciones Composición y Agregación (1/2)
l  En una relación de composición construimos un tipo de
objeto mas complejo mediante un conjunto de objetos
simples
n  Por ejemplo, clase Ascensor a partir de las clases: Motor,

Botones, Display, Puerta

n  Por ejemplo, clase Escuela a partir de las clases: Secretaria,

Departamento, Direccion,
  • Links de descarga
http://lwp-l.com/pdf14755

Comentarios de: Tema 6:Encapsulación en clases (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