IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

programmation objet java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut programmation objet java
    Bonjour,
    je me suis lancé depuis peu de temps dans la programmation en java.
    j' ai des petits problèmes de compréhension sur ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public class Produit {
     
    private String id;
    private String Descrip;
    private String Prix;
     
    private static int nbredeproduits=-1;
     
    static{
    	nbredeproduits=0;
    }
    {nbredeproduits++;}
     
    public static int getnbredeproduits(){
    	return nbredeproduits;}
     
    public String getId(){
    	return id;
    }
    public void setId(String id){
    	this.id=id;
    }
    public String getDescrip(){
    	return Descrip;
    }
    public void setDescrip(String descrip){
    	Descrip=descrip;
    }
    public String getPrix(){
    	return Prix;
    }
    public void setPrix(String prix){
    	Prix=prix;
    }
     
    Produit(String id,String descrip,String prix){
    	super();
    	this.id=id;
    	Descrip=descrip;
    	Prix=prix;
    }
    public class make{
    public static void main (String args[]){
     
    Produit t=new Produit(Marteau,noir,45)
    System.out.println("Nombre de produits en mémoire"+getnbredeproduits())
    }
    }
    en fait je n' arrive pas à créer un objet Produit puis à compter le nombre d' instances.

    Merci et à bientôt

    newtech

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Commence par mettre ton constructeur en public:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    public Produit(String id,String descrip,String prix)

    ensuite remplace le code suivant
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println("Nombre de produits en mémoire"+getnbredeproduits())
    System.out.println("Nombre de produits en mémoire"+Produit.getnbredeproduits())

    Enfin remplace çà
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static int nbredeproduits=-1;
     
    static{
    	nbredeproduits=0;
    }
    par çà (parce que ç'est très moche)
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    private static int nbredeproduits=0;

    On va continuer par déplacer çà
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    {nbredeproduits++;}
    Dans le constructeur parce qu'il y a pas de raison d'utiliser un bloc d'initialisation.

    Enfin tu va nous expliquer l'intérêt de cette variable dans une programmation orientée objet. Cette variable représentera juste approximativement le nombre total d'instance qui auront été créées sur la vie de l'application. Je dit approximativement car elle ne survit pas correctement aux modifications parallèles.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut précisions
    Bonjour et merci d' avoir répondu.

    En fait l' objectif est de pouvoir mettre en place une méthode qui compte le nombre d' instance en mémoire.
    Je voulais comprendre cette étape car il faut que je continue à develloper le code pour mettre les instances dans un fichier xml.
    Je pense qu 'il faut maitriser les choses simples avant de passer au plus difficile.

    a bientôt

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sauf que compter le nombre d'instance en mémoire n'est pas facile et est inutile en général. Si t'en a besoin pour des raisons de performance, utilise à ce moment là un profiler, il te donnera les classes représentant le plus de charge mémoire et sera meme capable de te dire à quels endroit de ton code elles ont été le plus instanciées.

    Si tu veux juste faire ca comme exercice, j'ai corrigé une partie de ton code (voir mon post précédent). Mais il faudra remplacer tes nbreInstance++ par une méthode

    public static syncronized incNbreInstance() {nbreInstance++} qui garanti une certaine atomicité de l'opération.

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut suite programmation
    salut,

    j' ai avancé sur ce projet, en fait je pense avoir trouvé la solution.
    Il faut déclaré les variables que l' on va entrer en machine en mettant les guillement "marteau" ,"noir","24".
    comme ces variables sont déclarés de type String il faut impérativement le faire lorque l' on crée un objet.
    Je n' ai pas le programme sur la main mais je vais le mettre en ligne bientôt.
    Je dois creer pour cet exercice un fichier xml pour sauvegarder les fichiers et tourner en mode THREAD.
    J ' ai donc du pain sur la panche.............
    Le savoir s' acquiert étape par étape.

    à bientôt

  6. #6
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Je trouve que ce fonctionnement est absurde d'un point de vue POO.

    Il faut juste une collection d'objets produits.

Discussions similaires

  1. Programmation objet Java
    Par vandamme dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2006, 19h51
  2. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 15h39
  3. [ASP] Programmation objet ?
    Par Hell dans le forum ASP
    Réponses: 6
    Dernier message: 07/04/2005, 15h28
  4. Problème programmation objet
    Par Contrec dans le forum MFC
    Réponses: 54
    Dernier message: 30/03/2005, 11h30
  5. [SAX] Passer d'objet java en fichier XML?
    Par spoutyoyo dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 05/01/2005, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo