Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJE DE PROGRAMACION I
ARREGLO DE OBJETOS
Un arreglo de objetos es un conjunto de variables de referencia que controlan objetos del
mismo tipo.
Donde:
Libro es el nombre de la clase.
alib[] es el nombre del arreglo.
new es el operador para reservar memoria. En este ejemplo se está reservando 3 espacios o
variables de referencia que por defecto tienen el valor de null hasta que se almacene la dirección
o referencia de un objeto.
b) Representación gráfica:
Página 1 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
OPERACIONES VARIADAS
El siguiente ejemplo está compuesto de 3 clases: la clase Libro (clase que maneja los atributos
de los objetos de tipo libro y métodos de acceso set y get), la clase ArregloLibros (clase que
maneja el arreglo de objetos) y la clase Principal (clase que interactúa con el usuario a través
de la GUI).
package Modelo;
// Atributos privados
private int codigo, año;
private String titulo;
private double precio;
//constructor
public Libro(int codigo, int año, String titulo, double precio) {
this.codigo = codigo;
this.año = año;
this.titulo = titulo;
this.precio = precio;
}
Página 2 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
//métodos de acceso
public int getCodigo() {
return codigo;
}
Página 3 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
package Control;
import Modelo.Libro;
//atributos privados
private Libro alib[];
private int indice;
//constructor
public ArregloLibros() {
alib = new Libro[3];
indice = 0;
}
//metodos publicos
public void adicionar(Libro x) {
if (indice == alib.length)
{//invocar método
ampliarArreglo();
}
alib[indice] = x;
indice++;
return -1;
}
Página 4 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
//método privado
private void ampliarArreglo() {
//asigna contenido del arreglo alib a la variable aux
Libro aux[] = alib;
//crea nuevo objeto aumentando número de elementos del arreglo
alib = new Libro[indice + 5];
//pasar los elementos de la variable aux al arreglo alib
for (int i = 0; i < indice; i++) {
alib[i] = aux[i];
}
}
Página 5 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
En el paquete vista crear objeto JFramePrincipal, tres JInternalFrame para ingresar, eliminar y
modificar Libro. El JFramePrincipal contiene un objeto Destok Pane que permite alojar los
JinternalFrames.
Código de JFramePrincipal
package Vista;
import Control.ArregloLibros;
import Modelo.Libro;
import javax.swing.JOptionPane;
Página 6 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
//objeto JInternalFrame
JInternalFrameIngresar ventanaIngreso = new JInternalFrameIngresar();
JInternalFrameModificar ventanaModificar = new
JInternalFrameModificar();
JInternalFrameEliminar ventanaEliminar = new JInternalFrameEliminar();
void mensaje(String s) {
JOptionPane.showMessageDialog(this, s);
void aumentar() {
a.aumento();
String s = null;
for (int i = 0; i < a.tamaño(); i++) {
Libro x = a.obtener(i);
s = s + "Còdigo: " + x.getCodigo() + "\nTitulo: " +
x.getTitulo() + "\nAño: " + x.getAño() + "\nPrecio:" + x.getPrecio() +
"\n\n\n\n";
}
mensaje(s);
}
void estadisticas() {
String s = "El libro mas caro: " + a.masCaro() + "\nEl libro
mas barato:" + a.masBarato() + "\n";
mensaje(s);
//eventos
private void
MenuItemIngresoActionPerformed(java.awt.event.ActionEvent evt) {
dskFondo.add(ventanaIngreso);
ventanaIngreso.setVisible(true);
//pasamos el objeto arregloLibros a la ventanaingreso
ventanaIngreso.setA(a);
private void
MenuItemSalirActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void
MenuItemModificarActionPerformed(java.awt.event.ActionEvent evt) {
dskFondo.add(ventanaModificar);
ventanaModificar.setVisible(true);
//pasamos el objeto arregloLibros a la ventanaModificar
ventanaModificar.setA(a);
}
private void
MenuItemEliminarActionPerformed(java.awt.event.ActionEvent evt) {
dskFondo.add(ventanaEliminar);
Página 7 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
ventanaEliminar.setVisible(true);
//pasamos el objeto arregloLibros a la ventanaModificar
ventanaEliminar.setA(a);
}
private void
MenuItemAumentarActionPerformed(java.awt.event.ActionEvent evt) {
aumentar();
}
private void
MenuItemEsadisticasActionPerformed(java.awt.event.ActionEvent evt) {
estadisticas();
}
Diseño de JInternalFrameIngresar
Código de JInternalFrameIngresar
package Vista;
import Control.ArregloLibros;
import Modelo.Libro;
import javax.swing.JOptionPane;
Página 8 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
void ingresar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
if (pos == -1) {
Libro x = new Libro(Integer.parseInt(txtcodigo.getText()),
txttitulo.getText(), Integer.parseInt(txtaño.getText()),
Double.parseDouble(txtprecio.getText()));
a.adicionar(x);
listar();
mensaje("Libro agregado");
} else {
mensaje("Código ya existe");
}
}
void modificar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
Libro x = a.obtener(pos);
void listar() {
txtsalida.setText("");
txtsalida.setText("Código \t Título \t Año \t Precio\n");
if (a.tamaño() > 0) {
for (int i = 0; i < a.tamaño(); i++) {
Libro x = a.obtener(i);
txtsalida.append(x.getCodigo() + "\t" + x.getTitulo()
+ "\t" + x.getAño() + "\t" + x.getPrecio() + "\n");
}
} else {
mensaje("No hay libros");
}
}
void mensaje(String s) {
JOptionPane.showMessageDialog(this, s);
//eventos
te void btnregistrarActionPerformed(java.awt.event.ActionEvent evt) {
ingresar();
}
}
Página 9 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
Diseño de InternalFrameModificar
Código de JInternalFrameModificar
package Vista;
import Control.ArregloLibros;
import Modelo.Libro;
import javax.swing.JOptionPane;
void buscar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
if(pos!=-1){
Libro x = a.obtener(pos);
txttitulo.setText(x.getTitulo());
txtaño.setText(String.valueOf(x.getAño()));
txtprecio.setText(String.valueOf(x.getPrecio()));
} else
mensaje("Libro no existe");
Página 10 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
void mensaje(String s) {
JOptionPane.showMessageDialog(this, s);
}
void modificar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
if(pos!=-1){
Libro x = a.obtener(pos);
x.setTitulo(txttitulo.getText());
x.setAño(Integer.parseInt(txtaño.getText()));
x.setPrecio(Double.parseDouble(txtprecio.getText()));
listar();
}else
mensaje("Libro no existe");
}
void listar() {
txtsalida.setText("");
txtsalida.setText("Código \t Título \t Año \t Precio\n");
if (a.tamaño() > 0) {
for (int i = 0; i < a.tamaño(); i++) {
Libro x = a.obtener(i);
txtsalida.append(x.getCodigo() + "\t" + x.getTitulo()
+ "\t" + x.getAño() + "\t" + x.getPrecio() + "\n");
}
} else {
mensaje("No hay libros");
}
}
//eventos
private void btnmodificarActionPerformed(java.awt.event.ActionEvent
evt) {
modificar() ;
Página 11 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
Código de JInternalFrameEliminar
Código de JInternalFrameEliminar
package Vista;
import Control.ArregloLibros;
import Modelo.Libro;
import javax.swing.JOptionPane;
void buscar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
if (pos != -1) {
Libro x = a.obtener(pos);
txttitulo.setText(x.getTitulo());
txtaño.setText(String.valueOf(x.getAño()));
txtprecio.setText(String.valueOf(x.getPrecio()));
} else {
mensaje("Libro no existe");
}
}
Página 12 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
void eliminar() {
int pos = a.buscar(Integer.parseInt(txtcodigo.getText()));
if (pos != -1) {
a.eliminar(pos);
mensaje("Libro eliminado");
listar();
} else {
mensaje("Código no existe");
}
}
void listar() {
txtsalida.setText("");
txtsalida.setText("Código \t Título \t Año \t Precio\n");
if (a.tamaño() > 0) {
for (int i = 0; i < a.tamaño(); i++) {
Libro x = a.obtener(i);
txtsalida.append(x.getCodigo() + "\t" + x.getTitulo()
+ "\t" + x.getAño() + "\t" + x.getPrecio() + "\n");
}
} else {
mensaje("No hay libros");
}
}
void mensaje(String s) {
JOptionPane.showMessageDialog(this, s);
}
//eventos
private void
btnreliminarActionPerformed(java.awt.event.ActionEvent evt) {
eliminar();
}
Página 13 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
FramePrincipal
Página 14 de 15
UNIVERSIDAD NACIONAL TECNOLÓGICA DE DE LIMA SUR
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
Página 15 de 15