Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste attribut générique

    19 septembre 2016 à 14:56:33

    Bonjour je débute en java, je connais un peu le C.

    -Je n'arrive pas à implémenter un liste avec une valeur générique <E> que je caste en int. 

    - Au niveau des déclarations des méthodes je n'ai pas très bien compris quand dois mettre public private ou non. ( et si vous avez d'autres conseil au niveau de mon implémentation.

    Je vous remercie cordialement.

    public class Node<E>{
    	/* attribut */	
    	E value;
    	Node<E> next;
    	
    	/* constructeur */
    	Node(E value){
    		this.value = value;
    	}
    	
    	/* méthode */
    	E getValue(){
    		return value;
    	}
    	Node<E> getNext(){
            return next;
        }
        void setNext (Node<E> node){
            next = node;
        }
        
        /* main */
    	public static void main(String[] args) {
    		System.out.println("Hello World");
    		Node<int> a = new Node<int>(1);
    		Node<int> b = new Node<int>(2);
    		Node<int> c = new Node<int>(3);
    		Node<int> d = new Node<int>(4);
    
    		a.setNext(b);
    		b.setNext(c);
    		c.setNext(d);
     	
    		a.setNext (c);
    		b.setNext(null);
    		
    		Node<int> current = a;
    		while (current != null){
    			System.out.println (current.getValue());
    			current = current.getNext(); 
    		}
     	}
    }



    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2016 à 15:20:14

      Bonjour,

      Contrairement au C++, on ne peut pas utiliser de type primitif comme type générique en Java. Mais il existe des "wrapper types" que tu peux utiliser.

      Boolean pour boolean, Byte pour byte, Short pour short, Integer pour int, Long pour long, Float pour float et Double pour double.

      Pour les méthodes, private est destiné aux "helper methods" qui ne sont pas censées être appelées par un utilisateur. Ici, tu peux toutes les mettre "public".

      Sinon, il est conseillé de mettre les attributs "private".

      -
      Edité par brubru777 19 septembre 2016 à 15:27:17

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2016 à 15:34:42

        Ok merci, pour les public private.

        Mais pour la généricté j'ai bien suivi les tutos et cela ne compile pas. Ou se trouve l'erreur ? 

        • Partager sur Facebook
        • Partager sur Twitter
          19 septembre 2016 à 17:02:38

          Node<int> node; // Interdit car int est un type primitif
          
          Node<Integer> node; // Permis
          • Partager sur Facebook
          • Partager sur Twitter

          Liste attribut générique

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown