Visualizzazione dei risultati da 1 a 7 su 7

Discussione: rimuovere un oggetto

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44

    rimuovere un oggetto

    Come si rimuovono gli oggetti?
    Vorrei cancellare un oggetto (creato con un costruttore)che ho creato


    class Moto{
    String marca;
    String colore;
    boolean motoreacceso;

    Moto(String m, String c){
    marca = m;
    colore = c;
    motoreacceso = false;
    }

    public static void main(String args[]){
    Moto a = new Moto("Ducati","rossa");
    }

    Nell'esempio se vorrei eliminare l'oggetto a come devo fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Nell'esempio se vorrei eliminare l'oggetto a come devo fare?
    volessi... non vorrei...
    codice:
    a = null;
    Perdi il reference all'oggetto e il garbage collector (prima o poi) lo toglie dalla memoria.
    Di meglio non puoi fare perche' java non e' c++ e non ha i "distruttori".
    Naturalmente se hai un reference alla stessa istanza dell'oggetto da qualche altra parte, l'oggetto non viene cancellato dalla memoria, anche se non ci accedi piu' da a.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    In realtà anche Java ha i distruttori: è sufficiente effettuare l'override del metodo finalize() (derivante da Object). Ma esso è comunque un metodo che viene richiamato automaticamente dal GarbageCollector.


    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    44

    rimuovere oggetto con frame

    class Moto{
    String marca;
    String colore;
    boolean motoreacceso;
    Frame F1;
    Moto(String m, String c){
    marca = m;
    colore = c;
    motoreacceso = false;
    F1=new Frame("");
    }

    public static void main(String args[]){
    Moto a = new Moto("Ducati","rossa");
    }



    Il mio problema è che viene anche generato un frame e vorrei che quando lo elimino anche il frame si chiuda!!!
    Come proposto da simo il frame rimane

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    60

    Re: rimuovere oggetto con frame

    Originariamente inviato da PPP
    class Moto{
    String marca;
    String colore;
    boolean motoreacceso;
    Frame F1;
    Moto(String m, String c){
    marca = m;
    colore = c;
    motoreacceso = false;
    F1=new Frame("");
    }

    public static void main(String args[]){
    Moto a = new Moto("Ducati","rossa");
    }



    Il mio problema è che viene anche generato un frame e vorrei che quando lo elimino anche il frame si chiuda!!!
    Come proposto da simo il frame rimane

    Prima di mettero a null fai F1.setVisible(false),poi lo "deallochi" mettendolo = null e chiami il System.gc() ....
    "Gli ingegneri progettano il vostro futuro...e loro lo costruiranno..."

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    In questo caso allora sovrascrivi il metodo finalize() di Moto come aveva detto LeleFT, dentro questo rendi invisibile il frame e lo setti a null (EDIT: meglio dispose() vedere post successivo), come ha suggerito pax22.
    System.gc() lo chiami sotto a= null. Prova se funziona.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da simo7784
    In questo caso allora sovrascrivi il metodo finalize() di Moto come aveva detto LeleFT, dentro questo rendi invisibile il frame e lo setti a null, come a suggeruto pax22.
    System.gc() lo chiami sotto a= null. Prova se funziona.
    Attenzione: renderlo invisibile non è la stessa cosa che distruggere la finestra.
    Al posto di setVisible(false) richiama dispose()


    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

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.