Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF1: Classes»

De wikiserver
Dreceres ràpides: navegació, cerca
(Declaració d’objectes)
(Exemple complert)
(Hi ha 5 revisions intermèdies del mateix usuari que no es mostren)
Línia 30: Línia 30:
 
:*Declaració:
 
:*Declaració:
 
<pre>
 
<pre>
   Client nouClient = new Client( );
+
   Client nouClient = new Client( );
 +
 
 
</pre>
 
</pre>
 
:*'''nouClient''' serà un objecte de tipus 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''':
 
:*Taules de objectes '''Client''':
 
<pre>
 
<pre>
 
   Client taula [ ] = new Client [50];
 
   Client taula [ ] = new Client [50];
 
</pre>
 
</pre>
 +
:*Aquí declarem una taula per emmagatzemar 50 clients.
 +
:*Si volem introduir 50 clients haurem de fer 50 '''new Client()''';
  
 
==Accés als camps==
 
==Accés als camps==
Línia 52: Línia 57:
 
   nouClient.saldo=123.45;
 
   nouClient.saldo=123.45;
 
</pre>
 
</pre>
 +
 +
 +
==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.
 +
 +
<source lang="java">
 +
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 );
 +
        }           
 +
    }
 +
   
 +
}
 +
</source>

Revisió del 12:01, 3 juny 2020

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 );
        }             
    }
    
}