29 Poo Programacion de Una Clase
29 Poo Programacion de Una Clase
29 Poo Programacion de Una Clase
CLASE SALACINE Nombre de la Clase: SalaCine Propiedades de los objetos SalaCine: Aforo Ocupadas Pelcula Entrada - nmero entero (int) - nmero entero (int) - cadena (String) - nmero decimal (double)
Valores por defecto de los objetos del tipo SalaCine: Aforo: 100 Ocupadas: 0 Pelcula: (cadena vaca) Entrada: 5 Mtodos de los objetos del tipo SalaCine: Mtodos de asignacin de propiedades (set) setAforo setOcupadas setLibres setPelicula setEntrada - modifica la propiedad Aforo - modifica la propiedad Ocupadas - modifica la propiedad Ocupadas tambin - modifica la propiedad Pelcula - modifica la propiedad Entrada
Mtodos de peticin de informacin (get) getAforo getOcupadas getLibres getPorcentaje getIngresos getPelicula getEntrada - devuelve el valor de la propiedad Aforo - devuelve el valor de la propiedad Ocupadas - devuelve el nmero de butacas libres - devuelve el porcentaje de ocupacin de la sala - devuelve los ingresos obtenidos por la venta de entradas - devuelve el valor de la propiedad Pelcula - devuelve el valor de la propiedad Entrada
Mtodos de orden Vaciar entraUno - vaca la ocupacin de la sala y borra la pelcula - le indica al objeto que ha entrado una persona ms en la sala
http://procesinc.com/
Fichero de la Clase La programacin de una clase de objetos se realiza en un fichero aparte, cuyo nombre es exactamente el mismo que el de la propia clase, y cuya extensin es .java. Por ejemplo, si queremos programar la clase SalaCine, esto se debe hacer en un fichero llamado: SalaCine.java Cuando programemos esta clase dentro de NetBeans, veremos las facilidades que nos proporciona este para la creacin de la clase. De momento, solo veremos de forma terica como hay que programar la clase. (No tiene que introducir lo que viene a continuacin en ningn sitio)
Estructura bsica de la Clase Dentro del fichero de la clase, comenzar la programacin de esta de la siguiente forma: public class SalaCine {
} La programacin de una clase comienza siempre con una lnea de cdigo como la que sigue: public class NombreDeLaClase { } Toda la programacin de la clase se introducir dentro de las dos llaves.
Propiedades de la Clase Lo primero que se debe introducir en la clase que se est programando son las propiedades. Las propiedades de una clase son bsicamente variables globales de sta. Si introducimos las propiedades de la clase SalaCine, esta nos quedara as: public class SalaCine { int Aforo; int Ocupadas; String Pelcula; double Entrada; }
Constructor de la Clase Cuando se plante la clase SalaCine, se tuvo que decidir qu valores iniciales deberan tener las propiedades de la clase. Para asignar estos valores iniciales, es necesario programar lo que se denomina el Constructor.
http://procesinc.com/
Constructor
Mtodos del tipo set Todas las clases suelen contener mtodos del tipo set. Recuerda que estos mtodos permiten asignar valores a las propiedades de la clase. Debes tener en cuenta tambin que cuando se habla de mtodo de una clase, en realidad se est hablando de un procedimiento o funcin, que puede recibir como parmetro determinadas variables y que puede devolver valores. Los mtodos del tipo set son bsicamente procedimientos que reciben valores como parmetros que introducimos en las propiedades. Estos mtodos no devuelven nada, as que son void. Se recomienda, que el parmetro del procedimiento se llame de forma distinta a la propiedad que se asigna. Veamos la programacin del mtodo setAforo, de la clase SalaCine: public void setAforo(int afo) { Aforo = afo; } Observa este mtodo: Es void, es decir, no devuelve nada (el significado de la palabra public se ver ms adelante)
http://procesinc.com/
La mayora de los procedimientos set usados para introducir valores en las propiedades tienen la misma forma. Aqu tienes la programacin de los dems procedimientos set de la clase SalaCine. //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; } Hay un mtodo set de la clase SalaCine llamado setLibres cuya misin es asignar el nmero de localidades libres del cine. Sin embargo la clase SalaCine no tiene una propiedad Libres. En realidad, este mtodo debe modificar el nmero de localidades ocupadas. Observa su programacin: //Mtodo setLibres public void setLibres(int lib) { int ocu; ocu = Aforo lib; Ocupadas = ocu; }
Al asignar un nmero de localidades ocupadas, estamos asignando indirectamente el nmero de localidades libres. Como puedes observar en el mtodo, lo que se hace es calcular el nmero de localidades ocupadas a partir de las libres, y asignar este valor a la propiedad Ocupadas. No se pens en crear una propiedad de la clase llamada Libres ya que en todo momento se puede saber cuantas localidades libres hay restando el Aforo menos las localidades Ocupadas. La clase SalaCine, aadiendo los mtodos set, quedara de la siguiente forma:
http://procesinc.com/
Mtodos Set
Mtodos del tipo get Al igual que los mtodos set, los mtodos get son muy fciles de programar ya que suelen tener siempre la misma forma. Estos mtodos no suelen llevar parmetros y devuelven el valor de la propiedad correspondiente usando la tpica instruccin return usada tanto en las funciones. Por tanto, un mtodo get nunca es void. Siempre ser del mismo tipo de datos que la propiedad que devuelve. Veamos la programacin del mtodo getAforo:
http://procesinc.com/
http://procesinc.com/
La clase SalaCine una vez introducidos los mtodos get quedara de la siguiente forma: public class SalaCine { int Aforo; int Ocupadas; String Pelcula; double Entrada; //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; } //Mtodos get //Mtodo getAforo public int getAforo() { return Aforo; } //Mtodo getOcupadas public int getOcupadas() { return Ocupadas; }
Mtodos Get
http://procesinc.com/
//Mtodo getPelicula public String getPelicula() { return Pelcula; } //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 Get
Mtodos de orden Para finalizar la programacin de la clase SalaCine, se programarn los dos mtodos de orden que hemos indicado en el planteamiento de la clase. Estos mtodos suelen realizar alguna tarea que involucra a las propiedades de la clase, modificndola internamente. No suelen devolver ningn valor, aunque pueden recibir parmetros. Veamos la programacin del mtodo Vaciar, cuyo objetivo es vaciar la sala y quitar la pelcula en proyeccin: //Mtodo Vaciar public void Vaciar() { Ocupadas = 0; Pelcula = ; } Como se puede observar, es un mtodo muy sencillo, ya que simplemente cambia algunas propiedades de la clase.
http://procesinc.com/
Constructor
Mtodos Set
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 Pelcula; } //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 Vaciar public void Vaciar() { Ocupadas = 0; Pelcula = ; } //Mtodo entraUno public void entraUno() { Ocupadas++; } }
Mtodos Get
http://procesinc.com/
Supongamos que tenemos una clase llamada Rectangulo que nos permitir generar objetos de tipo rectngulo. Sea el planteamiento de la clase Rectangulo el que sigue:
CLASE RECTANGULO Nombre de la clase: Rectangulo Propiedades de los objetos de la clase Rectangulo: Base (double) Altura (double) Valores iniciales de las propiedades de los objetos de la clase Rectangulo: Base 100 Altura 50 Mtodos: Mtodos set: setBase permite asignar un valor a la propiedad Base. setAltura permite asignar un valor a la propiedad Altura. Mtodos get: getBase devuelve el valor de la propiedad Base getAltura devuelve el valor de la propiedad Altura getArea devuelve el rea del rectngulo getPermetro devuelve el permetro del rectngulo Otros mtodos: Cuadrar este mtodo debe hacer que la Altura tenga el valor de la Base.
SE PIDE: Realiza (en papel) la programacin de la clase Rectangulo a partir del planteamiento anterior.
http://procesinc.com/
CONCLUSIN La programacin de una clase se realiza en un fichero que tiene el mismo nombre que la clase y extensin .java La estructura general de una clase es la siguiente: public class NombreClase { Propiedades (variables globales) Constructor Mtodos set Mtodos get Mtodos de orden y otros mtodos }
El Constructor es un procedimiento que no devuelve nada pero que no es void. El constructor debe llamarse igual que la clase y se usa para asignar los valores iniciales a las propiedades. Los mtodos set son void y reciben como parmetro un valor que se asigna a la propiedad correspondiente. Los mtodos get no tienen parmetros y devuelven el valor de una propiedad de la clase, aunque tambin pueden realizar clculos y devolver sus resultados. Los mtodos de orden realizan alguna tarea especfica y a veces modifican las propiedades de la clase de alguna forma.
http://procesinc.com/