Classes i objectes

Aprendràs:

A declarar classes A crear objectes d'aquestes classes

Classes i objectes

Un objecte és una agrupació de variables (i mètodes, que veurem més endavant). S'utilitzen per a organitzar el codi, agrupant aquelles variables i mètodes que estan relacionades entre sí.

Si seguim l'analogia de les capses que vam utilitzar per a les variables i arrays, podríem veure un objecte com una capsa que a dintre conté altres capses.

Per exemple, si estem fent un programa per a gestionar un institut, segurament necessitem guardar dades dels alumnes. Per exemple, podríem utilitzar aquestes tres variables per a guardar les dades d'un alumne:

String nom = "Joan"; int edat = 25; float nota = 7.5f;

Un objecte ens permetria tenir aquestes tres variables agrupades.

Crear objectes

Per a crear objectes, primer s'ha de definir una classe especificant quines variables tindran aquests objectes.

Definim la classe Alumne i especifiquem les tres variables que tindran els objectes d'aquesta classe:

class Alumne { String nom; int edat; float nota; }

Un cop definida la classe, es poden crear objectes a partir d'ella d'aquesta manera:

Alumne unAlumne = new Alumne();

A partir de la definició de la classe Alumne hem creat un objecte i l'hem assignat a la variable unAlumne. L'objecte al que fa referència la variable unAlumne conté totes les variables que s'han definit a classe Alumne. Se sol dir que la definició d'una classe és com el plànol amb el qual s'han de construir els objectes d'aquesta classe.

Podem utilitzar la definició de la classe Alumne per a crear nous objectes d'aquesta classe. Per exemple, podem crear un nou objecte per a guardar les dades d'un altre alumne:

Alumne unAltreAlumne = new Alumne();

Per a accedir a les variables que hi ha a dintre d'un objecte utilitzarem l'operador punt .:

unAlumne.nom = "Joan"; unAlumne.edat = 25; unAlumne.nota = 7.5f;

Així doncs, la sintaxi per a definir una classe és:

class NomClasse { tipus nomCamp; tipus nomCamp2; ... }

Per a crear objectes d'una classe:

NomClasse nomObjecte = new NomClasse();

Per a accedir als camps d'un objecte utilitzarem:

nomObjecte.nomCamp

Arrays d'objectes

Si destijem guardar dades de diversos alumnes, posem que en són tres, ens serà convinent utilitzar un array d'objectes de classe Alumne:

Alumne[] alumnes = new Alumne[3]; alumnes[0] = new Alumne(); alumnes[0].nom = "Joan"; alumnes[0].edat = 25; alumnes[0].nota = 7.5f; alumnes[1] = new Alumne(); alumnes[1].nom = "Anna"; alumnes[1].edat = 30; alumnes[1].nota = 8.75f; alumnes[2] = new Alumne(); alumnes[2].nom = "Marc"; alumnes[2].edat = 18; alumnes[2].nota = 6.2f;

Per a definir una classe amb un camp enter, quina és la forma correcta de fer-ho?

new LaMevaClasse() { } class LaMevaClasse(){ int elMeuCamp; } LaMevaClasse { int elMeuCamp; } class LaMevaClasse { int elMeuCamp; } LaMevaClasse() { int elMeuCamp; }

Donada la següent classe:

class Point3D { double x, y, z; }

Diges les afirmacions correctes sobre ella:

La classe té tres camps del mateix tipus La sentència Ponint3D p = new Ponint3D(); crea un objecte d'aquesta classe La declaració de la classe és incorrecta Els valors dels camps són sempre els mateixos per a tots els objectes de la classe.

Quina és la paraula-clau per a crear objectes d'una classe?

throw type new create

Suposa qe tens aquesta classe al teu programa:

class Hotel { String name; String address; int rating; }

Hi han diversos objectes d'aquesta classe:

Hotel h1 = new Hotel(); Hotel h2 = new Hotel(); Hotel h3 = h2; h2.rating = 9; h3.rating = 8; h1.rating = 7;

Quin és el valor de h2.rating després d'executar el codi anterior?

0 9 7 8
Definir la classe CompteCorrent