Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: [java]operatore +

  1. #1

    [java]operatore +

    Leggendo delle guide su java,trovo che l'operatore + è detto overloaded per via della capacità di fare azioni diverse in base al tipo di dato con cui ha a che fare.
    Leggevo anche che è l'unico operatore che funziona con qualsiasi tipo di dato.


    Ma allora perchè quando uso questo operatore con l'oggetto Vector mi da errore?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    In che senso lo usi con i Vector? Quella frase, probabilmente, si riferiva al fatto che l'interprete Java, quando si trova a dover risolvere delle espressioni in cui compare l'operatore + associato a tipi di dato diversi, si appoggia, appunto, all'overload dello stesso operatore. Questo, però, significa che quando l'operatore non trova alcuna corrispondenza dei tipi, viene forzata una conversione a String dell'oggetto al quale è applicato l'operatore.
    Esempio:
    codice:
    Vector v = new Vector();
    ...
    System.out.println("" + v);
    Questo codice viene accettato dal compilatore, anche se, quando lo esegui effettivamente, produce effetti che non sono proprio comprensibilissimi.

    Questo perchè Java forza il richiamo al metodo toString() proprio di tutti gli Object (quindi di qualsiasi classe).

    Questo è il modo in cui io ho interpretato quella frase... se l'autore di quella frase intendeva quello che ha detto in modo letterale, beh... ha sbagliato di grosso!

    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

  3. #3
    I problemi li riscontro quando in un oggetto di tipo Vector devo inserire un valore costituito ad esempio da due int o da 2 altri Vector.

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Non puoi inserire interi in un Vector; poi l'operatore '+' mica è vero che puo eeser usato con ogni tipo di dato, ma puo essere usato con una stringa + un altro tipo di dato, perche in questo caso sull'oggetto che non è stringa viene invocato il metodo toSring.

  5. #5
    Originariamente inviato da anx721
    Non puoi inserire interi in un Vector; poi l'operatore '+' mica è vero che puo eeser usato con ogni tipo di dato, ma puo essere usato con una stringa + un altro tipo di dato, perche in questo caso sull'oggetto che non è stringa viene invocato il metodo toSring.

    e come facci allora per inserire in un Vector un valore dato dalla somma di più int?

  6. #6
    ok ci sono arrivato da solo



    se invece nel Vector devo inserire la somma di più Vector?

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se per somma intendi tutti gli elementi dell'uno e dell'altro, cioè fondere insieme i due vettori, o esistono appositi metodi, o comuqnue lo fai da te con due cicli for che scorrono i due vettori.

  8. #8
    Originariamente inviato da anx721
    Se per somma intendi tutti gli elementi dell'uno e dell'altro, cioè fondere insieme i due vettori, o esistono appositi metodi, o comuqnue lo fai da te con due cicli for che scorrono i due vettori.


    un frammento di codice sarebbe meglio

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Supponiamo che nel vettore v1 vuoi aggiungere tutti gli elementi del vettore v2:

    Codice PHP:
    for(int i 0v2.size(); i++)
       
    v1.add(v2.get(i)); 

  10. #10
    Originariamente inviato da anx721
    Supponiamo che nel vettore v1 vuoi aggiungere tutti gli elementi del vettore v2:

    Codice PHP:
    for(int i 0v2.size(); i++)
       
    v1.add(v2.get(i)); 

    no aspe,ci siamo capiti male


    io intendevo dire che in un'istanza di un Vector devo inserire un valore ottenuto sommando il valore di istanze di altri Vector

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.