Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    9

    Servirsi di metodi di altre classi

    Ciao,
    Sto scrivendo un programma che oltre ad altre cose, faccia delle operazioni tra i vari elementi di un dato array.
    Ho scritto un metodo che parrebbe funzionare, ma non riesco ad utilizzarlo da una classe esterna al pacchetto in cui ho il main.
    L'intestazione della classe somiglia a questa:
    codice:
    public class MyClass
                 private MyType myArray
          
            Public MyClass () {} //questo dovrebbe essere il costruttore ma non so cosa scriverci
    Dopodiché ho scritto un metodo che si riferisce al myArray.

    Nella classe di utilizzo com il main method, ho inserito un array a mano (qui newArray) e ho scritto
    NewArray.myMethod().

    Beh, mi da l'eccezione Cannot invoke myMethod() on the array type MyType.
    Qualcuno sa da cosa dipende?
    Grazie

  2. #2
    Come dice l'errore, essendo NewArray un array, non puoi invocare il metodo myMethod() perchè non esiste (per un array). Dove l'hai definito quel metodo?
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    9
    Il metodo l'ho definito nella prima classe che è una classe per così dire generica.. Lì ho poi dichiarato l'array a cui il metodo deve riferirsi. E in quella classe non c'è alcuna notifica di errore. Se non fosse un array non avrei questo problema perché potrei riferirmi direttamente all'oggetto definito dal costruttore della classe.
    Purtroppo trattandosi di un array non posso definirla direttamente in un costruttore.

    Il tutto funzionerebbe se il metodo fosse statico e l'array un suo parametro, ma non lo posso fare (nel senso che è una specie di compito a casa e non posso usare metodi statici).

  4. #4
    Scusami ma proprio non riesco ad afferrare il senso del discorso.
    Correggimi se sbaglio. Tu hai una classe con un array dentro, e vuoi che un metodo di una classe esterna effettui delle operazioni su quell'array, giusto?
    Se è così, l'unica cosa che mi viene in mente è usare appunto un metodo statico che riceve come parametro un oggetto, e ne modifica l'array chiamando le funzioni dell'oggetto.
    Altrimenti, se il metodo deve modificare un array membro della stessa classe del metodo (non di una classe esterna), ti basta istanziare un oggetto di quella classe e chiamare quel metodo, facendoti poi restituire l'array (se proprio non puoi usare metodi statici).
    Non sono sicuro di aver afferrato il problema, anche perchè in entrambi i casi si viola l'information hiding...
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    9
    Ho capito l'errore e ho risolto..
    Non avevo creato un oggetto del tipo della prima classe. Ora l'ho fatto dandogli come attributo un array. E richiamando un nuovo oggetto di quel tipo nella classe col main ho risolto..
    Grazie

  6. #6
    Allora mi sa che era la seconda che ho detto
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

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.