Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537

    [JAVA] Dichiarazione incompresa

    codice:
    File fileModuloPersonale = Utility.getInformation( userID );
    {
    ...
    codice...
    ....
    ..
    }
    Ho trovato questo codice in un'analisi di un software, ma davvero non capisco....che cosa significa?? Insomma, dopo una chiamata a metodo statico l'apertura e la chiusura di una sezione di codice?

    Grazie
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  2. #2
    Suppongo si tratti (si dovrebbe vedere il codice intero) del cosiddetto inizializzatore d'istanza (o object initializer) che si implementa includendo codice in un blocco di parentesi graffe all'interno di una classe. La sua caratteristica è l'essere eseguito quando viene istanziato un oggetto, prima del costruttore. Ad esempio:

    Codice PHP:
    public class InstanceInitializer{
       public 
    InstanceInitializer(){
          
    System.out.println("Costruttore");
       }

       {
          
    System.out.println("Inizializzatore");
       }

    produrrebbe in output:

    Inizializzatore
    Costruttore

    Ad ogni modo un blocco di codice può essere sempre incluso tra parentesi graffe.
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Io opto per una cambio di destinazione d'uso. E una mancata correzione del codice...

    Magari una volta c'era un while, un for o un if prima del blocco, oppure c'era un sincronized (sempre che il codice in mezzo lo giustifichi...). Uno static? Bah... non mi pare il caso...

    Però.. l'if mi sembra l'ipotesi più suggestiva. Poi qualcuno ha deciso che non serviva più.. si è detto: perchè commentare una riga? Fa brutto...
    Poi però deve aver avuto un ripensamento e non è riuscito a portare l'opera a compimento, lasciando indenni parentesi e indentazione.

    Ce ne sarebbe da costruire un giallo...
    "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

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da R@ve M@ster
    Ad ogni modo un blocco di codice può essere sempre incluso tra parentesi graffe.
    Esattamente.
    Per quanto sia strano ed inusuale, qualunque blocco di istruzioni può essere incluso all'interno delle parentesi graffe. Non ne ho mai avuta la necessità (né ho mai trovato una grande utilità in questo), ma, per darti un'idea, il blocco di codice può essere utilizzato per dichiarare/istanziare una o più variabili che saranno visibili solo localmente al blocco (e deallocate alla fine della sua esecuzione).

    Esempio:
    codice:
    public void medoto() {
       int localeAlMetodo = 0;
       ...
       {
          // Questa variabile non sarà visibile al di fuori del blocco delimitato dalle parentesi
          int localeAlBlocco = 10;
          ...
       }
       ...
    }
    E' esattamente ciò che accade quando si utilizzano istruzioni condizionali o costrutti come il for, while...
    Questa è la sintassi, ad esempio, del while
    codice:
    while( condizione ) bloccoIstruzioni;
    In questo caso, bloccoIstruzioni è, come dice il nome stesso, un blocco di istruzioni. Esso può essere formato da una sola istruzione (le parentesi, quindi, non sono necessarie) oppure da più istruzioni in un blocco (le parentesi diventano obbligatorie, definendo, appunto, un blocco).


    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 @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Quindi l'utilità potrebbe esser quella di compiere elaborazioni che rimangano ancor più nascoste che rendere la variabile private a chiunque implementi la classe che utilizzo.
    Anche perchè sinceramente oltre a questo non trovo una sua utilità....

    @Pastore12
    Il giallo sin infittisce!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  6. #6
    Ma magari sono state utilizzate semplicemente per un aspetto "grafico" del codice, forse per avere una indentazione più chiara... Nessuno potrà mai sapere cosa passasse per la mente dell'autore in quel momento...
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Originariamente inviato da R@ve M@ster
    Ma magari sono state utilizzate semplicemente per un aspetto "grafico" del codice, forse per avere una indentazione più chiara... Nessuno potrà mai sapere cosa passasse per la mente dell'autore in quel momento...
    Sono d'accordo, ma tecnicamente quella parte di codice non lascia accesso al di fuori del blocco stesso, quindi int localeAlBlocco è ancor più che private, almeno questo è comprensibile.

    Grazie a tutti per l'appoggio
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Quindi l'utilità potrebbe esser quella di compiere elaborazioni che rimangano ancor più nascoste che rendere la variabile private a chiunque implementi la classe che utilizzo.
    A me sembra che per chi estenda la classe in questione, sia localeAlMetodo che localeAlBlocco non sono visibili.

    quindi int localeAlBlocco è ancor più che private, almeno questo è comprensibile.
    Più private di private? Ma dai

    Quale può essere l'utilità di "proteggere" localeAlBlocco? Voglio dire, è la stessa persona che ha scritto metodo e blocco, quindi qualunque cosa volesse proteggere all'interno del blocco, poteva farlo benissimo scrivendo meglio il codice. E comunque:

    codice:
    ... metodo ()
    {
    
      int miaVariabile;
      ...
      {
        ...
        int miaVariabile;
        ...
      }
    }
    ad occhio da errore di compilazione. Quindi non è possibile "nascondere" nulla.
    "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

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Pastore12
    ad occhio da errore di compilazione. Quindi non è possibile "nascondere" nulla.
    Nessun errore in compilazione. E' un codice perfettamente valido.

    Prova:
    codice:
    public class Esempio {
       public static void main(String[] args) {
          int localeAlMetodo = 0;
          System.out.println("Locale al metodo: " + localeAlMetodo);
          {
             int localeAlBlocco = 10;
             System.out.println("Locale al blocco: " + localeAlBlocco);
          }
          System.out.println("Qui non posso accedere la variabile \"localeAlBlocco\"");
       }
    }
    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

  10. #10
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Originariamente inviato da Pastore12
    ad occhio da errore di compilazione. Quindi non è possibile "nascondere" nulla.
    Asssolutamente non vero, il codice si compila perfettamente, e non è errato, come detto prima, è possibile che sia una forma di protezioni di blocchi di codice.
    Infatti se sto costruendo una libreria, questa parte di condice non deve esser visionata da nessuno che estenda la mia classe, credo che questa sia un'ulteriore protezione.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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.