Está en la página 1de 7

 

PROGRAMACION ORIENTADA A OBJETOS 

EJERCICIOS

Ejercicio 1
Diseñe una clase de nombre Producto con los siguientes atributos privados: código (cadena),
descripción (cadena), precio (real) y con los métodos públicos get/set. Considere los
constructores adecuados.
 public class Producto
{
// atributos privados
prívate String codigo, descripcion;
prívate double precio;

// métodos get
public String getCodigo()
{
return codigo;
}
public String getDescripcion()
{
return descripcion;
}
public double getPrecio()
{
return precio;
}

// métodos set
public void setCodigo(String c)
{
codigo =c;
}
public void setDescripcion(String d)
{
descripcion=d;
}
public void setPrecio(double p)
{
precio=p;
}

Implemente el siguiente diseño


diseño GUI y programe la acción de los botones Grab
Grabar
ar y Mostrar :

Ing. Juan Vera Castillo Página 1


 

 private void btnGrabarActionPerformed(java.awt.event.ActionEvent evt)


evt)
{
// crea un objeto nuevo de la clase Producto
Producto nuevo = new Producto();

// extrae los valores de la GUI y los coloca en el nuevo objeto


nuevo.setCodigo(txtCod.getText());
nuevo.setDescripcion(txtDescrip.getText());
nuevo.setPrecio(txtPrecio.getText());

Qué datos se pasan al constructor del objeto creado?. Observe y responda.

// método que muestra la información del objeto de la clase Producto


 private void btnMostrarActionPerformed(java.awt.event.ActionEvent evt)
{
txtSalida.append("Codigo\t: " + p.getCodigo() + "\n");
txtSalida.append("Descripcion\t: " + p.getDescripcion()+"\");
txtSalida.append("Precio\t: " + p.getPrecio());
}

Ejercicio 2
Diseñe una clase de nombre Persona con los siguientes atributos privados: nombres
(cadena),
Considere apellidos (cadena),
los constructores. edad(entero),
Aplique peso(real)
el siguiente y con
diseño GUI los métodos
y programe get/set.
la acción de
los botones Grabar y Mostrar

Ejercicio 3
Diseñe una clase de nombre TV con los siguientes atributos privados: serie (cadena),
marca (entero), tamaño en pulgadas(entero), precio (real) y con los métodos get/set,
con un método adicional que devuelve el precio en soles dado el tipo de cambio como
parámetro, y con un método adicional que retorne el nombre de la marca.

Considere las siguientes marcas: Sony, LG, Samsung, Panasonic, otro.

Considere los constructores adecuados. Implemente el siguiente diseño de la GUI y


programe la acción de los botones Grabar y Mostrar.

Ing. Juan Vera Castillo Página 2


 

Ejercicio 4
Diseñe una clase de nombre Fecha con los siguientes atributos privados: dia(entero),
mes(entero), año(entero)
año(entero) y con los métodos get/set.

Diseñe otra clase de nombre DNI con los siguientes atributos privados:
numero(cadena), dueño(Persona), fecha de emisión (Fecha), fecha de
caducidad(Fecha)
caducidad(Fecha) y con los métodos get/set.

Implemente el siguiente diseño de la GUI y programe la acción de los botones Grabar


y Mostrar.

Ing. Juan Vera Castillo Página 3


 

Ejercicios con clases de control

Una clase de control o administradora es aquella que tiene todo lo necesario para administrar
información de cualquier tipo, considerando los atributos y la funcionalidad necesarios para
ello.

Una clase de control o administradora con arreglos utiliza como atributos : el arreglo y el

contador para contar cuantos


c uantos datos se están almacenando.
En el constructor de la clase
cl ase de control o administradora se dimensiona el arreglo y se inicializa
el contador.

Parte de su funcionalidad está orientada al mantenimiento de información que involucra los


siguientes procesos : agregar, eliminar, consultar, reemplazar, listar.

Los procesos adicionales que formen parte de su funcionalidad dependerá del alcance que se
desee brindarle a la clase, por ejemplo sumar todos los valores, encontrar el promedio, hallar
el mayor valor, hallar el menor valor, etc. 

Ejercicio 1

Diseñe una clase administradora de valores enteros en un arreglo, que permita realizar los
procesos que se indican en la siguiente interface gráfica de usuario: 

Diseñe una clase de nombre ArregloDeEnteros con los siguientes atributos privados : un
arreglo de enteros (tal como a[]), un contador(contador n) para saber cuántos enteros se van
almacenando en el arreglo
arreglo (entero). El tamaño máximo del arreglo será 30.

 public class ArregloDeEnteros


{
// atributos privados
private int a[]; // arreglo de enteros
private int n; // contador de numeros almacenados en el arreglo
private final int tamaño = 30; // tamaño fijo del arreglo

// constructor
public ArregloDeEnteros()
{
// creando el arreglo e inicializando el contador
a = new int[tamaño]; n = 0;
}
}

Ing. Juan Vera Castillo Página 4


 

Considere los métodos get/set de todos los atributos, excepto del atributo tamaño que
sólo debe tener método get pero no set porque es una constante(variable final). Luego,
escriba los métodos de administración del arreglo.

 public class ArregloDeEnteros


{
// atributos privados
private int a[]; // arreglo de enteros
private int n; // numero de enteros en el arreglo
private final int tamaño = 30; // constante, valor fijo

// constructor
public ArregloDeEnteros()
{
a = new int[tamaño]; n = 0;
}
// métodos get-set
public int[] getA()
{
return a;
}
public void setA(int[] a)
{
this.a = a;
}
public int getN()
{
return n;
}
public void setN(int n)
{
this.n = n;
}
public int getTamaño()
{
return tamaño;
}
// métodos de administr
administrativos
ativos
public void agrega(int num)
{
if(n<tamaño)
{
a[n] = num; n++;
}
}
public void elimina(int p)
{
for(int i=p ; i<n-1; i++)
a[i] = a[i+1];
n--;
}
public int busca(int num)
{
for(int i=0; i<n; i++)
{
if(a[i]==num)
return i;
}
return -1;
}

public int getNum(int i)


{
return a[i];
}

Ing. Juan Vera Castillo Página 5


 

public void setNum(int num, int p)


{
a[p] = num;
}
public int sumaTodo()
{
int suma=0;
for(int i=0; i<n; i++)
suma = suma + a[i];

return suma;
}
public double promedio()
{
return sumaTodo()/n;
}
public int elMayor()
{
int m=a[0];
for(int i=0; i<n; i++)
if(a[i]>m) m=a[i];

return m;
}
public int elMenor()
{
int m=a[0];
for(int i=0; i<n; i++)
if(a[i]<m)
m=a[i];

return m;
}

En la clase gestora PanelPrincipal declare como atributo, un puntero de la clase


ArregloDeEnteros y en el constructor instancie ésta clase para que pueda ser utilizado en la
programación de todos los botones.

public class PanelPrincipal extends javax.swing.JPanel


{
 private ArregloDeEnteros ae;
ae; // puntero a la clase ArregloDeEnteros

public PanelPrincipal()
{
initComponents();
ae = new ArregloDeEnteros();
}

Vamos a programar la acción del botón Nuevo:

private void btnNuevoActionPerfo


btnNuevoActionPerformed(java.awt.event.Act
rmed(java.awt.event.ActionEvent
ionEvent evt)
{
int num =Integer.parseInt( txtNum.getText(
txtNum.getText());
));
ae.busca(num);
int p= ae.busca(num);
if(p>=0)
mensaje("Error:
mensaje("Err or: El número ingresado ya existe");
else
{
ae.agrega(num);
ae.agrega (num);
}
}

Ing. Juan Vera Castillo Página 6


 

public void mensaje(String s)


{
JOptionPane.showMessageDialog(th
JOptionPane.showMe ssageDialog(this,
is, s);
}

Observe que en la programación del botón Nuevo se evita la repetición del número
ingresado. Vamos a programar la acción del botón Lista:

private void btnListaAction


btnListaActionPerformed(java.awt.event.Actio
Performed(java.awt.event.ActionEvent
nEvent evt)
{
i<ae.getN();
for(int i=0; i<ae.getN(); i++)
{
txtaD.append("a["+i+"]\t:
txtaD.append("a ["+i+"]\t: " + ae.getNum(i));
ae.getNum(i));
}
}

Vamos a programar la acción del botón Elimina:

private void btnEliminaActio


btnEliminaActionPerformed(java.awt.event.Ac
nPerformed(java.awt.event.ActionEvent
tionEvent evt)
{
int num = Integer.parseInt(txtNum.ge
Integer.parseInt(txtNum.getText());
tText());
p=ae.busca(num);
int p=ae.busca (num);
if(p==-1)
mensaje("Error: El número ingresado NO existe");
else
{
ae.elimina(p);
ae.elimina(p);
}
}

Vamos a programar la acción del botón Reporte:

private void btnReporteAc


btnReporteActionPerformed(java.awt.even
tionPerformed(java.awt.event.ActionEvent
t.ActionEvent evt)
{
txaD.setText("");
imprime("El menor
menor valor es\t: " + ae. elMenor());
ae.elMenor ());
imprime("El valor
valor promedio es\t: " + ae. promedio());
ae.promedio ());
imprime("El mayor
mayor valor es\t: " + ae.elMayor());
ae.elMayor ());
}

Vamos a programar la acción del botón Reinicia:

private void btnReiniciaA


btnReiniciaActionPerformed(java.awt.event.Ac
ctionPerformed(java.awt.event.ActionEvent
tionEvent evt)
{
ae.setN(0);
ae.setN (0);
mensaje(“El arreglo está vacío.”);

Ing. Juan Vera Castillo Página 7

También podría gustarte