Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9

    Metodo che cancella un oggetto

    Salve a tutti.
    Ho realizzato una classe chiamata Car, ora c'è un esercizio che chiede di creare un metodo
    statico che cancella un oggetto di questo tipo, di seguito riporto il testo dell'esercizio.

    The deletion of a car. Car is required.

    Come faccio a realizzarlo?
    Ho provato a scrivere car = null, ma non elimina l'oggetto, azzera solo i parametri che c'erano nel costruttore, ovvero due String una per il model e una per color.

    Aspetto suggerimenti.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Il primo suggerimento è di leggere il regolamento prima di postare..

    Linguaggio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Scusa, ho dimenticato di scriverlo.. Il linguaggio è java..

    In effetti credevo di averlo postato nella sezione giusta.

    Scusate ancora.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Originariamente inviato da McRea
    Scusa, ho dimenticato di scriverlo.. Il linguaggio è java..

    In effetti credevo di averlo postato nella sezione giusta.

    Scusate ancora.
    No... Java ha una sezione dedicata.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    "Cancellare" in che senso?

    Togliere da una lista? Rimuovere dalla memoria?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Rimuovere dalla memoria, ovvero liberare la memoria precedentemente allocata per l'oggetto.

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Rimuovere dalla memoria, ovvero liberare la memoria precedentemente allocata per l'oggetto.
    Questa mi giunge nuova.. sei sicuro che devi farlo in java? Non è che hai mal interpretato l'esercizio?
    Forse è meglio se posti tutto il testo.

    L'unica cosa che puoi fare con un oggetto car "C" per liberare spazio è quello di impostare a null tutti gli oggetti a cui punta "C". Conosci la storia del garbage collection?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Si, credo che la risposta sia impostare null come valore agli oggetti a cui punta Car..
    Cmq ti posto tutto il testo(il metodo che delete è scritto verso la fine)

    We want to realize a Java class to represent cars. The properties of interest for a car object are the model and color, defined once, the number plate and owner (Person) that may change.
    The methods of interest are:
    A constructor that given model and color properties creates a new Car object;
    Set/get car data;
    Print Car data.
    A Car Registry Office Client realizes:
    The registration of a new car. Car, person and number plate are required;
    The registration of a new owner. Car and person are required;
    ##The deletion of a car. Car is required.##
    Each operation should be realized by static method.

    Il problema è che, a quanto ho capito io, impostando null il valore delle String nel corpo
    dell'oggetto, questo si svuota dei dati, ma rimane lo spazio allocato(l'oggetto rimane vuoto).
    Ad esempio con un programmino che stiamo usando per scrivere in java(BlueJ) ti fa
    sempre vedere l'oggetto creato nella memoria, quando(a quanto ho capito io, forse mi sbaglio)
    usando quel metodo dovrebbe proprio rimuoverlo..

    Sicuramente ho interpretato male il testo.

    Vedi se ci vedi più chiaro te.

    Grazie, ciao.

  9. #9
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Il problema è che, a quanto ho capito io, impostando null il valore delle String nel corpo
    dell'oggetto, questo si svuota dei dati, ma rimane lo spazio allocato(l'oggetto rimane vuoto).
    Uno dei punti di forza di java è che il programmatore non deve preoccuparsi di liberare memoria.
    Quando nessun riferimento punta a un dato oggetto, il Garbage Collector lo individua e poi lo va ad eliminare fisicamente dalla RAM.

    In tutta onestà a me sembra che il problema sia stato mal interpretato: non è l'oggetto car che deve effettuare la propria eliminazione, ma è l'oggetto "Car Registry Office Client" che effettua le varie operazioni, come l'eliminazione.
    Avrà una sua struttura dati in cui memorizza tutti gli oggetti Car creati, e passandogli un oggetto di tipo Car, va a eliminarlo da questa struttura.

    Per prevenire possibili domande in merito a tale struttura dati... direi che uno cosa buona e giusta potrebbe essere l'uso di un ArrayList<Car>.


    per crearlo:
    ArrayList<Car> array = new ArrayList<Car>();

    per aggiungere Car
    array.add(carObject);

    per ottenere un oggetto Car:
    Car myCar = array.get(i); // i = posizione nel vettore
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Grazie mille! Infatti il metodo deve avere come parametro un oggetto Car da eliminare, dunque il metodo
    non è di Car, ma di Car Registry appunto..

    Grazie anche per gli ottimi chiarimenti riguardo a memoria e varie..


    Gentilissimo, grazie per l'aiuto

    bye

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 © 2025 vBulletin Solutions, Inc. All rights reserved.