PDF de programación - Tema 1- Conceptos de Java para Estructuras de Datos

Imágen de pdf Tema 1- Conceptos de Java para Estructuras de Datos

Tema 1- Conceptos de Java para Estructuras de Datosgráfica de visualizaciones

Publicado el 26 de Octubre del 2018
1.030 visualizaciones desde el 26 de Octubre del 2018
386,3 KB
15 paginas
Creado hace 13a (22/09/2010)
Tema 1- Conceptos de Java para
Estructuras de Datos

Germán Moltó

Escuela Técnica Superior de Ingeniería Informática

Uni ersidad Politécnica de Valencia
Universidad Politécnica de Valencia

Tema 1- Conceptos de Java para Estructuras de Datos
Tema 1 Conceptos de Java para Estructuras de Datos

ÍÍndice general:
1. Clases y Objetos en Java
2.

El Principio de la Programación Orientada a Objetos de la Herencia y
su Soporte en Java
El Polimorfismo en Java
El Polimorfismo en Java

3
3.
4. Más Herencia en Java: Métodos y Clases Finales y Abstractos.
5. Herencia Múltiple: Interfaces Java
5. Herencia Múltiple: Interfaces Java

1

2

Objetivos y Bibliografía
Objetivos y Bibliografía
 Objetivos:

 Conocer los conceptos básicos de la POO y su soporte en el

lenguaje Java

 Aprender el concepto de Herencia en Java para afrontar el
 Aprender el concepto de Herencia en Java para afrontar el

desarrollo de estructuras de datos y algoritmos que se realiza en
temas posteriores.

 Estudiar el concepto de paquete como mecanismo para la
 Estudiar el concepto de paquete como mecanismo para la

agrupación de clases.

 Comprender el concepto de Polimorfismo, Interfaz y Clase

Ab
ilid d
Abstracta, así como su utilidad.

í



 Bibliografía:

 Weiss M A Estructuras de datos en Java Adisson-Wesley 2000
 Weiss, M.A. Estructuras de datos en Java. Adisson-Wesley, 2000.

Capítulos 2 (Apartado 2.5) 3 y 4

 Arnow, D., Weiss G. Introducción a la Programación con Java. Un
enfoque orientado a objetos. Adisson-Wesley, 2001. Capítulo 14
2001 C ít l 14

t d bj t

W l

Adi



f

i

Objetos y Clases en Java (I)
Objetos y Clases en Java (I)
 En Java todo son objetos (i.e. instancias de una Clase dada),
