Está en la página 1de 12
 

Métodos de Programación

Tema 1. Proceso de desarrollo de software

 

Tema 2. Clases, referencias y objetos en Java

Tema 3. Diseño Modular

Tema 4. Herencia y Polimorfismo

Tema 5. Tratamiento de errores

Tema 6. Entrada/salida con ficheros

Tema 7. Prueba de programas

 

©

M. Aldea

Métodos de Programación

feb-2015

1

Tema 2. Clases, referencias y objetos en Java

 
 

Tema 2. Clases, referencias y objetos en Java

2.1. Creación e inicialización de objetos

 

2.2. Tipos primitivos, referencias y objetos

 

2.3. Comparación de objetos

2.4. Recolector de basura

2.5. Métodos y campos de clase (o estáticos)

 

2.6. Anidamiento de clases

2.7. Bibliografía

 

©

M. Aldea

Métodos de Programación

feb-2015

2

Tema 2. Clases, referencias y objetos en Java

 
 

2.1 Creación e inicialización de objetos

 

2.1

Creación e inicialización de objetos

En el lenguaje Java los objetos se crean con el operador new:

UnaClase obj = new UnaClase();

 
Se invoca el CONSTRUCTOR

Se invoca el CONSTRUCTOR

Los constructores son métodos especiales que

se llaman igual que la clase

no tienen tipo de retorno

Una clase puede tener varios constructores con diferentes parámetros public UnaClase() { … } public UnaClase(int i) { … } public UnaClase(boolean b, int i) { … }

Si y sólo si no definimos constructor, la clase tendrá el constructor por defecto (constructor sin parámetros que no hace nada) public UnaClase() {}

 

©

M. Aldea

Métodos de Programación

feb-2015

3

Tema 2. Clases, referencias y objetos en Java

 
 

2.1

Creación e inicialización de objetos

 

Creación implícita de objetos

 

En unos pocos casos la creación de objetos se realiza sin que el operador new aparezca explícitamente:

 

Creación de strings utilizando un literal de string:

 
 

String str = "Hola";

 
 
Equivale 1 a: String str = new String("Hola");
Equivale 1 a:
String str = new String("Hola");
 

Concatenación de strings:

 
 

String str1 = "Hola"; String str2 = "Adiós"; String str3 = str1 + str2;

 

Equivale a:

 

String str3 = new String("HolaAdiós");

 

1. No son equivalentes desde el punto de vista de la implementación de ambas instrucciones por parte de la máquina virtual (si se tiene curiosidad, buscar información sobre “String constant pool”).

 

©

M. Aldea

Métodos de Programación

 

feb-2015

4

Tema 2. Clases, referencias y objetos en Java

 
 

2.1

Creación e inicialización de objetos Creación implícita de objetos (cont.)

 

Inicialización de array:

 

int[] números = {1, 3, 5};

 
Equivale a: int[] números = new int[3]; números[0] = 1; números[1] = 3; números[2] =
Equivale a:
int[] números = new int[3];
números[0] = 1;
números[1] = 3;
números[2] = 5;
 
 

©

M. Aldea

Métodos de Programación

 

feb-2015

5

Tema 2. Clases, referencias y objetos en Java

 
 

2.1

Creación e inicialización de objetos

 

Inicialización de los atributos

 

Cuando se crea un objeto sus atributos se inicializan en 3 etapas:

 
 

1. Se asigna a cada atributo su valor por defecto

 

- tipos numéricos (int, double, …): 0 (o 0.0)

 

- Caracteres (char): carácter nulo

 

- Booleanos (boolean): false

- Referencias a objetos (String, otras clases): null

 

2. Si la declaración del atributo contiene un inicializador, éste es evaluado y asignado private int numRuedas = numCoches * 4; 3. Se ejecuta el constructor de la clase, que puede cambiar el valor de los atributos que desee

 
 

Recordar: sólo se inicializan los atributos, las variables locales de los métodos no son inicializadas por defecto

 
 

©

M. Aldea

Métodos de Programación

 

feb-2015

6

Tema 2. Clases, referencias y objetos en Java

2.1 Creación e inicialización de objetos

Atributos “finales”

Su valor no se puede cambiar después de haber sido inicializados

pueden inicializarse en la definición del atributo o en el constructor de la clase

