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. 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
    0
    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???
      0
      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
        0