esperanto
français
 

Un nove objecto

Le tabella de objectos Rectangle del applet precedente permitterea de producer le 216 rectangulos cliccabile de nostre projecto. Usque nunc, illos es tote nigre, pro simplificar le programma, sed il es certemente possibile de designar los de 216 colores differente empleante le mechanismo viste al passo 8 (excellente idea de exercitio !).
Totevia il restarea a trovar le medio de facer los exhibir le codice RGB de lor color. E isto es un difficultate : pois que le color es definite per le methodo paint(), le relation inter cata objecto Rectangle e su color non es evidente. Le objectos Rectangle, tal como le linguage java nos los forni, ha le attributos x, y, width e height, e le methodo inside(), que nos ha utilisate, sed iste objectos non ha un attributo "color", ni attributos R, G o B que esserea usabile tanto facilemente como x, y, width e height.
Certo, il es probabilemente possibile de trovar un relation inter x e y e le color de cata rectangulo, pois que tote iste parametros varia simultaneemente, sed le algorithmo que permitte de retrovar R, G e B a partir de x e y ne es evidente ! (altere idea de exercitio !!)
Le solution es multo plus simple : pois que le objectos Rectangle non ha le attributs R, G, B, nos va crear un nove objecto que satisfacera exactemente nostre besonios.

Definir un classe

Un objecto, como viste al passo 10, es le producto de un structura nominate "classe" : definir un nove objecto, il es declarar un nove classe.

Ecce quomodo es declarate un classe :

class MiObjecto
{
public int MiAttributo;--- un attributo de typo "numero integre" es hic declarate

         --- in rubre hic infra : le constructor
public MiObjecto(int parametro1)
   {
   this.MiAttributo = parametro1;
   }


public int Adder()--- un methodo es hic declarate
   {
   return MiAttributo + 2;
   }
}

 

Le codice hic supra defini un nove objecto de typo "numero integre". Iste objecto ha un attributo (MiAttributo) e duo methodos.

  • Le prime methodo permittera al altere programmas de utilisar iste objecto (instantiar lo) declarante lo de ille maniera :
    MiObjecto x = new MiObjecto(18);
    Nota que un numero integre debe figurar inter le parentheses, proque lo exige le constructor (int parametro1).
  • Le secunde methodo, quando illo essera appellate, retornara (return) simplemente le numero donate in parametro (parametro1, alias dicte MiAttributo) augmentate de 2.
    Le altera programmas appellara iste methodo de ille maniera :
    int resultato = x.Adder();

Instantiar un objecto

Instantiar un objecto es simplemente facer exister un objecto observante le regulas de su constructor, lo que nos ja jam facte con le objectos Rectangle in le passos precedente.

Quando le objecto es instantiate, su attributos e methodos es usabile.

Ecce le codice de un applet que utilisa le classe MiObjecto. Le numero integre 1 es donate a illo como parametro :

import java.awt.*;
public class PPMiObjecto extends java.applet.Applet
{
MiObjecto x = new MiObjecto(1);
int resultato;--- attention : le variabiles debe esser declarate in le initio
String S;

public void init()
   {
   resultato = x.Adder();
   S = Integer.toString(resultato);--- iste methodo transforma le numero integre "resultato" in un catena de characteres : il es necessari pro le exhibition infra
   }

   public void paint (Graphics g)
   {
   g.drawString(S, 10, 10);--- le methodo drawString, pro le exhibition, exige un catena de characteres in parametro
   }
}

 

Ecce le resultato expectate :

Le codice del classe preste al uso
Le codice del applet preste al uso

A fin que iste applet functiona, vos debe in prime loco compilar un schedario MiObjecto.java (le classe), postea le applet mesme, hic nominate PPMiObjecto.java (Programma Principal, etiam nominate "programma appellante"). Vos pote etiam scriber le classe e le applet in le mesme schedario, sed le compilator fabricara nonobstante duo schedarios con le extension .class.

Iste classe MiObjecto, e le applet que instantia hic un objecto x de iste classe non ha ulle utilitate practic, sed illos vos ha adjute, forsan, a comprehender le mechanismo e le utilitate del programmation orientate objecto. Le passos sequente emplea iste systema pro portar nostre projeto a su fin.