Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [java] piccola curiosità

    Salve a tutti,

    Vi faccio una domandina tanto per sapere come voi affrontereste il seguente problema (io in questo momento non saprei affrontarlo ).

    Ipotizzate di creare una classe X, altri utenti dovranno avere la possibilità di estendere questa classe X ma non avranno modo di importare package particolari e quindi di utilizzare determinate classi, mi spiego meglio con un esempio.

    Se la classe Y estenderà la mia classe X non potrà ad esempio importare o meglio utilizzare classi del package java.io.*

    considerate che l'oggetto Y sarà preso con un cast a X
    quindi avrò in realta questa situazione
    X xpiccolo=(X)(new Y());

    e usero sempre un accesso ai metodo attraverso xpiccolo.
    xpiccolo.mioMetodo();

    Ora, io mi aspetterei che se mioMetodo() ridefinito da Y usasse una classe di java.io allora dovrei lanciare un'eccezione.
    Che mi consigliate

    Ciao e Grazie
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

  2. #2

    Re: [java] piccola curiosità

    Originariamente inviato da tonytalk
    ...

    Se la classe Y estenderà la mia classe X non potrà ad esempio importare o meglio utilizzare classi del package java.io.*

    ...

    Ora, io mi aspetterei che se mioMetodo() ridefinito da Y usasse una classe di java.io allora dovrei lanciare un'eccezione.
    ...
    non capisco se Y può usare o meno classi di java.io.*...

    SO: Debian Sarge kernel 2.6.11
    Lang: Java, C++, C

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Se in x non utilizzi il package java.io ed in y non lo
    aggiungi, sei a posto cosi'!
    Slack? Smack!

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Per quanto ne so io, non è possibile fare quello che chiedi, cioè implementare una classe X e fare in modo che se Y estende X allora Y non può accedere a classi di un determinato package o lanci un'eccezione se accede a tali classe, perchè chi implementa Y la impelmenta come gli pare...e la classe padre non ha un controllo diretto sulle classi che la estendono...se qlcuno conosce dei metodi per realizzare ciò sono tutto orecchie...


    ...ma poi a che serve una simile funzionalità? :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Quindi anche un

    System.out.println("Ciao");

    non vorresti fosse consentito?

    Se cosi' dici, la vedo dura.
    Slack? Smack!

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Sergio Pedone
    Se in x non utilizzi il package java.io ed in y non lo
    aggiungi, sei a posto cosi'!
    Ma a quanto ho capito io, chi implementa X non implementa anche Y, che puo essere implementata da chiunque, e lui vorrebbe imporre quella limitazione.

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Be' per come la vedo io.... lui può rendere la sua classe final e nessuno la implementerà così va bene... almeno per evitare che tutti la estendino e possano utilizzare altri package.
    In pratica il trucco per non far utuilizzare altri package è non far estendere proprio la classe.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Angelo1974
    Be' per come la vedo io.... lui può rendere la sua classe final e nessuno la implementerà così va bene... almeno per evitare che tutti la estendino e possano utilizzare altri package.
    In pratica il trucco per non far utuilizzare altri package è non far estendere proprio la classe.
    Ciao
    Si, ma non è ciò che lui chiedeva! :rollo:

  9. #9
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    guarda, di sfuggita mi viene in mente la riflessione, forse può servirti.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  10. #10
    Originariamente inviato da anx721
    Ma a quanto ho capito io, chi implementa X non implementa anche Y, che puo essere implementata da chiunque, e lui vorrebbe imporre quella limitazione.
    Perfetto, in pratica, vi spiego il mio problema così sicuramente sarà più chiaro.

    Io ho sviluppato una applicazione client/server per poter giocare a risiko. In questo gioco c'è la possibilità di poter giocare contro i robot.
    Ora io ho costruito un robot ma vorrei fornire agli utenti la possibilità di costruire un proprio robot per poi farlo girare sul mio server.

    Quindi io dovrei scrivere una super classe astratta(la nostra famosa X) fornendo metodi utili sullo stato del gioco come ad esempio il numero di carte possedute lo stato di un terriotrio ecc..

    Un utente che vorrà creare un robot per il mio server, dovrà estendere la mia classe astratta e ridefinire i metodi astratti di X che il server invocherà per far giocare il robot.

    Per questo motivo io vorrei avere un controllo sulla classe Y impedendoglio accessi al file system o alla rete.

    Dovrei creare una specie di controllo sulla sicurezza come ad esempio le applet ma personalizzando a mio piacimento.

    Ciao
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

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.