PDF de programación - Encapsulación: clases y objetos - Java y Servicios Web I - Master en Ingeniería Matemática

Imágen de pdf Encapsulación: clases y objetos - Java y Servicios Web I - Master en Ingeniería Matemática

Encapsulación: clases y objetos - Java y Servicios Web I - Master en Ingeniería Matemáticagráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.063 visualizaciones desde el 14 de Enero del 2017
841,8 KB
45 paginas
Creado hace 11a (13/05/2012)
Encapsulación: clases y

objetos

Java y Servicios Web I

Master en Ingeniería Matemática

Manuel Montenegro

Dpto. Sistemas Informáticos y Computación

Desp. 467 (Mat)

[email protected]

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

2

Clases

● Una clase es un tipo, definido mediante

atributos y métodos.

● Los atributos son variables que definen el

estado interno de los objetos de la clase.

● Los métodos son funciones/procedimientos

que acceden y/o modifican los atributos de un
objeto.
● Conceptualmente, representan mensajes

destinados a un objeto.

11/Mayo/2012

3. Encapsulación: Clases y objetos

3

Atributos de una clase

// Fecha.java
public class Fecha {
public int dia;
public int mes;
public int año;
}

Tipo

Nombre

Atributos

11/Mayo/2012

3. Encapsulación: Clases y objetos

4

Clases vs. Objetos

● Desde el punto de vista del compilador, las clases son

tipos, y los objetos son variables con esos tipos.

● Un objeto es una asignación de los atributos definidos

por la clase a valores concretos.

● Una clase puede considerarse como una plantilla, a partir
de la cual se crean objetos, que son instancias de la clase.

Clase Fecha

int dia;
int mes;
int año;

dia = 11
mes = 5

año = 2012

dia = 28
mes = 8

año = 1983

Objetos de

la clase Fecha

11/Mayo/2012

3. Encapsulación: Clases y objetos

5

Creación de objetos

// Test.java
public class Test {
public static void main(String[] args) {
Fecha f;
f = new Fecha();
f.dia = 12;
f.mes = 5;
f.año = 2012;
System.out.printf(“Hoy es día: %d/%d/%d”,
f.dia, f.mes, f.año);
}
}

Creación de un objeto

Modificación de atributos

Acceso a atributos

11/Mayo/2012

3. Encapsulación: Clases y objetos

6

Creación de objetos

// Test.java
public class Test {
public static void main(String[] args) {
Fecha f;
f = new Fecha();
f.dia = 12;
f.mes = 5;
f.año = 2012;
System.out.printf(“Hoy es día: %d/%d/%d”,
f.dia, f.mes, f.año);
}
}

Creación de un objeto

Modificación de atributos

Acceso a atributos

Fecha f = new Fecha();

11/Mayo/2012

3. Encapsulación: Clases y objetos

7

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

8

Métodos de una clase

● Son funciones que se declaran dentro del

cuerpo de la clase.

