Mòdul 2   

Pràctica 1: Gestionar el Mòbil   
Tornar presentació tema
    Pràctica 1 Pràctica 2 Pràctica 3 Pràctica 4 Pràctica 5 Pràctica 6  
     
 

L'objectiu d'aquesta pràctica és l'observació del funcionament d'una classe de Java. Faràs treballar els seus mètodes per a obtenir resultats. Un cop aprenguis el que pot fer, podràs donar un cop d'ull al codi font de la classe, amb el benentès que l'estudiaràs amb tot detall a la segona pràctica. Per això en aquesta pràctica no cal que et preocupis gens si algun aspecte del codi que veuràs no et queda prou clar.

 
     
  Gestionar el Mòbil  
     
Clica a la icona de l'esquerra i recuperaràs un fitxer comprimit mobil.zip que, quan el descomprimeixis generarà una carpeta mobil que convé que desis, amb tots els fitxers que conté, a la carpeta de treball que has creat en les pràctiques del mòdul 1 (t'hem suggerit ../ BlueJ/projectes, però tu t'ho pots organitzar com et sembli millor.)

Ara activa l'entorn de la manera habitual i tot seguit, ja pots obrir el projecte mobil que tens a la carpeta indicada. Recorda que has d'utilitzar l'opció de menú del que es troba indicada Projecte |Obrir projecte.

Pots veure que només hi ha una sola classe, la classe Mobil. Crea, com has après en el primer mòdul, un objecte de la classe Mobil. Es pot dir mobil1. Recorda del primer mòdul que a un objecte concret, a més de dir-li objecte, també li podem dir instància de la classe.

 
     

Observa com hem escrit el nom de la classe: la primera lletra en majúscules i la resta en minúscules. No és obligatori fer-ho així, però és un convencionalisme que segueixen tots els programadors de Java. Designar-la com mobil o bé com MOBIL es considera incorrecte. Escriure Mobil és el que es considera correcte.

 
 


Clica amb el botó dret sobre l'objecte que acabes de crear. Observa la llista de mètodes de la classe: carrega(quantitat), getNumero(), getPreu(), getSaldo(), printSaldo(), setPreu(preu) i truca(passos).

Fes un doble clic sobre l'objecte, ens apareix una finestra amb tres camps (numero,saldo i preu), que contenen diferents valors. Considerant que estàs administrant un telèfon, no és massa complicat deduir quina és la funció de cadascun dels camps: El saldo serà, segurament, la quantitat de diners que li resten a la targeta per a fer trucades; el preu pot ser la quantitat de diners que costa cada pas i, finalment, el camp numero es pot referir al nostre número de telèfon.

 
     
 


Abans d'estudiar el codi font del projecte, fes-lo funcionar. Què pots fer? Aquestes són algunes accions possibles:

  • Carrega la targeta: Clica amb el botó dret sobre l'objecte mobil1 i tria el mètode carrega(quantitat) de la llista de mètodes. Afegeix la quantitat de diners que vulguis. Comprova si aquest canvi ha tingut efectes sobre el saldo: Demana el saldo a través del mètode getSaldo() .

  • Fes alguna trucada: tria el mètode truca(passos) de la llista de mètodes. Has d'indicar el número de passos que consumeix la trucada. Observa com aquesta acció afecta al saldo de la targeta. Fes alguna trucada molt cara i observa què passa amb el saldo. El programa, admet saldos negatius?

  • Varia el preu de les trucades amb el mètode setPreu(preu). En aquesta aplicació (que té sobre tot un objectiu didàctic) només està previst que aquest preu pugui ser un nombre enter d'unitats. Després fes alguna trucada i observa com el canvi de preu afecta al saldo de la nostra targeta.

  • Imprimeix el saldo de la targeta amb el mètode printSaldo(). Observa com aquesta operació no és neutra, costa una unitat de diners cada cop que el demanes.

  • Crea un altre objecte de la classe Mobil. Fes doble clic sobre ell i observa els valors de numero, saldo i preu. Comparal's amb els valors de l'objecte que has estat manipulant fins ara. Observa que cada objecte té els seus valors particulars de saldo i preu.

 

 
     
 

El codi font de la classe Mobil

 
     
 
A la finestra de classes del fes un doble-clic sobre la classe
Mobil. T'ha d'aparéixer una finestra com la de la imatge següent. Es tracta d'un editor amb el codi font de la classe am què treballes, escrit en Java. Aquesta finestra et permet veure i modificar el programa.

 
 
 
Figura 1. L'editor de codi font per a la classe Mobil
 
  El contingut de l'editor ha de ser el que pots veure tot seguit. Observa la classe i els mètodes. Alguns d'aquests mètodes retornen el valor d'un camp uns altres els modifiquen o fan altres accions. Ara estudia-ho i anota el que no vegis prou clar, perquè a la pràctica següent t'ho explicarem!  
     

/**
* Gestor del nostre telèfon mòbil.
*
* @author Angel Solans
* @version 07.01.2004
*/
public class Mobil {
    // Camps per indicar el nostre número de telèfon,
    // el saldo existent a la nostra targeta
    // i el preu per cada pas o unitat de temps de trucada
    private int numero = 630010203;
    private int saldo;
    private int preu;

    /**
    * Crea un telefon mòbil. Inicialment posa el saldo

    * a 350 i el preu a 2.
    */
    public Mobil() {
        saldo = 350;
        preu = 2;
    }

    /**
    * Incrementa el saldo de la targeta en la
    * quantitat que triem
    */
    public void carrega(int quantitat) {
        saldo+=quantitat;
    }

    /**
    * Fa una trucada del número de passos que triem.
    * Decrementa el nostre saldo en funció del preu
    * de cada pas
    */
    public void truca(int passos) {
        saldo-=(passos*preu);
    }

    /**
    * Retorna el nostre número de telèfon
    */
    public int getNumero() {
        return numero;
    }

    /**
    * Retorna el saldo restant a la targeta
    */
    public int getSaldo() {
        return saldo;
    }

    /**
    * Canvia el preu de cada pas
    */
    public void setPreu(int preu) {
        this.preu = preu;
    }

    /**
    * Retorna el preu de cada pas
    */
    public int getPreu() {
        return preu;
    }

    /**
    * Imprimeix el nostre saldo. Per la feina de la
    * consulta, ens resta una unitat
    */
    public void printSaldo() {
        saldo-=1;
        System.out.println("El vostre saldo és de "+saldo);
        System.out.println("moltes gràcies per la consulta");
    }

}

 
     
    Tornar al principi