Inicialización de “PI” hay un valor más preciso de PI en la clase Math
Inicialización de “PI”
hay un valor más preciso
de PI en la clase Math

Ejemplo:

public class Círculo { public final double PI = 3.14159; private final double área; private final double radio;

final double área ; private final double radio ; public Círculo( double radio) { this .

public Círculo(double radio) { this.radio = radio;

La inicialización de “área” y “radio” se dejan para el constructor

de “área” y “radio” se dejan para el constructor this . área = PI * radio

this.área = PI * radio * radio;

}

// los demás métodos de la clase no pueden // cambiar el valor de los atributos finales

Métodos de Programación

© M. Aldea

feb-2015

7

Tema 2. Clases, referencias y objetos en Java

Atributos finales en UML

Se utilizar el modificador {readonly}

public class Círculo {

2.1 Creación e inicialización de objetos

Círculo

+PI: Real {readonly} -área: Real {readonly} -radio: Real {readonly}

+ Círculo(radio: Real)

public final double PI = 3.14159; private final double área; private final double radio;

public Círculo(double radio) { this.radio = radio; this.área = PI * radio * radio;

}

Métodos de Programación

© M. Aldea

feb-2015

8

Tema 2. Clases, referencias y objetos en Java

2.2 Tipos primitivos, referencias y objetos

2.2 Tipos primitivos, referencias y objetos

Tipos primitivos:

boolean, char, byte, short, int, long, float y double.

Cuando se declarara una variable de un tipo primitivo el compilador reserva un área de memoria para ella

int i, j;

i

jreserva un área de memoria para ella int i, j; i X • Cuando se asigna

X
X

Cuando se asigna un valor, éste es escrito en el área reservada

i=16;

j=3;

i

16
16

j

3
3

La asignación entre variables significa copiar el contenido de una variable en la otra

i=j;

Métodos de Programación

i

jsignifica copiar el contenido de una variable en la otra i=j; Métodos de Programación i ©

© M. Aldea

feb-2015

3
3

9

Tema 2. Clases, referencias y objetos en Java 2.2 Tipos primitivos, referencias y objetos Tipos
Tema 2. Clases, referencias y objetos en Java
2.2
Tipos primitivos, referencias y objetos
Tipos primitivos: representación en memoria
int i, j;
0x1000
i i=16;
XXX
0x1004
j=3;
0x1008
0x2A14
0x1000
i i=j;
0x2A18
XXX
16
j 0x1004
0x2A1C
0x1008
0x1000
3
0x2A14
0x1004
i
0x2A18
3
j 0x1008
0x2A1C
0x2A14
0x2A18
3
j
0x2A1C
©
M. Aldea
Métodos de Programación
feb-2015
10
Tema 2. Clases, referencias y objetos en Java
2.2
Tipos primitivos, referencias y objetos
Referencias y objetos
Cuando se declara una variable “objeto” la situación es diferente
• Si no se usa el operador new sólo se crea una referencia a objeto
Complejo c1,c2;
c1
X
c2
X
• El espacio en memoria del objeto se reserva con el operador new
c1=new Complejo(2.0,-3.2);
c2=new Complejo(1.3,2.1);
:Complejo
r=2.0
c1
i=-3.2
public class Complejo {
private double r;
private double i;
:Complejo
r=1.3
c2
i=2.1
}
©
M. Aldea
Métodos de Programación
feb-2015
11
7.2 2.4
Tema 2. Clases, referencias y objetos en Java
2.2
Tipos primitivos, referencias y objetos
Referencias y objetos (cont.)
Representación en memoria:
Complejo c1;
c1 = new Complejo(7.2, 2.4);
0x1000
0x1000
0x1004
XXX
c1
0x1004
0x00002A18
c1
0x1008
0x1008
0x2A14
0x2A14
0x2A18
0x2A18
}
r
0x2A1C
0x2A1C
0x2A20
0x2A20
} i
0x2A24
0x2A24
0x2A28
0x2A28
©
M. Aldea
Métodos de Programación
feb-2015
12

Tema 2. Clases, referencias y objetos en Java

 
 

2.2

Tipos primitivos, referencias y objetos Referencias y objetos (cont.)

La asignación entre referencias no copia los objetos

 

después de la copia ambas referencias apuntan al mismo objeto (y los objetos no han sido modificados)

 
 

c2=c1;

c1

:Complejo :Complejo r=2.0 r=1.3 i=-3.2 c2 i=2.1
:Complejo
:Complejo
r=2.0
r=1.3
i=-3.2
c2
i=2.1

La comparación entre referencias no compara los contenidos de los objetos

en la figura anterior c1==c2 es true

 

en la situación de debajo c1==c2 es false

 
 

c1

:Complejo r=2.0 i=1.0
:Complejo
r=2.0
i=1.0
 

c2

:Complejo r=2.0 i=1.0
:Complejo
r=2.0
i=1.0
 

el método equals permite comparar contenidos (Ver 2.5)

 
 

©

M. Aldea

Métodos de Programación

 

feb-2015

13

Tema 2. Clases, referencias y objetos en Java

 
 

2.2

Tipos primitivos, referencias y objetos

 

Arrays de tipos primitivos

 

Java trata los arrays como objetos

Crear una variable de tipo array sólo crea una referencia

 

int[] a;

 

a

X
X
 

El espacio en memoria para el array se crea con new

 

cuando se trata de un array de un tipo primitivo se crean los elementos del array

 

y se inicializan a sus valores por defecto

 
 

a = new int[5];

 

a

a
a

0

0

0

0

0

 
   

©

M. Aldea

Métodos de Programación

 

feb-2015

14

Tema 2. Clases, referencias y objetos en Java

 
 

2.2

Tipos primitivos, referencias y objetos

 

Arrays de referencias a objetos

 

Crear una variable de tipo array de objetos sólo crea la referencia

 

Complejo a[];

 

a

X
X
 

Con new se reserva el espacio para el array de referencias

 

pero no los objetos a los que apuntarán las referencias

las referencias se inicializan a su valor por defecto (null)

a=new Complejo[4];

 
null null null null
null
null
null
null
 

a

Los objetos hay que crearlos posteriormente a[1]=new Complejo(2.0,-3.2);

 

a

:Complejo r=2.0
:Complejo
r=2.0

null

null

null

i=-3.2

:Complejo r=2.0 null null null i=-3.2
:Complejo r=2.0 null null null i=-3.2
 

©

M. Aldea

Métodos de Programación

 

feb-2015

15

Tema 2. Clases, referencias y objetos en Java

2.2 Tipos primitivos, referencias y objetos

Copia y comparación de arrays (y strings)

Los arrays y los strings son objetos, por consiguiente:

La asignación sólo copia referencias

a2=a1;

a1

4 -3 0 1 a2
4
-3
0
1
a2

La comparación compara las referencias no los contenidos

en la figura anterior a1==a2 es true

en la situación de debajo a1==a2 es false

a1

4 -3 0 1
4
-3
0
1

a2

4 -3 0 1
4
-3
0
1

Para comparar contenidos debe utilizarse el método equals

Métodos de Programación

© M. Aldea

feb-2015

16

Tema 2. Clases, referencias y objetos en Java

2.2 Tipos primitivos, referencias y objetos

Referencias y clase ArrayList

Un ArrayList almacena referencias a los objetos que “contiene”

puesto que se implementa utilizando un array

E ArrayList -elementos: E[] -numEle: Integer
E
ArrayList
-elementos: E[]
-numEle: Integer

El método equals permite comparar dos ArrayList

Dos ArrayList son iguales si contienen los mismos elementos en el mismo orden

Métodos de Programación

© M. Aldea

feb-2015

17

Tema 2. Clases, referencias y objetos en Java

Ejemplo ArrayList

2.2 Tipos primitivos, referencias y objetos

ArrayList<Complejo> a = new ArrayList<Complejo>();

a.add(new Complejo(1, 2)); a.add(new Complejo(3, 4));

a

:ArrayList elementos X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0
:ArrayList
elementos
X
:Complejo
numEle = 2
r=3.0
i=4.0
:Complejo
r=1.0
i=2.0
X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0 Métodos de Programación © M. Aldea
X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0 Métodos de Programación © M. Aldea

Métodos de Programación

© M. Aldea

feb-2015

18

-3

-7

8

2

1

Tema 2. Clases, referencias y objetos en Java

 

2.2 Tipos primitivos, referencias y objetos

 
 

Ejemplo ArrayList (cont.)

 

Complejo c1 = a.get(1);

 
 

a

:ArrayList elementos X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0 c1
:ArrayList elementos X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0 c1
:ArrayList elementos X :Complejo numEle = 2 r=3.0 i=4.0
:ArrayList
elementos
X
:Complejo
numEle = 2
r=3.0
i=4.0
:Complejo r=1.0 i=2.0
:Complejo
r=1.0
i=2.0
:ArrayList elementos X :Complejo numEle = 2 r=3.0 i=4.0 :Complejo r=1.0 i=2.0 c1
c1
c1
 
 

c1.r = 5;

 
   
   
 

a

:ArrayList elementos X numEle = 2 :Complejo r=1.0 i=2.0 c1 :Complejo r=5.0 i=4.0
:ArrayList elementos X numEle = 2 :Complejo r=1.0 i=2.0 c1 :Complejo r=5.0 i=4.0
:ArrayList elementos X numEle = 2
:ArrayList
elementos
X
numEle = 2
:Complejo r=1.0 i=2.0
:Complejo
r=1.0
i=2.0
c1
c1
:Complejo r=5.0 i=4.0
:Complejo
r=5.0
i=4.0
 
 

©

M. Aldea

Métodos de Programación

feb-2015

19

Tema 2. Clases, referencias y objetos en Java

 
 

2.3

Comparación de objetos

2.3

 

Comparación de objetos

La comparación (ref1==ref2) compara referencias si queremos comparar los contenidos de los objetos debemos utilizar el método equals

Ejemplo: método equals para la clase Coordenada:

 

public class Coordenada { private int x; // coordenada en el eje x private int y; // coordenada en el eje y

 
 

public boolean equals(Object obj) { Coordenada c = (Coordenada) obj; return c.x == x && c.y == y;

Veremos una definición más completa del método equals cuando veamos la herencia
Veremos una definición más
completa del método equals
cuando veamos la herencia

}

}

 

©

M. Aldea

Métodos de Programación

feb-2015

20

Tema 2. Clases, referencias y objetos en Java

 
 

2.3

Comparación de objetos

Ejemplo de uso del método equals

 

if (c1.equals(c1)) {

 
 

true

true

 

}

c1

:Coordenada x = 2 y = -3
:Coordenada
x = 2
y = -3

c4

 

if (c1.equals(c4)) {

 

 

}

 
false

false

:Coordenada x = 10 y = 4
:Coordenada
x = 10
y = 4

c2

 
 

if (c1.equals(c2)) {

 

 

}

if (c1.equals(c3)) { true

if (c1.equals(c3)) {

true

 
:Coordenada x = 2 y = -3
:Coordenada
x = 2
y = -3
 

 

}

c3

 

©

M. Aldea

Métodos de Programación

feb-2015

21

Tema 2. Clases, referencias y objetos en Java

 
 

2.3 Comparación de objetos

Comparación de contenidos de arrays y strings

La clase String dispone del método equals:

 
 

String str1 = "hola", str2 = "hola"; if (str1.equals(str2)) { System.out.println("Los strings son iguales");

}

Para comparar arrays existe el método equals de la clase Arrays:

import java.util.Arrays;

 
 

int[] a1= {4, -3, 0, 1}, a2= {4, -3, 0, 1}; if (Arrays.equals(a1, a2)) { System.out.println("'a1' es igual a 'a2'");

 

}

 

Volveremos a hablar del método equals cuando tratemos la herencia y el polimorfismo

 
 

©

M. Aldea

Métodos de Programación

 

feb-2015

 

22

Tema 2. Clases, referencias y objetos en Java

 
 

2.4 Recolector de basura

2.4

Recolector de basura

 

La memoria ocupada por un objeto se reserva con el operador new

en Java no existe ningún operador para liberar la memoria de un objeto que no se va a usar más

El Recolector de Basura realiza la liberación de memoria de forma automática

el recolector va contando el número de referencias que “apuntan” a cada objeto

 

cuando un objeto no está apuntado por ninguna referencia, se convierte en “basura” (no va a poder ser utilizado nunca más)

en los periodos de inactividad del sistema, el recolector reincorpora la “basura” a la memoria disponible

 
 

©

M. Aldea

Métodos de Programación

 

feb-2015

 

23

Tema 2. Clases, referencias y objetos en Java

 
 

2.4 Recolector de basura

Ejemplo de generación de basura

 

Complejo c1 = new Complejo(2.0, 3.2); Complejo c2 = new Complejo(1.3, 2.1);

 

c1

:Complejo r=2.0 i=3.2
:Complejo
r=2.0
i=3.2

c2

:Complejo r=1.3 i=2.1
:Complejo
r=1.3
i=2.1

c2 = c1;

 
:Complejo r=1.3 i=2.1
:Complejo
r=1.3
i=2.1
 

c1

:Complejo r=2.0 i=3.2 c2
:Complejo
r=2.0
i=3.2
c2
 
  c1 :Complejo r=2.0 i=3.2 c2  
 

Se convierte en basura al no estar apuntado por ninguna referencia

 

©

M. Aldea

Métodos de Programación

 

feb-2015

 

24

Tema 2. Clases, referencias y objetos en Java

2.5 Métodos y campos de clase (o estáticos)

2.5 Métodos y campos de clase (o estáticos)

Una clase puede tener atributos y métodos estáticos:

no pertenecen a los objetos de la clase, sino a la clase misma

si son atributos, sólo existe uno por clase, no uno por objeto

- la vida es la de la clase, y no la del objeto

si son métodos, sólo pueden acceder a los objetos pasados como parámetros y a campos y métodos estáticos

nos referimos a ellos como NombreClase.miembroEstático

public class Cosa {

private static int st; private int i;

}

Métodos de Programación

:Cosa :Cosa Cosa.st=10 i=2 i=125 :Cosa :Cosa :Cosa i=23 i=-12 i=-45
:Cosa
:Cosa
Cosa.st=10
i=2
i=125
:Cosa
:Cosa
:Cosa
i=23
i=-12
i=-45

© M. Aldea

feb-2015

25

Tema 2. Clases, referencias y objetos en Java

2.5 Métodos y campos de clase (o estáticos)

Ejemplo de atributo y método de clase

public class Coche {

// atributo estático private static int últimoNumSerie=0;

// atributos normales private int numSerie; private String matrícula;

// constructor public Coche(String matrícula){ ultimoNumSerie++; numSerie = últimoNumSerie; this.matrícula = matrícula;

}

Coche

-últimoNumSerie: int

-numSerie: int

-matrícula: string

+Coche(matrícula: string) +matrícula(): string +numSerie(): int +últimoNumSerie(): int

Métodos de Programación

© M. Aldea

feb-2015

26

Tema 2. Clases, referencias y objetos en Java

// retorna la matrícula public String matrícula() { return matrícula;

}

// retorna el número de serie public int numSerie() { return numSerie;

}

