Exécution de prg java (serialisation)

Bonjour
je rencontre un problemen à l'exécution de ces classes. Pourriez vous me dire ce qu'elle affiche?
Merci

Local.java
public class Local{
public void inc(Entier x){
x.n++;
}

public void main (String[] args){
Local l = new Local();
Entier y = new Entier(2);
System.out.println(y.n);
l.inc(y);
System.out.println(y.n);
}
}

Entier.java :
import java.io.Serializable;
public class Entier implements Serializable{
public int n;
public Entier (int p){
n=p;
}
}

3 réponses

  1. Je suis d'accord avec rubidium, selon le concept d'objet, il n'est pas très bon que faire public int n; il faudrait qu'elle soit private.

    et au lieu que ta méthode inc(Entier x) soit dans la classe Local,

    Il faudrait dans la classe Entier, une méthode:
       public inc(){
           n++;
       }
    


    et dans ton main, tu ferais y.inc();

    Nettogrof tseb era seiromem emoS
    1. Salut,
      Malheureusement je ne peux tester de classes java maintenant. J'essaierai ce soir, mais il y a une chose qui me semble contraire aux bons principes de programmation que j'ai pu apprendre.

      D'apres ce que j'ai pu comprendre a la programmation objet, il n'est pas tres correct d'avoir des attributs publics (public int n; )et de les manipuler directement depuis une autre classe (n.x++, n.Y ....). Normalement on fait des accesseurs (getn() et setn() )et n reste privé.
      Je suis d'accord avec nettogrof pour le constructeur.
      @tchao
      ps : serais tu la Julia que je connais???
      1. Salut

        je ne suis pas le meilleur à propos de la sérialisation, mais

        Dans ta classe, Local il te faudrait un constructeur :
        public Local(){
        
        }


        Et le résultat devrait être
        2
        3

        Nettogrof tseb era seiromem emoS