Crearea propriilor clase în Java proprietăți, metode, constructori,

materiale și sarcini pentru Java teoretice

Crearea unei clase: proprietăți și metode

Luați în considerare exemplu de creare a unei clase simplu. Să-l utilizați pentru a simula un cerc în planul de coordonate.

Fiecare cerc este cunoscut a fi determinat de centrul său (adică coordonatele numerice în două puncte) și raza (adică lungimea sa, reprezentată ca număr). Astfel, un cerc pe planul de referință 3, caracterizat prin numere reale. Deci, în această categorie trebuie să fie de trei proprietăți corespunzătoare.

Deși nu vom încerca să rezolve problemele grave cu ajutorul clasei, și dotarea acesteia cu următoarele caracteristici: a crea o clasă bazată pe un cerc trebuie să fie posibilă pentru a afișa (ca o descriere a caracteristicilor sale), mișcare (de exemplu, pentru a face mișcarea de conversie, schimbarea coordonatele centru ) și scala (adică, face transformarea similaritate, schimbarea razei cercului).

constructori

Când vom crea un cerc obiect O1 = cerc nou () de comandă; așa-zisul constructor implicit (sau constructorul fara parametrii) - este o metodă specială de clasă, nu am stabilit în mod clar, dar chiar dacă nu determină este creată executat în mod automat de fiecare dată când creați un obiect nou și atribuie valori inițiale ale proprietăților sale (le inițializează) . Valorile implicite pentru proprietățile depind de tipul (0 sau 0.0 la tipurile, Chilov false pentru tipul Boolean etc.).

Constructorul implicit poate fi descris în mod clar și, în același timp, cere nachallnye valori pentru proprietățile noului obiect, altele decât valorile implicite.

Din restul metodei constructor este diferită în faptul că acesta are același nume ca și întreaga clasă, și nu are nici un tip de întoarcere (de fapt, ca urmare a activității sale, constructorul returneaza un nou obiect al clasei dorite).

Deoarece metodele pot fi supraîncărcate, iar constructorul este o metodă, prin intermediul unei suprasarcină, puteți crea opțiuni suplimentare pentru designeri. De exemplu, este convenabil să aibă un constructor, care permite crearea unui obiect pentru a specifica în mod explicit coordonatele centrului și lungimea razei.

Pentru a descrie un astfel de designer poate fi, în plus față de principal, după cum urmează:

Acum, când creați obiecte, puteți utiliza orice designer de a alege de la:

Ai nevoie să ia în considerare următorul fapt: în cazul în care clasa este descrisă în mod clar cel puțin un constructor cu parametri, constructorul implicit (fără parametri) create în mod automat nu va fi (într-o astfel de situație, este necesar să se descrie în mod clar). Deși, dacă aveți nevoie de doar un constructor cu parametri (al doilea în exemplul nostru), atunci se poate face în întregime fără un constructor implicit (descris în clasa doar un singur constructor cu parametrii).

Accesul la membrii unei clase de tehnici ale corpului

Adăugăm metoda noastră clasă de calcul aria cercului, la care se aplică metoda. Metoda va fi descrisă după cum urmează:

Rezultatul metodei poate fi văzută după cum urmează:

Notă: în cadrul fiecărei metode de clasă proprietățile disponibile ale obiectului pentru care este invocată metoda. Adică, dacă vom apela metoda de obiect o2, în cadrul metodei atunci când este rulat, vom lucra în mod specific cu proprietățile unui o2 obiect (o2.x va fi disponibil pentru x, o2.r va fi disponibil ca r, etc.).

O situație poate apărea atunci când parametrii formali ai metodei pe care doriți să utilizați nume deja aparțin proprietăților clasei.

De exemplu, ai putea începe o descriere a unei metode de scalare astfel:

Cum, atunci, se referă la proprietățile obiectului (pentru numele acelor proprietăți se suprapun parametru formal)?

Soluția acestei ambiguități există: orice proprietate din interiorul metodei pot fi accesate nu numai după nume, ci, de asemenea, prin acest link. Aceasta este, în interiorul metoda puteți scrie x = 13;. și poate this.x = 13; - efectul este identic. În consecință, atunci când numele oficial parametru suprascrie numele proprietății numele proprietății ar trebui să fie tratate prin acest link. Apoi, metoda poate fi rescrisă după cum urmează:

Este clar că este mai convenabil pentru a evita suprapunerea numelor de proprietate denumirile parametrilor locali în metode. Uneori, cu toate acestea, este necesar într-o metodă de a aplica o altă metodă de a obiectului curent, atunci fără această referință nu se poate face.

Adăugați o metodă de clasă de a verifica dacă cele două cercuri de aceeași zonă.

În această metodă ar trebui să implice două obiecte: una pentru care metoda este numita comparație și un al doilea grup, care pot fi transmise printr-un parametru metodă. Atunci când această opțiune va avea tipul adecvat (nu un fel de, precum și clasa Circle built-in).

Metoda poate fi descrisă după cum urmează:

Exemplu de metodă:

  1. Creați o metodă de clasă Cercul de calcul lungimea circumferinței.
  2. Crearea unei metode de clasă cerc care mută centrul cercului la un punct aleatoriu de coordonate pătrate plane, cu o diagonală de [-99; -99] la [99, 99]. Fii atent la ceea ce doriți să creați o metodă convențională aplicabilă unui obiect existent și nu constructorul creează un nou obiect.
  3. Schimbarea în mod implicit constructorul clasei Circle, astfel încât, la momentul creării obiectului cu ajutorul coordonatele centrului și raza cercului utilizator de intrare tastatură.
  4. Creați o metodă de clasă Cercul de calcul distanța dintre centrele a două cercuri.
  5. Creați o metodă de clasă Cercul de a verifica dacă cercul la un moment dat atingere. Rețineți că varianta atunci când un cerc este conținut în interiorul celuilalt, și, astfel, încă posibil să se atingă la un moment dat.