2.5 Métodos y campos de clase (o estáticos)

Ejemplo de atributo y método de clase (cont.)

// retorna el último número de serie usado public static int últimoNumSerie() { return últimoNumSerie;

}

}

Métodos de Programación

© M. Aldea

feb-2015

27

Tema 2. Clases, referencias y objetos en Java

2.5 Métodos y campos de clase (o estáticos)

Ejemplo de atributo y método de clase (cont.)

public class PruebaCoche { public static void main(String[] args) { // consulta el último número de serie usado System.out.println("Último número usado:" + Coche.últimoNumSerie()); // crea dos coches Coche c1=new Coche("1111 XXX"); Coche c2=new Coche("2222 YYY"); // muestra los datos de un coche System.out.println("Coche: " + c1.matrícula()); System.out.println("Num serie: "+c1.numSerie()); // muestra los datos del otro coche System.out.println("Coche: " + c2.matrícula()); System.out.println("Num serie: "+c2.numSerie());

}

}

Métodos de Programación

© M. Aldea

feb-2015

28

Tema 2. Clases, referencias y objetos en Java

2.5 Métodos y campos de clase (o estáticos)

Ejemplo de método de clase

public class Vector2D {

// atributos private double x; private double y;

Vector2D

-x: double

-y: double

+Vector2D(x:double, y: double)

+suma(v: Vector2D): void

+suma(v1: Vector2D, v2: Vector2D): Vector2D

/** Constructor */ public Vector2D(double x, double y) { this.x = x; this.y = y;

}

Métodos de Programación

© M. Aldea

feb-2015

29

Tema 2. Clases, referencias y objetos en Java

/**

2.5 Métodos y campos de clase (o estáticos) Ejemplo de método de clase (cont.)

* Método NO estático: Suma el vector v con

* el vector actual

*/

public void suma(Vector2D v){

x

= x + v.x;

y

= y + v.y;

}

/**

* Método ESTÁTICO: Retorna el vector

* resultado de v1+v2

*/ public static Vector2D suma(Vector2D v1, Vector2D v2) { return new Vector2D(v1.x+v2.x, v1.y+v2.y);

}

}

