Vous êtes sur la page 1sur 7

Ing.

Juan Vera Castillo Pgina 1



PROGRAMACION ORIENTADA A OBJETOS
EJERCICIOS
Ejercicio 1
Disee una clase de nombre Producto con los siguientes atributos privados: cdigo (cadena),
descripcin (cadena), precio (real) y con los mtodos pblicos get/set. Considere los
constructores adecuados.
public class Producto
{
// atributos privados
prvate String codigo, descripcion;
prvate double precio;

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

// mtodos 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 diseo GUI y programe la accin de los botones Grabar y Mostrar :













Ing. Juan Vera Castillo Pgina 2

private void btnGrabarActionPerformed(java.awt.event.ActionEvent 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.


// mtodo que muestra la informacin 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

Disee una clase de nombre Persona con los siguientes atributos privados: nombres
(cadena), apellidos (cadena), edad(entero), peso(real) y con los mtodos get/set.
Considere los constructores. Aplique el siguiente diseo GUI y programe la accin de
los botones Grabar y Mostrar





Ejercicio 3

Disee una clase de nombre TV con los siguientes atributos privados: serie (cadena),
marca (entero), tamao en pulgadas(entero), precio (real) y con los mtodos get/set,
con un mtodo adicional que devuelve el precio en soles dado el tipo de cambio como
parmetro, y con un mtodo adicional que retorne el nombre de la marca.

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

Considere los constructores adecuados. Implemente el siguiente diseo de la GUI y
programe la accin de los botones Grabar y Mostrar.


Ing. Juan Vera Castillo Pgina 3




















Ejercicio 4

Disee una clase de nombre Fecha con los siguientes atributos privados: dia(entero),
mes(entero), ao(entero) y con los mtodos get/set.

Disee otra clase de nombre DNI con los siguientes atributos privados:
numero(cadena), dueo(Persona), fecha de emisin (Fecha), fecha de
caducidad(Fecha) y con los mtodos get/set.

Implemente el siguiente diseo de la GUI y programe la accin de los botones Grabar
y Mostrar.
















Ing. Juan Vera Castillo Pgina 4

Ejercicios con clases de control

Una clase de control o administradora es aquella que tiene todo lo necesario para administrar
informacin 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 datos se estn almacenando.

En el constructor de la clase de control o administradora se dimensiona el arreglo y se inicializa
el contador.

Parte de su funcionalidad est orientada al mantenimiento de informacin 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

Disee una clase administradora de valores enteros en un arreglo, que permita realizar los
procesos que se indican en la siguiente interface grfica de usuario:









Disee una clase de nombre ArregloDeEnteros con los siguientes atributos privados : un
arreglo de enteros (tal como a[]), un contador(contador n) para saber cuntos enteros se van
almacenando en el arreglo (entero). El tamao mximo 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 tamao = 30; // tamao fijo del arreglo

// constructor
public ArregloDeEnteros()
{
// creando el arreglo e inicializando el contador
a = new int[tamao]; n = 0;
}
}
Ing. Juan Vera Castillo Pgina 5

Considere los mtodos get/set de todos los atributos, excepto del atributo tamao que
slo debe tener mtodo get pero no set porque es una constante(variable final). Luego,
escriba los mtodos de administracin 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 tamao = 30; // constante, valor fijo

// constructor
public ArregloDeEnteros()
{
a = new int[tamao]; n = 0;
}
// mtodos 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 getTamao()
{
return tamao;
}
// mtodos de administrativos
public void agrega(int num)
{
if(n<tamao)
{
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 Pgina 6

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
programacin de todos los botones.

public class PanelPrincipal extends javax.swing.JPanel
{
private ArregloDeEnteros ae; // puntero a la clase ArregloDeEnteros

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

Vamos a programar la accin del botn Nuevo:

private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt)
{
int num =Integer.parseInt( txtNum.getText());
int p= ae.busca(num);
if(p>=0)
mensaje("Error: El nmero ingresado ya existe");
else
{
ae.agrega(num);
}
}


Ing. Juan Vera Castillo Pgina 7

public void mensaje(String s)
{
JOptionPane.showMessageDialog(this, s);
}


Observe que en la programacin del botn Nuevo se evita la repeticin del nmero
ingresado. Vamos a programar la accin del botn Lista:

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

Vamos a programar la accin del botn Elimina:

private void btnEliminaActionPerformed(java.awt.event.ActionEvent evt)
{
int num = Integer.parseInt(txtNum.getText());
int p=ae.busca(num);
if(p==-1)
mensaje("Error: El nmero ingresado NO existe");
else
{
ae.elimina(p);
}
}

Vamos a programar la accin del botn Reporte:

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

Vamos a programar la accin del botn Reinicia:

private void btnReiniciaActionPerformed(java.awt.event.ActionEvent evt)
{
ae.setN(0);
mensaje(El arreglo est vaco.);
}

Vous aimerez peut-être aussi