exceptuando los 8 tipos primitivos (i.e. byte, short, int, long,
float, double, char y boolean).

 Una Clase consta de un conjunto de atributos (almacenan
 Una Clase consta de un conjunto de atributos (almacenan
datos) y un conjunto de métodos (trabajan con esos datos).

 Un Objeto de una Clase se usa/manipula desde cualquier
 Un Objeto de una Clase se usa/manipula desde cualquier

método de otra Clase, como por ejemplo TestClase.

public class TestClase {
public class TestClase {

public static void main( String args[] ){ ... }

}

 Ejemplo: sea TestCirculo una aplicación que maneja Círculos,

i e Objetos de la clase Circulo
i.e. Objetos de la clase Circulo

3

4

Objetos y Clases en Java (II)
Objetos y Clases en Java (II)

public class TestClase {
p
{

public static void main( String args[] ){

¿ ?

}

}

 ¿Qué podemos hacer con un objeto?

 Especificación de una Clase: descripción de QUÉ se puede

hacer con un Objeto, es decir, qué métodos expone
(especificación de Circulo).

 Implementación de una Clase: detalles internos de CÓMO
 Implementación de una Clase: detalles internos de CÓMO
se satisface la Especificación o cómo se consigue hacer lo que
se hace con un Objeto.

5

Referencias en Java
Referencias en Java
 Una variable Referencia almacena la dirección de memoria en

la que se encuentra el Objeto al que referencia.
0

102
c1

Circulo c1 = new Circulo();
Circulo c1
new Circulo();

102

408

• Al hacer:

Memoria

• Circulo c2 = c1;
• La variable referencia c2 pasa a tener el mismo valor que

c1, es decir, ambas apuntan al mismo objeto.

7

Objetos y Clases en Java (III)
Objetos y Clases en Java (III)

public class TestClase {
p
{

public static void main( String args[] ){

Circulo c1 = new Circulo();
Circulo c2;
c2 = c1;
}}

}

 Creación de Objetos de una Clase:

 c1 es una variable Referencia al nuevo Objeto creado.
 c2 es una variable Referencia a ningún Objeto, i.e. tras la

j

declaración Circulo c2 ; c2 == null
¿ Qué ocurre si se ejecuta c2 = c1; ?



6

Ejemplo de Utilización de Objetos Circulo
Ejemplo de Utilización de Objetos Circulo

 Podemos crear un objeto de la clase Circulo de la manera

j

especificada en los constructores que define la clase.

public class TestCirculo {
p
{

public static void main( String args[] ){
Circulo c1 = new Circulo();
double radio = 4.0;
Color color = Color.red;
Circulo c2 = new Circulo(radio color);
Circulo c2 = new Circulo(radio, color);
System.out.println(c2);
System.out.println(c2.toString());
y
g());

p

(

}

}

8

¿Qué diferencia hay en las
dos últimas invocaciones?
dos últimas invocaciones?

Implementación de una Clase
Implementación de una Clase
 Implementación de una Clase:

 Detalles internos de cómo se satisface la Especificación o cómo se

consigue hacer lo que se hace sobre un Objeto.

 Componentes de una Clase:
 Componentes de una Clase:

 Atributos, que almacenan los datos de la Clase
 Métodos que definen la funcionalidad de la Clase mediante por lo
 Métodos, que definen la funcionalidad de la Clase mediante, por lo

general, la manipulación de los atributos.

q

 Elementos que aparecen en la implementación de una clase:

p
 El operador this.
 Modificadores estáticos, dinámicos y finales de una Clase y sus

p

componentes.

 Modificadores de visibilidad public y private de una Clase y sus

componentes
componentes.

9

Implementación de una Clase: Definición de
Constructores
Constructores
 Los Constructores de una clase permiten dar un valor
inicial a los atributos del objeto. Ejemplo: definición de los
métodos Constructores de Circulo

p

public Circulo() {

radio = RADIO_POR_DEFECTO;
color = COLOR_POR_DEFECTO;

}
public Circulo(double radio Color color) {
public Circulo(double radio, Color color) {

this.radio = radio;
this.color = color;

}
}
public Circulo(){

this hace referencia al objeto
sobre el que se invoca el método
y sirve para evitar el aliasing de
p
y
nombres.

g

this(RADIO_POR_DEFECTO, COLOR_POR_DEFECTO);
)

(

}

11

Implementación de una Clase: Definición de
Atributos
Atributos
 Los Atributos de una Clase almacenan los datos de la Clase

i

l

d fi

 Ejemplo: definición de los Atributos de la Clase Circulo
l

 Modelo de la relación TIENE UN(A)
 Modificadores de atributos
Ej
private double radio;
private String color;
private String color;
private static final double RADIO_POR_DEFECTO = 3.0;
private static final Color COLOR_POR_DEFECTO = Color.black;

d l Cl

ió d l

A ib

Ci

• Por lo general, los atributos se suelen definir privados y se definen

métodos consultores y modificadores. De esta manera se garantiza la
encapsulación u ocultación de datos
encapsulación u ocultación de datos.

• Modificador static: Permite definir variables a nivel de clase (compartidas

por todos los objetos).

• Modificador final: Impide asignar un nuevo valor al atributo.

10

Implementación de una Clase: Definición de
Métodos (I)
Métodos (I)
 Los Métodos de una clase definen su funcionalidad.
: Definición de Métodos Consultores en la clase
 Ejemplo: Definición de Métodos Consultores en la clase
 Ejem l

Circulo.
 Al definir como privados todos los atributos de Circulo, se deben



l

proporcionar métodos para acceder a su valor.

é d

d



i

public double getRadio() {
public double getRadio() {

return radio;

}

public Color getColor() {

p

p

Se podría utilizar this para referenciar a
los atributos (i.e., this.radio) pero no es
necesario puesto que no hay aliasing de
nombres.

return color;

t



l

}

12

Implementación de una Clase: Definición de
Métodos (II)
Métodos (II)

Implementación de una Clase: Definición de
Métodos (III)
Métodos (III)

 Al definir como privados todos los atributos de Circulo,
se deben proporcionar métodos para modificar su valor.
 Ejemplo: definición de los Métodos Modificadores de

p

Circulo

p

 Ejemplo: definición de otros Métodos de Circulo

j
public double area() { return Math.PI * radio * radio; }
public String toString() {return “Circulo de radio “ + radio}
p
}
public static Circulo leerCirculo(Scanner teclado) { ... }

g() {

g

public void setRadio(double nuevoRadio) {

radio = nuevoRadio;

}
public void setColor(Color nuevoColor) {

color = nuevoColor;

}

13

Utilizar diferentes nombres para el
argumento y el atributo evita el aliasing y
ya no es necesario utilizar this
ya no es necesario utilizar this.

 El uso de un método estático permite definirlo a nivel de

clase, no a nivel de instancia (objeto individual).
 Se deberá invocar como Circulo.leerCirculo(...).

¿Se podría utilizar this en la
implementación del método area para
referenciar al atributo radio?
referenciar al atributo radio?

14

Estado Actual de la Clase Circulo
Estado Actual de la Clase Circulo
public class Circulo {

private double radio;
private double radio;
private Color color;
private static final double RADIO_POR_DEFECTO = 3.0;
private static final Color COLOR POR DEFECTO = Color black;
private static final Color COLOR_POR_DEFECTO Color.black;

/** crea un Circulo con radio r y color c */

public Circulo(Color c double r) {
public Circulo(Color c, double r) {

this.color = c;
this.radio = r;

}}

/** crea un Circulo estándar.: radio 3.0, color negro y centro en el origen*/
public Circulo() {

hi (COLOR POR DEFECTO RADIO POR DEFECTO)
this(COLOR_POR_DEFECTO, RADIO_POR_DEFECTO);

}


}
}

15

Ejercicios Propuestos
Ejercicios Propuestos
 Ejercicio 1: Escribe la clase Manzana que tiene un sabor, de tipo

entero que representa una escala [0 10]
entero que representa una escala [0,10].
 Por defecto, la manzana tiene un sabor de 5, aunque se puede especificar

su sabor al crearla.

 Ejercicio 2: En lugar de trabajar con Círculos, se desea trabajar con

otro tipo de Figuras (Cuadrados o Rectángulos o Triángulos). Si ya
se dispone de la aplicación misCirculos, ¿cómo se afrontaría el
diseño e implementación de la nueva aplicación?

p

p

¿

 Ejercicio 3: Se desea realizar una aplicación que maneje un grupo

de Círculos En particular se desea:
de Círculos. En particular, se desea:
 Construir el grupo con varios Circulos, mostrar el grupo por pantalla y

obtener el área del grupo.

Siguiendo los pasos da
  • Links de descarga
http://lwp-l.com/pdf14059

Comentarios de: Tema 1- Conceptos de Java para Estructuras de Datos (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