30 Poo Proyectos Con Clases Propias

download 30 Poo Proyectos Con Clases Propias

of 15

Transcript of 30 Poo Proyectos Con Clases Propias

  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    1/15

    Curso de Java Avanzado

    http://procesinc.com/

    EJERCICIO GUIADO. JAVA AVANZADO: USAR CLASES PROPIAS EN UNPROYECTO

    Aplicacin de una Clase Propia

    Una vez programada una Clase de creacin propia, podremos usar esta en uno de nuestros proyectospara crear objetos de dicha clase. En este ejercicio guiado veremos un ejemplo sobre cmo usar deforma prctica la clase SalaCineen un proyecto java hecho con NetBeans.

    EJERCICIO GUIADO

    El Multicines Avenida nos encarga un programa para gestionar el funcionamiento de las dos salascon las que cuenta este pequeo multicines.

    La primera de las salas es la sala central. En ella se proyectan los estrenos. Es una sala grande,con 500 localidades. El precio para ver una pelcula en esta sala es de 8.00 euros.

    La segunda de las salas es la sala de versiones originales. En esta sala se proyectan pelculasclsicas en versin original. Es una sala con un aforo ms pequeo, concretamente, de 80localidades. El precio para ver una pelcula en esta sala es de 6.00 euros.

    Se crear un programa que nos permita controlar la entrada de personas en las salas y podremossaber en todo momento el porcentaje de ocupacin de cada sala y los ingresos obtenidos.

    1. Crear un nuevo proyecto. Este proyecto se llamar multicines, contendr un paquete llamadopaqueteprincipaly este a su vez contendr un JFrame llamado ventanaprincipal. El aspectode la estructura del proyecto al crearlo ser la siguiente:

    2. Disear la ventana principal de forma que quede parecida a la siguiente. Usa la ventana dediseo para hacer el diseo del formulario. Los nombres de los componentes se indica acontinuacin.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    2/15

    Curso de Java Avanzado

    http://procesinc.com/

    Etiqueta:

    etiCentralPelicula

    Etiqueta:

    etiOriginalPelicula

    Botones:

    btnOriginalNuevabtnOriginalOcupacionbtnOriginalVaciarbtnOriginalIngresosbtnOriginalCambiar

    Botn

    btnIngresosTotales

    Botones:

    btnCentralNuevabtnCentralOcupacionbtnCentralVaciarbtnCentralIngresosbtnCentralCambiar

    Panel:

    panelCentral

    Panel:

    panelVOriginal

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    3/15

    Curso de Java Avanzado

    http://procesinc.com/

    3. Antes de empezar la programacin de cada botn del programa, incluiremos en el proyecto laclase SalaCine, para as poder generar objetos del tipo sala de cine y aprovecharlos ennuestro programa.

    4. Para aadir un fichero de clase propio en un proyecto Java con NetBeans, debes hacer cliccon el botn derecho sobre el paquete donde quieras introducir la clase. En nuestro caso,haremos clic con el botn derecho sobre elpaqueteprincipal, que es el nico que tenemos:

    5. Elegiremos la opcin Nuevo / Clase Java

    6. Entonces tendremos que darle un nombre a nuestro fichero de clase. Recuerda que elnombre debe ser el mismo que el de la clase que queremos programar. En nuestro caso,SalaCine. Luego se pulsa el botn Terminar.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    4/15

    Curso de Java Avanzado

    http://procesinc.com/

    7. Si vuelves a observar el esquema del proyecto, vers que dentro del paquete principal haaparecido un nuevo elemento, llamado SalaCine. Este es el fichero donde programaremosnuestra clase SalaCine.

    8. Si haces doble clic sobre el fichero SalaCine.java, podrs ver en el centro de la ventana deNetBeans el cdigo de dicha clase. NetBeans aade cierto cdigo a la clase para ahorrarnostrabajo, por eso ya tendremos programado la instruccin inicial de la clase junto con elcomienzo del constructory algunos comentarios que se aaden automticamente:

    El fichero de la clase SalaCine

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    5/15

    Curso de Java Avanzado

    http://procesinc.com/

    9. Ahora ya solo tendremos que completar la programacin de la clase, aadiendo laspropiedades, completando el constructor, y aadiendo los distintos mtodos queprogramamos en la hoja anterior. Debes modificar el fichero SalaCinepara que quede as:

    Inicio de la clase

    Preparacin del constructor

    Esta instruccin, generada por NetBeans,indica que la clase SalaCineestprogramada dentro delpaqueteprincipal

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    6/15

    Curso de Java Avanzado

    http://procesinc.com/

    /*

    * SalaCine.java

    *

    * Created on 2 de agosto de 2007, 12:14

    *

    * To change this template, choose Tools | Template Manager

    * and open the template in the editor.

    */

    package paqueteprincipal;

    /**

    *

    * @author didact

    */

    public class SalaCine {

    //propiedades

    int Aforo;

    int Ocupadas;

    String Pelicula;double Entrada;

    /** Creates a new instance of SalaCine */

    //Constructor

    public SalaCine() {

    Aforo = 100;

    Ocupadas = 0;

    Pelicula = "";

    Entrada = 5.0;

    }

    //Mtodos set

    //Mtodo setAforo

    public void setAforo(int afo) {

    Aforo = afo;

    }

    //Mtodo setOcupadas

    public void setOcupadas(int ocu) {

    Ocupadas = ocu;

    }

    //Mtodo setPelicula

    public void setPelicula(String peli) {Pelicula = peli;

    }

    //Mtodo setEntrada

    public void setEntrada(double entra) {

    Entrada = entra;

    }

    //Mtodo setLibres

    public void setLibres(int lib) {

    int ocu;

    ocu = Aforo - lib;

    Ocupadas = ocu;}

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    7/15

    Curso de Java Avanzado

    http://procesinc.com/

    //Mtodos get

    //Mtodo getAforo

    public int getAforo() {

    return Aforo;

    }

    //Mtodo getOcupadas

    public int getOcupadas() {

    return Ocupadas;

    }

    //Mtodo getPelicula

    public String getPelicula() {

    return Pelicula;

    }

    //Mtodo getEntrada

    public double getEntrada() {

    return Entrada;}

    //Mtodo getLibres

    public int getLibres() {

    int lib;

    lib = Aforo Ocupadas;

    return lib;

    }

    //Mtodo getPorcentaje

    public double getPorcentaje() {

    double por;

    por = (double) Ocupadas / (double) Aforo * 100.0;return por;

    }

    //Mtodo getIngresos

    public double getIngresos() {

    double ingre;

    ingre = Ocupadas * Entrada;

    return ingre;

    }

    //Mtodos de orden

    //Mtodo Vaciarpublic void Vaciar() {

    Ocupadas = 0;

    Pelicula = "";

    }

    //Mtodo entraUno

    public void entraUno() {

    Ocupadas++;

    }

    }

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    8/15

    Curso de Java Avanzado

    http://procesinc.com/

    10. Ya hemos incluido la clase SalaCineen nuestro proyecto. A partir de ahora podremos crearobjetos del tipo SalaCiney aprovechar sus caractersticas en nuestro programa.

    11. Empezaremos a programar la ventana principal de nuestro programa. Haz doble clic sobre elfichero ventanaprincipal.javaen la ventana de proyectos para pasar al diseo de la ventanaprincipal:

    12. Nuestro programa principal, gestiona el funcionamiento de dos salas de cine: la sala central yla sala de versiones originales. Para facilitar nuestro trabajo, sera interesante crear dosobjetos globales del tipo SalaCine. Uno de ellos representar la sala central, y el otro la salade versiones originales.

    13. Para ello, acude a la ventana de cdigo de la ventana principal:

    14. En la zona de variables globales de la ventana principal declararemos dos objetos del tipoSalaCine:

    15. Es en el constructor de nuestra ventana principal donde construiremos nuestros objetos detipo sala. (Recuerda que el constructor de tu ventana principal se suele usar para construir losobjetos que vas a usar en tu programa y asignarle las caractersticas que tendrn dichosobjetos al inicio)

    Creamos dos objetossala de cine

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    9/15

    Curso de Java Avanzado

    http://procesinc.com/

    16. 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, Ocupacin 0, Pelcula (cadena vaca) y Entrada 5.0

    Ser necesario modificar las caractersticas de ambas salas ya que no tienen ahora mismolos valores correctos.

    Se dijo al comenzar el ejercicio que la sala central tena las siguientes caractersticas:

    Aforo: 500 y un precio de entrada de 8 euros.

    Por lo tanto, modificamos las caractersticas del objeto en el constructor de la siguiente forma:

    17. En el caso de la sala de versin original sucede lo mismo. Sus caractersticas son lasiguientes:

    Aforo: 80. Precio entrada: 6.0 euros.

    Por tanto ser necesario modificar el objeto vopara asignar estos valores:

    Construimos losobjetos.

    Modificamos lascaractersticas del objetocentral(sala central)

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    10/15

    Curso de Java Avanzado

    http://procesinc.com/

    18. Ya hemos incluido dos objetos del tipo SalaCineen nuestro proyecto. Los hemos declaradoen la ventana principal como globales y los hemos construido dndoles las caractersticasapropiadas. A partir de ahora, usaremos esos objetos en la programacin de cada botn de la

    ventana.

    19. Empezaremos programando el botn btnCentralCambiar. El objetivo de este botn es asignara la sala central un ttulo de pelcula. Ese ttulo se debe mostrar tambin en la etiquetaetiCentralPelicula:

    20. Entra en el actionPerformeddel botn btnCentralCambiary programa lo siguiente:

    El cdigo de este botn hace lo siguiente:

    - Le pide al usuario que introduzca un ttulo para la pelcula, usando unJOptionPane.showInputDialog. El ttulo introducido se recoge en una variable de cadenallamada titulo.

    - Luego se asigna dicho ttulo a la sala central del multicines. Esta lnea es interesante, ya quese usa el mtodo setPeliculadel objeto centralpara asignar el ttulo de la pelcula.

    - Y finalmente se coloca el ttulo en la etiqueta para que el usuario pueda verlo.

    Modificamos lascaractersticas del objetovo(sala versin original)

    Cambia el ttulode la pelcula dela sala central.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    11/15

    Curso de Java Avanzado

    http://procesinc.com/

    21. Ejecuta el programa y observa el funcionamiento del botn.

    22. Ahora se programar el botn btnCentralNueva:

    Cada vez que un espectador compre una entrada para la sala central, el usuario del programadeber pulsar este botn. Internamente, el programa debe decirle al objeto centralque haentrado una nueva persona en la sala. Esto se hace con el mtodo entraUno.

    As pues, programe el actionPerformeddel botn btnCentralNuevade la siguiente forma:

    Como puedes ver, simplemente se le informa al objeto central (sala central) que ha entradouna nueva persona usando el mtodo entraUno.

    23. Programaremos ahora el botn btnCentralOcupacion. Este botn nos mostrar informacinsobre la sala central. Concretamente, este botn debe mostrar lo siguiente:

    Pelcula que se est proyectando.Aforo total de la sala.Butacas Ocupadas.Butacas Libres.Porcentaje de ocupacin.

    Para mostrar toda esta informacin, ser necesario pedirle al objeto central(sala central) quenos de informacin de la sala. Esto lo conseguiremos usando los distintos mtodos getdelobjeto.

    Estudia atentamente la programacin del botn btnCentralOcupacion:

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    12/15

    Curso de Java Avanzado

    http://procesinc.com/

    Observa el cdigo:

    - Primero se crea una variable de cadena llamada info(informacin)

    - A continuacin, se van concatenando textos a la variable de cadena. Recuerda que los \npermiten aadir saltos de lnea.

    - Observa como se va pidiendo informacin al objeto a travs de mtodos get y se vaconcatenando esta informacin a la variable info.

    - Finalmente se presenta el texto de la variable info en un JOptionPane.

    24. Ejecuta el programa para observar el funcionamiento de los tres botones que se hanprogramado. Asigna una pelcula a la sala central, luego pulsa varias veces el botn NuevaVentay pulsa el botn %Ocupacinpara ver informacin sobre la sala:

    Cambia el ttulode la pelculaasignada a la salacentral

    Pulsa este botn variasveces, para simular laventa de variasentradas.

    Pulsa aqu para verinformacin actualizadasobre la ocupacin de la

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    13/15

    Curso de Java Avanzado

    http://procesinc.com/

    25. A continuacin se programar el botn Vaciarde correspondiente a la sala central(btnCentralVaciar) Este botn debe situar la ocupacin de la sala a cero y quitar la pelculaasignada a la sala central.

    Programa en el actionPerformeddel botn lo siguiente:

    Como puedes observar, el cdigo es muy simple. Solo tengo que ordenar al objeto central(sala central) que se vace. Debido a que ya no hay pelcula asignada a la sala central, esconveniente tambin borrar el contenido de la etiqueta que muestra el ttulo de la pelcula.

    26. Programaremos ahora el botn Ingresosdel panel de la sala central. Este botn nos debe darinformacin sobre los ingresos producidos por la sala en el momento en que se pulsa. Estainformacin la mostraremos en un JOptionPane. Programa el actionPerformedde este botncomo sigue:

    Como puedes ver, la programacin es bastante sencilla. Solo hay que pedirle al objeto central(sala central) que nos diga los ingresos correspondientes.

    Observa la ventaja de usar objetos. No tenemos que hacer ningn clculo aqu. Solo tenemosque pedirle al objeto que haga el clculo necesario por nosotros. Dicho de otra forma,hacemos que ellos hagan el trabajo por nosotros.

    27. Ejecuta el programa para comprobar el funcionamiento de estos botones. Asigna una pelcula

    a la sala central, vende algunas entradas, comprueba el porcentaje de ocupacin y luegocomprueba los ingresos. Vaca la sala central, y vuelve a comprobar el porcentaje deocupacin y los ingresos actuales.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    14/15

    Curso de Java Avanzado

    http://procesinc.com/

    EJERCICIO

    El segundo de los paneles hace referencia a la sala de versiones originales. Su funcionamiento es elmismo que el de la sala central. Se pide que programe todos los botones correspondientes a la salade versiones originales.

    La programacin es prcticamente igual, solo hay que actuar sobre el objeto voen vez del objetocentral.

    EJERCICIO

    El botn IngresosTotalesde la ventana, debera mostrar en un JOptionPane la suma de los ingresosactuales de ambas salas. Programe dicho botn. Solo tiene que pedirle a cada objeto: centraly voque le de sus ingresos, y sumar ambos.

    Asigna una pelcula yvende variasentradas

    luego comprueba el% de ocupacin y losingresos

    prueba a vaciar la sala yluego vuelve a comprobarla ocupacin y losin resos

    http://procesinc.com/http://procesinc.com/http://procesinc.com/
  • 8/13/2019 30 Poo Proyectos Con Clases Propias

    15/15

    Curso de Java Avanzado

    http://procesinc.com/

    CONCLUSIN

    Se pueden aadir a un proyecto Java clases programadas por uno mismo.

    Al hacer esto, en el mismo proyecto podemos crear objetos de dichas clases y usarlospara hacer el programa.

    En general, un proyecto java est constituido por un grupo de clases, algunas de lascuales sern de creacin propia. En el programa usaremos objetos derivados dedichas clases.

    http://procesinc.com/http://procesinc.com/http://procesinc.com/