POO - USAR CLASES PROPIAS EN UN PROYECTO:
Aplicación de una Clase Propia:
Una vez programada una Clase de
creación propia, podremos usar esta en uno de nuestros proyectos para crear
objetos de dicha clase. En este ejercicio guiado veremos un ejemplo sobre cómo
usar de forma práctica la clase SalaCine en un proyecto java hecho
con NetBeans.
DESARROLLEMOS EL SIGUIENTE
EJERCICIO:
La Corporación Cines AMANUVA nos encarga un programa para gestionar el funcionamiento de
las dos salas con las que cuenta.
La primera de
las salas es la “sala central”. En ella se proyectan las películas de estreno.
Es una sala grande, con 500 localidades. El precio para ver una película en
esta sala es de 8.00 euros.
La segunda de
las salas es la “sala secundaria”. En esta sala se proyectan películas
clásicas. Es una sala con un aforo más pequeño, concretamente, de 80
localidades. El precio para ver una película en esta sala es de 6.00 euros.
Se creará un
programa que nos permita controlar la entrada de personas en las salas y
podremos saber en todo momento el porcentaje de ocupación de cada sala y los
ingresos obtenidos.
- Crear un nuevo proyecto. Este proyecto se
llamará “Cines AMANUVA”, contendrá un paquete llamado paquetePrincipal
y este a su vez contendrá un JFrame llamado VentanaPrincipal.
El aspecto de la estructura del proyecto al crearlo será la siguiente:
- Diseña la ventana principal de forma que quede
parecida a la siguiente. Usa la ventana de diseño para hacer el diseño del
formulario. Los nombres de los componentes se indica a continuación.
- Antes de empezar la programación de cada botón
del programa, incluiremos en el proyecto la clase SalaCine, para así poder generar objetos del tipo “sala de
cine” y aprovecharlos en nuestro programa.
- Para añadir un fichero de clase propio en un proyecto Java con NetBeans, debes hacer clic derecho sobre el paquete donde quieras introducir la clase. En nuestro caso, haremos clic con el botón derecho sobre el paquetePrincipal, que es el único que tenemos:
- Elegiremos la opción Nuevo / Clase Java:
- Entonces tendremos que darle un nombre a
nuestro fichero de clase. Recuerda que el nombre debe ser el mismo que el
de la clase que queremos programar. En nuestro caso, SalaCine. Luego se pulsa el botón Terminar.
- Si vuelves a observar el esquema del proyecto,
verás que dentro del paquete principal ha aparecido un nuevo elemento,
llamado SalaCine. Este es el fichero donde programaremos nuestra
clase SalaCine.
- Si haces doble clic sobre el fichero SalaCine.java,
podrás ver en el centro de la ventana de NetBeans el código de dicha
clase. NetBeans añade cierto código a la clase para ahorrarnos trabajo,
por eso ya tendremos programado la instrucción inicial de la clase y
algunos comentarios que se añaden automáticamente:
- Ahora ya solo tendremos que completar la
programación de la clase, añadiendo las propiedades, el método constructor,
y añadiendo los distintos métodos que programamos en la hoja anterior.
Debes modificar el fichero SalaCine para que quede así:
/*
* To change this license header, choose
License Headers in Project Properties.
* To change this template file, choose Tools |
Templates
* and open the template in the editor.
*/
package
paquetePrincipal;
/**
*
* @author EdZu
*/
public
class SalaCine {
int aforo;
int butacasOcupadas;
String tituloPelicula;
double precioEntrada;
//Método Constructor
public SalaCine() {
aforo = 100;
butacasOcupadas = 0;
tituloPelicula = "";
precioEntrada = 5.0;
}
//Métodos set
//Método setAforo
public void setAforo(int afo) {
aforo = afo;
}
//Método setButacasOcupadas
public void setButacasOcupadas(int ocu) {
butacasOcupadas = ocu;
}
//Método setTituloPelicula
public void setTituloPelicula(String peli)
{
tituloPelicula = peli;
}
//Método setPrecioEntrada
public void setPrecioEntrada(double entra)
{
precioEntrada = entra;
}
//Método setButacasLibres
public void setButacasLibres(int lib) {
int ocu;
ocu = aforo - lib;
butacasOcupadas = ocu;
}
//Métodos get
//Método getAforo
public int getAforo() {
return aforo;
}
//Método getButacasOcupadas
public int getButacasOcupadas() {
return butacasOcupadas;
}
//Método getTituloPelicula
public String getTituloPelicula() {
return tituloPelicula;
}
//Método getPrecioEntrada
public double getPrecioEntrada() {
return precioEntrada;
}
//Método getButacasLibres
public int getButacasLibres() {
int lib;
lib = aforo - butacasOcupadas;
return lib;
}
//Método getPorcentajeOcupacion
public double getPorcentajeOcupacion() {
double porc;
porc = (double) butacasOcupadas * 100.0
/ (double) aforo;
return porc;
}
//Método getIngresosSala
public double getIngresosSala() {
double ingre;
ingre = butacasOcupadas *
precioEntrada;
return ingre;
}
//Métodos de orden
//Método vaciarSala
public void vaciarSala() {
butacasOcupadas = 0;
tituloPelicula = "";
}
//Método entraUno
public void entraUno() {
butacasOcupadas++;
}
}
- Ya hemos incluido la clase SalaCine
en nuestro proyecto. A partir de ahora podremos crear objetos del tipo SalaCine
y aprovechar sus características en nuestro programa.
- Empezaremos a programar la ventana principal
de nuestro programa. Haz doble clic sobre el fichero VentanaPrincipal.java
en la ventana de proyectos para pasar al diseño de la ventana principal:
- Nuestro programa principal, gestiona el
funcionamiento de dos salas de cine: la sala central y la sala
secundaria. Para facilitar nuestro trabajo, sería interesante
crear dos objetos globales del tipo SalaCine. Uno de ellos
representará a la sala central, y el otro a la sala
secundaria.
- Para ello, acude a la ventana de código de la
ventana principal:
- En la zona de variables globales de la ventana
principal declararemos dos objetos del tipo SalaCine:
- Es en el constructor de nuestra ventana
principal donde construiremos nuestros objetos de tipo sala. (Recuerda que
el constructor de tu ventana principal se suele usar para construir los
objetos que vas a usar en tu programa y asignarle las características que
tendrán dichos objetos al inicio).
- Recuerda que cuando se construyen objetos,
estos tienen por defecto unos valores iniciales. En el caso de los objetos
tipo SalaCine, sus valores son los siguientes:
Aforo 100,
Ocupación 0, Película (cadena vacía) y Entrada 5.0
Será necesario
modificar las características de ambas salas ya que no tienen los valores
correctos.
Se dijo al
comenzar el ejercicio que la sala central tenía las siguientes características:
Aforo: 500 y un
precio de entrada de 8 euros.
Por lo tanto, modificamos
las características del objeto en el constructor de la siguiente forma:
- En el caso de la sala secundaria sucede lo
mismo. Sus características son las siguientes:
Aforo: 80 Precio entrada: 6.0 euros.
Por tanto será
necesario modificar el objeto salaSecundaria para asignar estos
valores:
- Ya hemos incluido dos objetos del tipo SalaCine
a nuestro proyecto. Los hemos declarado en la ventana principal como
globales y los hemos construido dándoles las características apropiadas. A
partir de ahora, usaremos esos objetos en la programación de cada botón de
la ventana.
- Empezaremos programando el botón btnCentralCambiar.
El objetivo de este botón es asignar a la sala central un título de
película. Ese título se debe mostrar también en la etiqueta etiCentralPelicula:
- Dentro del evento actionPerformed del
botón btnCentralCambiar programa lo siguiente:
El
código de este botón hace lo siguiente:
-
Le pide al usuario que introduzca el título para la
película, usando un JOptionPane.showInputDialog. El título introducido se recoge en
una variable de cadena llamada titulo.
-
Luego se asigna dicho título a la sala central de
Cines AMANUVA. Esta línea es interesante, ya que se usa el método setTituloPelicula
del objeto salaCentral para asignar el título de la película.
-
Y finalmente se coloca el título en la etiqueta
para que el usuario pueda verlo.
- Ejecuta el programa y observa el
funcionamiento del botón.
- Ahora se programará el botón btnCentralNuevaEntrada:
Cada vez que un
espectador compre una entrada para la sala central, el usuario del programa
deberá pulsar este botón. Internamente el programa debe decirle al objeto salaCentral
que ha entrado una nueva persona en la sala. Esto se hace con el método entraUno.
Así pues,
programe en el evento actionPerformed del botón btnCentralNuevaEntrada
de la siguiente forma:
Como puedes ver,
simplemente se le informa al objeto salaCentral que ha entrado una nueva persona usando el método entraUno.
- Programaremos ahora el botón btnCentralPorcentajeOcupacion.
Este botón nos mostrará información sobre la sala central. Concretamente
este botón debe mostrar lo siguiente:
Película que se
está proyectando.
Aforo total de
la sala.
Butacas
Ocupadas.
Butacas Libres.
Porcentaje de Ocupación.
Para mostrar
toda esta información, será necesario pedirle al objeto salaCentral que nos dé
información de la sala. Esto lo conseguiremos usando los distintos métodos get
del objeto.
Estudia
atentamente la programación del botón btnCentralPorcentajeOcupacion:
Observa
el código:
-
Primero se crea una variable tipo cadena llamada info
(información).
-
A continuación, se van concatenando textos a la
variable de cadena. Recuerda que los \n permiten añadir saltos de línea.
-
Observa como se va pidiendo información al objeto a
través de métodos get y se va concatenando esta información a la variable info.
-
Finalmente se presenta el texto de la variable info
en un JOptionPane.
- Ejecuta el programa para observar el
funcionamiento de los tres botones que se han programado. Asigna una
película a la sala central, luego pulsa varias veces el botón Nueva Entrada y pulsa el botón % Ocupación para ver información
sobre la sala:
- A continuación se programará el botón Vaciar
correspondiente a la sala central (btnCentralVaciar) Este botón
debe situar la ocupación de la sala a cero y quitar la película asignada a
la sala central.
Programa en el evento actionPerformed del botón lo
siguiente:
Como puedes
observar, el código es muy simple. Solo tengo que ordenar al objeto salaCentral que se vacíe. Debido a que ya no hay
película asignada a la sala central, es conveniente también borrar el contenido
de la etiqueta que muestra el título de la película.
- Programaremos ahora el botón Ingresos
del panel de la sala central. Este botón nos debe dar información sobre
los ingresos producidos por la sala en el momento en que se pulsa. Esta
información la mostraremos en un JOptionPane. Programa el evento
actionPerformed
de este botón como sigue:
Como puedes ver,
la programación es bastante sencilla. Solo hay que pedirle al objeto salaCentral
que nos diga los ingresos correspondientes.
Observa la
ventaja de usar objetos. No tenemos que hacer ningún cálculo aquí. Solo tenemos
que pedirle al objeto que haga el cálculo necesario por nosotros. Dicho de otra
forma, hacemos que ellos hagan el trabajo por nosotros.
- Ejecuta el programa para comprobar el
funcionamiento de estos botones. Asigna una película a la sala central,
vende algunas entradas, comprueba el porcentaje de ocupación y luego
comprueba los ingresos. Vacía la sala central, y vuelve a comprobar el
porcentaje de ocupación y los ingresos actuales.
EJERCICIO
El segundo de los paneles hace
referencia a la sala secundaria. Su funcionamiento es el mismo que el de la
sala central. Se pide que programe todos los botones correspondientes a la sala
secundaria.
La programación es prácticamente
igual, solo hay que actuar sobre el objeto salaSecundaria en vez del objeto salaCentral.
EJERCICIO
El botón Ingresos Totales de la ventana, debería mostrar en un JOptionPane
la suma de los ingresos actuales de ambas salas. Programe dicho botón. Solo
tiene que pedirle a cada objeto: salaCentral y salaSecundaria que le de
sus ingresos, y sumar ambos.
CONCLUSIONES:
Se pueden añadir a un proyecto Java clases programadas por uno mismo.
Al hacer esto, en el mismo proyecto podemos crear objetos de dichas
clases y usarlos para hacer el programa.
En general, un proyecto java está constituido por un grupo de clases,
algunas de las cuales serán de creación propia. En el programa usaremos objetos
derivados de dichas clases.
No hay comentarios.:
Publicar un comentario