You are on page 1of 29

UNIVERSIDAD NACIONAL DE CAJAMARCA

FACULTAD DE INGENIERÍA

Algoritmos y Estructura
de Datos II

AAREGLOS Y OBJETOS

¿Qué recuerdo de un arreglo?

¿qué mas puedo hacer con un arreglo? • Hasta ahora hemos creado arreglos sencillos con tipos de datos primitivos. • ¿Qué otro tipo de elementos permite guardar java? .

Recordando los vectores • Referente a los vectores que podemos decir de: • Tipo de dato (primitivo o referencia) • Tipos de datos que puedo almacenar • Tamaño que ocupa en memoria • Ventajas y desventajas .

edad y talla de cada uno de mis compañeros para finalmente mostrarlos en una tabla. ¿Cómo lo resolvería? .Solucionando el problema • ¿qué pasaría si ahora tengo que registrar el nombre.

. usando arreglos.Logro Esperado Al término de la sesión. el estudiante resuelve un problema real planteado por el profesor. sustentando su solución con un diseño de la solución propuesta.

ARREGLOS Y OBJETOS Trabajando juntos .

p[0]. p[1] = new Point(1.setY(p[2]. Point vertice= new Point(4.oracle.Considere Point[] p = new Point[3]. p[1].getY()). 0). p[0] = new Point(0. 1). p[2] = vertice. p[1] = p[0].setX(1). p[2] = new Point(2. http://docs.4).com/javase/7/docs/api/ . 2).

p[0]. 2).setX(1). 2) . p[1] = new Point(1. p[2] = new Point(2. 0) Point: (1. Point vertice = new Point(4. p[0] p[1] p[2] p Point: (0. p[1]. p[0] = new Point(0.setY(p[2].Considere Point[] p = new Point[3]. 1).4). 1) Point: (2. p[2] = vertice. 0).getY()). p[1] = p[0].

2) . p[2] = new Point(2. p[0] p[1] p[2] p Point: (1. 1). 0). p[0]. 2).setY(p[2].setX(1).Considere Point[] p = new Point[3]. 1) Point: (2. p[1]. p[0] = new Point(0. p[2] = vertice. Point vertice = new Point(4. p[1] = new Point(1.4).getY()). p[1] = p[0]. 0) Point: (1.

p[1]. 2) Point: (2. p[1] = new Point(1.setY(p[2].getY()).4).setX(1). p[1] = p[0]. p[0] = new Point(0. p[0] p[1] p[2] p Point: (1. 2) . 0).Considere Point[] p = new Point[3]. p[2] = new Point(2. 2). p[2] = vertice. 0) Point: (1. Point vertice = new Point(4. p[0]. 1).

Considere Point[] p = new Point[3].4).setY(p[2]. 2) . p[1] = p[0]. 0). Point vertice = new Point(4. 0) Point: (1.getY()).setX(1). p[2] = vertice. p[1]. 2) Point: (2. p[1] = new Point(1. 2). p[2] = new Point(2. vertice p[0] p[1] p[2] p Point: (4. 4) Point: (1. 1). p[0] = new Point(0. p[0].

1). p[0].4). p[2] = vertice.Considere Point[] p = new Point[3].setY(p[2]. 0) Point: (2. 2). Point vertice = new Point(4. 2) . p[0] = new Point(0. 4) Point: (1. p[2] = new Point(2. p[1] = new Point(1.getY()). 0). vertice p[0] p[1] p p[2] Point: (4.setX(1). p[1]. p[1] = p[0].

p[1]. 1). vertice p[0] p[1] p p[2] Point: (4.getY()).4). p[2] = new Point(2. 0) . p[0]. p[1] = new Point(1.setX(1). 4) Point: (1. Point vertice = new Point(4. 2). p[0] = new Point(0. p[1] = p[0].setY(p[2]. 0). p[2] = vertice.Considere Point[] p = new Point[3].

TipoElemeto[ ] id = { exp0 .. exp1 . expn-1 }..Inicialización explícita • Sintaxis id Hace referencia a un array de n elementos. y . id[1] Tiene el valor exp1 . id[0] tiene el valor exp0 . .. Cada expi es una expresión que evalua el tipo TipoElemento ..

“milusa“. .Inicialización explícita • Ejemplo String[] mascota = { “canela“. mascota[3] = “estrella". mascota[0] = “canela". “jack". int[] uno = { 1 }. “estrella" }. mascota[2] = “jack". uno[0] = 1. int[] uno = new int[1]. • Equivale a String[] mascota = new String[4]. mascota[1] = “milusa".

} . • El método clone() de arrays se ha reescrito específicamente para arrays.length. ++i) { System. tiene todos los métodos miembros de Object. • Método length – Tamaño del array for (int i = 0. i < mascota.out.println(mascota[i]).Miembros del array • Como array es un objeto.

new Point(1. 1)}.Miembros del array • Método clone() – Produce una copia superficial Point[] u = {new Point(0. Point[] v = u.clone(). . 30). 0). v[1] = new Point(4.

1) . 0).Miembros del array • Método clone() – Produce una copia superficial Point[] u = {new Point(0. Point[] v = u.clone(). 1)}. new Point(1. v[1] = new Point(4. 30). 0) v v[0] v[1] Point: (1. u[0] u[1] u Point: (0.

1)}.Haciendo una copia profunda • Método clone() – Produce una copia superficial Point[] u = {new Point(0. 0). v[1] = new Point(4. new Point(1. 30). 30) v[0] v[1] . u[0] u[1] u Point: (0. 0) v Point: (1.clone(). 1) Point: (4. Point[] v = u.

++i) { w[i] = u[i]. i < u. for (int i = 0.clone().length].length.Haciendo una copia profunda • Ejemplo Point[] w = new Point[u. } .

0) . 2) w[2] w Point: (0. 2) Point: (2. 1) Point: (2. 1) Point: (2. 0) w[0] w[1] Point: (2.Haciendo una copia profunda u[0] u[1] u[2] u Point: (0.

Solución al problema .

PREGUNTAS Revisando los conceptos estudiados .

Recordando los tipos de datos primitivos .

Ordenar el código para producir la salida mostrada .

• ¿cómo puedo saber si dos arreglos son iguales? .Preguntas • ¿Cómo defino una arreglo de objetos de manera general? • ¿Cómo accedemos a las propiedades de cada objeto dentro del arreglo? • ¿Para qué me sirve el método clone? • ¿Cómo puedo sacar una copia de un arreglo? Explique sus alternativas.

 .

Problema propuesto • Generar un vector de puntos aleatorios que pertenezcan al primer cuadrante del eje de coordenadas cartesianas y encontrar la distancia de cada punto al centro (0.0) determinando la mayor distancia .