7
Ing. Heber Gómez Hurtado Ing. Heber Gómez Hurtado 1 TALLER DE PROGRAMACION I TALLER DE PROGRAMACION I Tema: Arreglos Objetos Tema: Arreglos Objetos

Taller 1 6

Embed Size (px)

Citation preview

Page 1: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 11

TALLER DE PROGRAMACION ITALLER DE PROGRAMACION I

Tema: Arreglos ObjetosTema: Arreglos Objetos

Page 2: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 22

Arreglos de ObjetosArreglos de Objetos

Cuando se crea un array de objetos, Cuando se crea un array de objetos, se está creando realmente un array se está creando realmente un array de referencias a los objetos, y cada de referencias a los objetos, y cada una de éstas se inicializa una de éstas se inicializa automáticamente con un valor automáticamente con un valor especial representado por la palabra especial representado por la palabra clave clave null.null.

Page 3: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 33

Ejemplo (1 de 4)Ejemplo (1 de 4)EjemploEjemploPaso 1:Paso 1: Definir tipo de dato (clase) Definir tipo de dato (clase)public class Punto()public class Punto(){{ private int x,y;private int x,y; public Punto() {x=0; y=0;}public Punto() {x=0; y=0;} public Punto(int a, int b) {x=a; y=b;}public Punto(int a, int b) {x=a; y=b;} public int getX() {return x;}public int getX() {return x;} public int getY() {return y;}public int getY() {return y;} public setX(int x) {this.x=a;}public setX(int x) {this.x=a;} public setY(int y) {this.y=b;}public setY(int y) {this.y=b;}}}

ApuntesApuntes:: Los métodos Los métodos gettergetter (Permiten recuperar los atributos del objeto) y (Permiten recuperar los atributos del objeto) y settersetter (Permiten (Permiten

modificar los atributos del objeto). En NetBeans estos metodos se pueder crear modificar los atributos del objeto). En NetBeans estos metodos se pueder crear auntimaticamente.auntimaticamente.

La declaración de una clase, permite definir un nuevo tipo de dato que se utilizara La declaración de una clase, permite definir un nuevo tipo de dato que se utilizara posteriormente. posteriormente.

Page 4: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 44

Ejemplo (2 de 4)Ejemplo (2 de 4)Paso 2:Paso 2: Definir clase Arreglo Definir clase Arreglopublic class ArregloPunto { public class ArregloPunto {

Punto p[]; //Definir arreglo de la clase puntoPunto p[]; //Definir arreglo de la clase punto

int pos=0;int pos=0;

public ArregloPunto() { pos=0; }public ArregloPunto() { pos=0; }

public ArregloPunto(int n) //Inicializar Arreglo public ArregloPunto(int n) //Inicializar Arreglo

{ pos=0;{ pos=0;

p=new Punto[n]; p=new Punto[n];

}}

public void agregar(Punto nuevo) //Agregar un nuevo elemento public void agregar(Punto nuevo) //Agregar un nuevo elemento

{ p[pos]=nuevo;{ p[pos]=nuevo;

pos++;pos++;

}}

public Punto mostrar(int n) // Mostrar datos de Punto public Punto mostrar(int n) // Mostrar datos de Punto

{ return p[n]; }{ return p[n]; }

public int total() //Mostrar cantidad de elementospublic int total() //Mostrar cantidad de elementos

{ return p.length; }{ return p.length; }

}}

Page 5: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 55

Ejemplo (3 de 4)Ejemplo (3 de 4)Paso 3:Paso 3: Utilizar la clase arreglo Utilizar la clase arreglo

import java.io.*;import java.io.*;public class app {public class app { public static void main(String[] args) {public static void main(String[] args) { ArregloPunto p; //Objeto de la clase arregloArregloPunto p; //Objeto de la clase arreglo Punto aux; //Objeto de la clase puntoPunto aux; //Objeto de la clase punto BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a=0,b=0,n=0;int a=0,b=0,n=0;

try{try{ do{do{

System.out.println("Cantidad de Elementos"); System.out.println("Cantidad de Elementos"); n=Integer.parseInt(br.readLine());n=Integer.parseInt(br.readLine());

}while(n<0);}while(n<0); p= new ArregloPunto(n); //Invocar Constructor de la clase ArregloPunto p= new ArregloPunto(n); //Invocar Constructor de la clase ArregloPunto for(int i=0;i<p.total();i++) {for(int i=0;i<p.total();i++) { System.out.println("Punto["+(i+1)+"]");System.out.println("Punto["+(i+1)+"]"); System.out.println("Ingrese X :"); a = Integer.parseInt(br.readLine());System.out.println("Ingrese X :"); a = Integer.parseInt(br.readLine()); System.out.println("Ingrese Y :"); b = Integer.parseInt(br.readLine());System.out.println("Ingrese Y :"); b = Integer.parseInt(br.readLine()); aux = new Punto(a,b);// Invocar constructor de la clase punto.aux = new Punto(a,b);// Invocar constructor de la clase punto. p.agregar(aux);p.agregar(aux); }}

Page 6: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 66

Ejemplo (4 de 4)Ejemplo (4 de 4)Paso 3:Paso 3: Continuación Continuación

//-- Reportar//-- Reportar

System.out.println("Punto\tX\tY"); System.out.println("Punto\tX\tY");

for(int i=0;i<p.total();i++)for(int i=0;i<p.total();i++)

{{

aux=p.mostrar(i); aux=p.mostrar(i);

System.out.println((i+1) +"\t"+aux.getX() +"\t"+aux.getY()); System.out.println((i+1) +"\t"+aux.getX() +"\t"+aux.getY());

}}

}}

catch(Exception e)catch(Exception e)

{{

System.out.println(e);System.out.println(e);

}}

} }

}}

Page 7: Taller 1 6

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 77

ConclusionesConclusiones

Cuando el tipo de dato de un arreglo Cuando el tipo de dato de un arreglo es una clase, estamos hablando de es una clase, estamos hablando de arreglo de objetos.arreglo de objetos.

Tambien podemos crear arreglos de Tambien podemos crear arreglos de objetos usando las clases graficas, objetos usando las clases graficas, como JButton. Esta clase esta como JButton. Esta clase esta contenida en el paquete javax.swing.contenida en el paquete javax.swing.JButton boton[] = new JButton[10];JButton boton[] = new JButton[10];