Exécution de prg java (serialisation)

julia -  
Nettogrof Messages postés 522 Statut Membre -
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. Nettogrof Messages postés 522 Statut Membre 672
     
    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
  2. rubidium Messages postés 95 Statut Membre
     
    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
  3. Nettogrof Messages postés 522 Statut Membre 672
     
    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