Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339

    Gestione di una collezione di dati.....

    Salve a tutti ragazzi!

    Sto facendo un piccolo programmino per la gestione di un magazzino...

    devo scrivere del codice che permette di aggiungere rimuovere e modificare oggetti articolo in una collezione di tipo TreeSet.

    Ho fatto un interfaccia Manager :

    codice:
    package PacchettoA;
    import java.util.*;
    
    public interface ManagerContenitore {
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	boolean ModificaArticolo();
    
    }
    ho creato il contenitore:

    codice:
    package PacchettoA;
    import java.util.*;
    
    public class ContenitoreDeposito {
    	
    	private TreeSet<Articolo> Contenitore;
    	
    	public ContenitoreDeposito(){
    		Contenitore = new  TreeSet<Articolo>();
    	}
    	
    	
    }//CONTENITORE_DEPOSITO
    Non capisco però come concretizzare i metodi dell'interfaccia .

    Concretizzando AggiungiArticolo come mai non mi riconosce il metodo add di TreeSet?

    codice:
    class Manager implements ManagerContenitore{
    	
    	@Override
    	public boolean AggiungiArticolo(Articolo A){
    		
    		this.add(A);  //NON RICONOSCE ADD
    			
    	}
    }
    Aiutatemi.
    CIAO

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gestione di una collezione di dati.....

    Originariamente inviato da Markus85
    Ho fatto un interfaccia Manager :

    codice:
    package PacchettoA;
    import java.util.*;
    
    public interface ManagerContenitore {
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	boolean ModificaArticolo();
    
    }
    Quasi ottimo. A parte il fatto che nomi di package e di metodi (e variabili) dovrebbero iniziare con la minuscola. Comunque aggiungi e rimuovi sono ok, hanno senso (il boolean di ritorno potrebbe servire o no ... dipende). Ma ... il modifica articolo?? Che fa?

    Originariamente inviato da Markus85
    ho creato il contenitore:

    codice:
    package PacchettoA;
    import java.util.*;
    
    public class ContenitoreDeposito {
    	
    	private TreeSet<Articolo> Contenitore;
    	
    	public ContenitoreDeposito(){
    		Contenitore = new  TreeSet<Articolo>();
    	}
    	
    	
    }//CONTENITORE_DEPOSITO
    Non capisco però come concretizzare i metodi dell'interfaccia .

    Concretizzando AggiungiArticolo come mai non mi riconosce il metodo add di TreeSet?

    codice:
    class Manager implements ManagerContenitore{
    	
    	@Override
    	public boolean AggiungiArticolo(Articolo A){
    		
    		this.add(A);  //NON RICONOSCE ADD
    			
    	}
    }
    Perché avresti 2 classi: ContenitoreDeposito e Manager? Tra l'altro TreeSet ce l'hai in ContenitoreDeposito ... non in Manager.
    E comunque anche se lo avessi in Manager, non è certo sul "this" che devi invocare il add!!

    Chiarisci(ti) prima quale è o dovrebbe essere la relazione tra ContenitoreDeposito e la implementazione "concreta" di ManagerContenitore (cioè Manager).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ciao.

    Il metodo modifica articolo , modifica le proprietà dell' articolo (Prezzo, Marca, Modello ecc..)

    Ho sbagliato a scriverlo...gli si deve passare un oggetto Articolo...
    mi correggo :

    codice:
    public interface ManagerContenitore extends Iterable<Articolo> {
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	boolean ModificaArticolo(Articolo A);
    
    }
    per quanto riguarda la relazione tra manager e contenitore , manager deve poter operare su contenitore esternamente cioè contenitore deve rimanere in un certo senso "nascosto".

    mi puoi aiutare sulla concretizzazione di AggiungiArticolo?

    il Metodo RimuoviArticolo penso vada bene cosi :

    codice:
    @Override
    	public boolean RimuoviArticolo(Articolo A){
    		
    		Iterator<Articolo> it = this.iterator();
    		while(it.hasNext()){
    			Articolo art = it.next();
    			if(art.equals(A))
    				it.remove();
    			return true;
    		}
    		return false;	
    			
    	}//RimuoviArticolo
    DELUCIDAMI XD

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Markus85
    Il metodo modifica articolo , modifica le proprietà dell' articolo (Prezzo, Marca, Modello ecc..)

    Ho sbagliato a scriverlo...gli si deve passare un oggetto Articolo...
    Ok.

    Originariamente inviato da Markus85
    per quanto riguarda la relazione tra manager e contenitore , manager deve poter operare su contenitore esternamente cioè contenitore deve rimanere in un certo senso "nascosto".
    Ok. Quindi è il Manager che deve avere al suo interno un riferimento al ContenitoreDeposito. Ma ContenitoreDeposito ha a sua volta al suo interno il TreeSet e quindi è solo ContenitoreDeposito che può maneggiarlo. Pertanto ContenitoreDeposito dovrebbe offrire dei metodi pubblici per gestire le possibili operazioni.

    Originariamente inviato da Markus85
    mi puoi aiutare sulla concretizzazione di AggiungiArticolo?

    il Metodo RimuoviArticolo penso vada bene cosi :

    codice:
    @Override
    	public boolean RimuoviArticolo(Articolo A){
    		
    		Iterator<Articolo> it = this.iterator();
    		while(it.hasNext()){
    			Articolo art = it.next();
    			if(art.equals(A))
    				it.remove();
    			return true;
    		}
    		return false;	
    			
    	}//RimuoviArticolo
    Quasi. Il iterator() è del TreeSet, non devi invocarlo sul "this" ma sul riferimento al TreeSet.
    Poi il return true come è adesso lo fa di brutto al primo ciclo. Fallo solo quando trova l'articolo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Potresti scrivermi un abbozzo del codice?

    Senza concretizzare tutti i metodi.

    Per ora mi interessano principalmente AggiungiArticolo e RimuoviArticolo

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ho provato a scriverlo io.....

    Allora , ho fatto una classe ContenitoreDeposito(lascia stare l'implementazione del metodo modifica) :

    codice:
    package PacchettoA;
    import java.util.*;
    
    public class ContenitoreDeposito {
    	
    	private TreeSet<Articolo> Contenitore;
    	
    	public ContenitoreDeposito(){
    		Contenitore = new  TreeSet<Articolo>();
    	}
    	
    	
    	public void Aggiungi(Articolo A){
    		Contenitore.add(A);
    	}
    	
    	public void Rimuovi(Articolo A){
    		Contenitore.remove(A);
    	}
    	
    	
    	
    }//CONTENITORE_DEPOSITO
    Dopo ho creato un interfaccia manager con i metodi che devono lavorare sulla collezione e l'ho implementata "parzialmente" :

    codice:
    package PacchettoA;
    import java.util.*;
    
    public interface ManagerContenitore extends Iterable<Articolo> {
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	void ModificaArticolo(Articolo A);
    
    }
    class Manager implements ManagerContenitore{

    @Override
    public boolean AggiungiArticolo(Articolo A){

    ??
    }

    }

    [/CODE]

    Mi scrivi il codice corretto per la concretizzazione del metodo AggiungiArticolo ?
    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    invece di scrivertelo io, ti chiedo, sai dirmi a parole cosa deve fare AggiungiArticolo? passo per passo intendo
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    AggiungiArticolo aggiunge semplicemente un oggetto Articolo nella collezione che è una TreeSet

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e fin qui c'ero arrivata, sai descrivermi i passi (secondo la tua logica)?
    Cioè
    codice:
    boolean AggiungiArticolo(Articolo A);
    io ho un articolo, qualsiasi, banalmente puoi fare

    codice:
    Contenitore.add(A);
    ma ci può essere dietro dell'altro e mi chiedo, il tuo Articolo rispetta le regole necessarie all'uso di
    tresset ?
    RTFM Read That F*** Manual!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    No per ora no c'è dietro dell'altro.

    Quello che mi interessa e come creare un riferimento per ContenitoreDeposito nella classe Manager per poter chiamare i metodi sulla collezione.

    codice:
    package PacchettoA;
    import java.util.*;
    
    public interface ManagerContenitore{
    	
    	boolean AggiungiArticolo(Articolo A);
    	boolean RimuoviArticolo(Articolo A);
    	void ModificaArticolo(Articolo A);
    
    }
    
    
    class Manager implements ManagerContenitore{
    	
    
    	@Override
    	public boolean AggiungiArticolo(Articolo A){
    
                  ???
    		
    	}
    Data che ho creato il Contenitore in un altra classe

    codice:
    package PacchettoA;
    import java.util.*;
    
    public class ContenitoreDeposito {
    	
    	private TreeSet<Articolo> Contenitore;
    	
    	public ContenitoreDeposito(){
    		Contenitore = new  TreeSet<Articolo>();
    	}
    	
    	
    	public void Aggiungi(Articolo A){
    		Contenitore.add(A);
    	}
    	
    	public void Rimuovi(Articolo A){
    		Contenitore.remove(A);
    	}
    	
    	public void Modifica(Articolo A){
    		
    		
    	} //LASCIA PERDERE IL MODIFICA PER ORA
    	
    	
    	
    }//CONTENITORE_DEPOSITO
    Mi aiuti?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.