Métodos de Programación

© M. Aldea

feb-2015

30

Tema 2. Clases, referencias y objetos en Java

 

Vector2D v1 = new Vector2D(1,2); Vector2D v2 = new Vector2D(5,10); Vector2D v3;

2.5 Métodos y campos de clase (o estáticos) Ejemplo de método de clase (cont.)

 
v1 v2 v3 :Vector :Vector x=1.0 x=5.0 y=2.0 y=10.0
v1
v2
v3
:Vector
:Vector
x=1.0
x=5.0
y=2.0
y=10.0

X

// suma no estática

 

v1.suma(v2);

 
v1 v2 v3 :Vector :Vector x=6.0 x=5.0
v1
v2
v3
:Vector
:Vector
x=6.0
x=5.0

y=12.0

y=10.0

X

refObjeto.nombreMétodo

refObjeto.nombreMétodo

// suma estática

 

v3=Vector2D.suma(v1,v2);

 
  v1 :Vector x=6.0 y=12.0 v2 :Vector x=5.0 y=10.0 v3 :Vector x=11.0 y=22.0
v1 :Vector x=6.0 y=12.0
v1
:Vector
x=6.0
y=12.0
v2 :Vector x=5.0 y=10.0
v2
:Vector
x=5.0
y=10.0
v3 :Vector x=11.0 y=22.0
v3
:Vector
x=11.0
y=22.0

