M3 - Programació estructurada / Continguts UF1: Classes

De wikiserver
La revisió el 11:01, 3 juny 2020 per Rsort (Discussió | contribucions) (Exemple complert)
Dreceres ràpides: navegació, cerca

Nota: Aquest punt presenta una gran simplificació del funcionament real de les classes amb Java. A la unitat formativa 4 veurem realment com cal treballar.

  • Les classes són estructures de dades complexes que permeten emmagatzemar dades de diferent o del mateix tipus.
  • La seva forma és lliure i està en funció de les necessitats del programa.
  • És necessari definir la seva forma indicant els seus camps.
  • Cada camp pot ser qualsevol de qualsevol tipus de dades inclòs una altra classe.
  • En el nivell en que estem, podem considerar la definició d’una classe com si definíssim una taula de base de dades.

Declaració de classes

  • Una classe es declara en un fitxer separat amb extensió .java (des de Netbeans cal fer només “nova classe java”).
  • No tindrà el mètode main donat que és una definició de tipus de dades.
  • Cal declarar els atributs que volem que tingui aquest nou tipus de dades.
  • Exemple Clase Client (fitxer Client.java) defineix un nou tipus de dades anomenat Client el qual pot guardar la informació bancària d’una persona:
public class Client{
     String nom;
     String nif;
     String adreça;
     long numCompte;
     float saldo;
}

Declaració d’objectes

  • Objecte són les variables que no són d'un tipus de dades primitiu.
  • Declaració:
   Client nouClient = new Client( );  
   
  • nouClient serà un objecte de tipus Client.
  • Cada vegada que es crei un nou client s'ha de fer new Client();
  • Taules de objectes Client:
   Client taula [ ] = new Client [50];
  • Aquí declarem una taula per emmagatzemar 50 clients.
  • Si volem introduir 50 clients haurem de fer 50 new Client();

Accés als camps

  • Els camps d’un objecte es tracten de forma individual.
  • S'utilitza l’operador “punt” ( . ).
  • Forma general: objecte.nom_camp
  • Exemple:
   nouClient.nom =”Albert Canela”;
   nouClient.nif=”32435465H”;
   nouClient.adreça=”Rue del Percebe, 13”;
   nouClient.numCompte= 34232312;
   nouClient.saldo=123.45;


Exemple complert

Omplir una taula de quatre clients i a continuació mostra les dades dels quatre clients:

  • Només introduirem el nom i el NIF.
package clases;

import java.util.Scanner;

public class Clases {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        Client taulaCli [ ] = new Client [4];
     
        for (int cli = 0; cli < taulaCli.length; cli++) {
           Client nouClient = new Client( );  // o utilitzant la taula directament: taulaCli[cli] = new Client( ); 
           System.out.println("Introdueix les dades del client " + (cli+1));
           System.out.print("Nom: ");
           nouClient.nom = teclat.nextLine();
           System.out.print("NIF: ");
           nouClient.nif = teclat.nextLine();
           taulaCli[cli] = nouClient;
        }
        System.out.println("");
        System.out.println("Dades de tots els clients ");
        System.out.println("");        
        for (int cli = 0; cli < taulaCli.length; cli++) {
           System.out.println("Client " + (cli+1));
           System.out.println("  Nom: " + taulaCli[cli].nom );
           System.out.println("  NIF: " + taulaCli[cli].nif );
        }             
    }
    
}