// Fecha.java
public class Fecha {
public int dia;
public int mes;
public int año;

public void imprimir() {
System.out.printf(“%d/%d/%d”, dia, mes, año);
}
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

9

Llamada a métodos

// Test.java
public class Test {
public static void main(String[] args) {
Fecha f;
f = new Fecha();
f.dia = 12;
f.mes = 5;
f.año = 2012;
System.out.print(“Hoy es día: ”);
f.imprimir();
}
}

Llamada a método

11/Mayo/2012

3. Encapsulación: Clases y objetos

10

Métodos de acceso (getters)

● En general, no conviene que el usuario de la clase

maneje directamente los atributos de la misma.

type Fecha = record
// número de días transcurridos desde el
// 1 de enero de 1970
numeroDias:integer;
end;

function DiferenciaFechas(f1, f2:Fecha):integer;
begin
return f2.numeroDias – f1.numeroDias;
end;

var actual, f: fecha;

write(f.dia, '/', f.mes, '/', f.año)

if f.año < … then
diff := DiferenciaFechas(actual, f);
end;

case f.mes of

end;

11/Mayo/2012

3. Encapsulación: Clases y objetos

11

Métodos de acceso (getters)

// Fecha.java
public class Fecha {

public int getDia() {
return dia;
}

public int getMes() {
return mes;
}

public int getAño() {
return año;
}
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

12

Métodos de modificación (setters)

// Fecha.java
public class Fecha {

public void setDia(int nuevoDia) {
dia = nuevoDia;
}

public void setMes(int nuevoMes) {
mes = nuevoMes;
}

public void setAño(int nuevoAño) {
año = nuevoAño;
}
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

13

Métodos de modificación (setters)

// Test.java
public class Test {
public static void main(String[] args) {
Fecha f;
f = new Fecha();
f.setDia(12);
f.setMes(5);
f.setAño(2012);
System.out.print(“Hoy es día: ”);
f.imprimir();
}
}

Ventaja adicional: permite comprobación de errores.

11/Mayo/2012

3. Encapsulación: Clases y objetos

14

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

15

Modificadores de acceso

● ¡Pero esto no impide que el usuario de la clase

pueda acceder a los atributos directamente!

Fecha f;
f = new Fecha();
f.dia = 12;
f.setMes(5);

● ¿Hay alguna manera de prohibir explícitamente

el acceso a un atributo o método?

11/Mayo/2012

3. Encapsulación: Clases y objetos

16

Modificadores de acceso

● public : Puede accederse desde fuera de la

clase.

● private: Sólo es visible desde los métodos de

la clase.
● Los atributos y métodos privados se consideran de

uso interno por la clase.

public class Fecha {
private int dia;
private int mes;
private int año;

}

11/Mayo/2012

3. Encapsulación: Clases y objetos

17

Modificadores de acceso

● public : Puede accederse desde fuera de la

clase.

● private: Sólo es visible desde los métodos de

la clase.
● Los atributos y métodos privados se consideran de

uso interno por la clase.

public class Fecha {
private int dia;
private int mes;
private int año;


}Modificadores de acceso

Puede ser public, private, o protected

11/Mayo/2012

3. Encapsulación: Clases y objetos

18

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

19

Constructores

● Son métodos que sirven para inicializar un

objeto.

● Se caracterizan por llamarse igual que el

nombre de la clase, y no tener tipo de retorno.
// Fecha.java
public class Fecha {

public Fecha(int nuevoDia, int nuevoMes, int nuevoAño) {
dia = nuevoDia;
mes = nuevoMes;
año = nuevoAño;
}
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

20

Constructores

● Los constructores son llamados durante la

creación del objeto.

// Test.java
public class Test {
public static void main(String[] args) {
Fecha f;
f = new Fecha(12, 5, 2012);
System.out.print(“Hoy es día: ”);
f.imprimir();
}
}

Parámetros del constructor

11/Mayo/2012

3. Encapsulación: Clases y objetos

21

Constructores

● Si una clase no tiene constructor, el

compilador añade un constructor por defecto
sin parámetros.
● Inicializa todos los atributos a sus valores por

defecto.

Fecha f = new Fecha();

Constructor por defecto

● Cuando se define un constructor en una clase,

el constructor por defecto no se añade.

Fecha f = new Fecha();

ERROR

11/Mayo/2012

3. Encapsulación: Clases y objetos

22

Manejo interactivo de objetos en BlueJ

11/Mayo/2012

3. Encapsulación: Clases y objetos

23

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

24

Igualdad de objetos

● Los objetos se almacenan en el heap.
● Las variables son referencias a esos objetos.

Fecha f1 = new Fecha(11, 5, 2012);
Fecha f2 = f1;

f1

f2

dia = 11
mes = 5

año = 2012

● La igualdad entre dos variables de tipo objeto
(==) es cierta sólo si apuntan al mismo objeto.

11/Mayo/2012

3. Encapsulación: Clases y objetos

25

Igualdad de objetos

● Si se quiere implementar otro tipo de

igualdad, ha de hacerse mediante un método
de la clase.
// Fecha.java
public class Fecha {

public boolean igualA(Fecha otraFecha) {
return (dia == otraFecha.dia) &&
(mes == otraFecha.mes) &&
(año == otraFecha.año);
}
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

26

Igualdad de objetos

● Si se quiere implementar otro tipo de

igualdad, ha de hacerse mediante un método
de la clase.
// Test.java

f1 = new Fecha(14, 2, 2000);
f2 = new Fecha(14, 2, 2000);
if (f1.igualA(f2)) {
System.out.println(“Son iguales”);
}

11/Mayo/2012

3. Encapsulación: Clases y objetos

27

Contenidos

● Clases y objetos. Atributos.
● Métodos.
● Modificadores de acceso (public/private)
● Constructores.
● Igualdad de objetos.
● Ejemplos.
● Atributos y métodos estáticos.
● Paquetes.

11/Mayo/2012

3. Encapsulación: Clases y objetos

28

Ejemplo: clase Punto

public class Punto
{
private int x;
private int y;

public Punto(int x, int y) {
this.x = x;
this.y = y;
}

public int getX() { return x; }
public int getY() { return y; }

}

11/Mayo/2012

3. Encapsulación: Clases y objetos

29

Ejemplo: clase Punto

public class Punto
{
private int x;
private int y;

public Punto(int x, int y) {
this.x = x;
this.y = y;
}

public int getX() { return this.x; }
public int getY() { return this.y; }

Atributos de la clase

this = objeto que está siendo construido

}

this = objeto que recibe el mensaje

11/Mayo/2012

3. Encapsulación: Clases y objetos

30

Ejemplo: clase Rectangulo

public class Rectangulo
{
private Punto posición; // Posición de la esquina sup
  • Links de descarga
http://lwp-l.com/pdf813

Comentarios de: Encapsulación: clases y objetos - Java y Servicios Web I - Master en Ingeniería Matemática (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