Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Java e operatore "."

  1. #1

    Java e operatore "."

    Conosco l'utilizzo in parte dell'operatore punto, ma secondo me in questo esempio del libro non ci andava; sapreste spiegarmi perchè lo hanno messo?

    class Real {
    protected float val;
    public Real(float x) { val = x; }
    public Real sum(Real x){
    return new Real(val + x.val); } /* secondo me qui ci va solo x e non x.val cioè val non è il protected float della classe?! e x viene dal metodo, perchè mai specificare x.val che secondo me tra l'altro non ha senso????? */
    public Real sub(Real x){
    return new Real(val - x.val); }
    public Real mul(Real x){
    return new Real(val * x.val); }
    public Real div(Real x){
    return new Real(val / x.val); }
    }

    Ringrazio anticipatamente per l'aiuto, credevo che il java fosse piu' semplice... invece non è mica facile... almeno per me che sono una testa dura!
    -- utente Kubuntu --

  2. #2
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584

    Re: Java e operatore "."

    Originariamente inviato da Geppo Hylar
    Ringrazio anticipatamente per l'aiuto, credevo che il java fosse piu' semplice... invece non è mica facile... almeno per me che sono una testa dura!
    Allora siamo in due... ma ci provo lo stesso, anche rischiando di dire una vaccata..

    Tieni presente che x è (a tutti gli effetti) un puntatore a un oggetto (di tipo Real) . val è la proprietà che contiene un valore float dell'oggetto x.

    E' abbastanza facile verificare che se togli .val il programma non si compila perchè non ha senso fare l'operazione di somma tra un valore float e un oggetto Real.

    Spero di essere stato chiaro e di non averle sparate troppo grosse.
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  3. #3
    si infatti....

    quando scrivi return (val + x.val), val fa parte dello stato dell'oggetto chiamante, mentre x.val fa parte dell'oggetto x passato come parametro alla funzione.

    se ci mettevi val + x giustamente non te lo compila perchè usi oggetti diversi

    se ci metti val + val ti fa il doppio del valore dell'oggetto chiamante, che non è quello che tu vuoi.

    ciauz!


  4. #4
    Grazie tante, ora mi è piu' chiaro.
    Purtroppo ci sono un sacco di cose da ricordare in sto linguaggio e per uno poco esperto, tutte in una volta è duretta capirle tutte
    -- utente Kubuntu --

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.