NombreClase.nombreMétodo

 

©

M. Aldea

Métodos de Programación

 

feb-2015

31

Tema 2. Clases, referencias y objetos en Java

 
 

2.6

Anidamiento de clases

 

2.6

Anidamiento de clases

 

Una clase puede definirse dentro de otra

las clases anidadas no estáticas se denominan clases internas y están asociadas con una instancia (objeto) de la clase

-

normalmente no las usaremos en esta asignatura

 

las clases anidadas estáticas son como cualquier otra clase

 

- salvo que su nombre es ClaseContenedora.ClaseAnidada

- las usaremos principalmente con excepciones y enumerados

public class ClaseContenedora {

 

public static class ClaseAnidada {

 

}

 

©

M. Aldea

Métodos de Programación

 

feb-2015

32

Tema 2. Clases, referencias y objetos en Java

 
 

2.6

Anidamiento de clases

 

Ejemplo de clase anidada estática

 

public class Segmento {

 

public static class Punto { double x, y;

clase anidada estática
clase anidada estática
 

}

// atributos private Punto pIni, pFin;

 

/** constructor */ public Segmento (Punto pIni, Punto pFin) { this.pIni = pIni; this.pFin = pFin;

 

}

}

 

©

M. Aldea

Métodos de Programación

 

feb-2015

33

Tema 2. Clases, referencias y objetos en Java

 
 

2.6 Anidamiento de clases Ejemplo de clase anidada estática (cont.)

public class PruebaSegmento {

public static void main() {

 

Segmento.Punto ptoIni = new Segmento.Punto(); Segmento.Punto ptoFin = new Segmento.Punto();

ptoIni.x=10.2;

ptoIni.y=4.3;

ptoFin.x=1.3;

ptoFin.y=5.6;

Segmento seg = new Segmento(ptoIni, ptoFin);

}

}

 

©

M. Aldea

Métodos de Programación

feb-2015

34

Tema 2. Clases, referencias y objetos en Java

 
 

2.7 Bibliografía

2.7

Bibliografía

Ken Arnold, James Gosling, David Holmes, “El lenguaje de programación Java”, 3ª edición. Addison-Wesley, 2000.

Deitel, Harvey M. y Deitel, Paul J., “Cómo programar en Java”, 9ª edición. Pearson Educación, México, 2012.

King, Kim N. “Java programming: from the beginning”. W. W. Norton & Company, cop. 2000

Francisco Gutiérrez, Francisco Durán, Ernesto Pimentel. “Programación Orientada a Objetos con Java”. Paraninfo, 2007.

 

©

M. Aldea

Métodos de Programación

feb-2015

35