Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problemi con java , ragazza alle prime armi :D

    La professoressa ci ha dato il seguente programma da dover svolgere:
    Progettare e creare una classe Dipendente ;
    Ciascun Dipendente ha un nome e stipendio . Scrivere un costruttore con due parametri: nome e stipendio , i metodi per conoscere nome e stipendio e un metodo che incrementi lo stipendio di una data percentuale .

    Nella classe dipendente ho scritto il seguente codice :
    public class Dipendente
    {
    private String nome;


    private double stipendio ;


    private final double percentuale=10.0;


    public Dipendente(String nome, double stipendio ){


    this.nome=nome;
    this.stipendio=stipendio ;
    }


    public void aumentaStipendio()
    {
    stipendio+=stipendio((stipendio*percentuale)/100.0);
    }
    public BigDecimal getStipendio()
    {
    return stipendio ;
    }
    public String getNome()
    {
    return nome;
    }


    }



    nel main invece :

    public class Dipendente1{
    public static void main ()
    {
    Dipendente a= new Dipendente();
    a.nome="Rossi";
    a.stipendio=2100;
    Dipendente b=new Dipendente();
    b.nome="Avena";
    b.stipendio=100;
    b.aumentaStipendio();
    b.getNome();
    b.getStipendio();
    }
    }


    Potreste aiutarmi a comprendere l'errore ? per favore

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da MartinaC99 Visualizza il messaggio
    Potreste aiutarmi a comprendere l'errore ? per favore
    Beh, ci sono diverse cose che non vanno.

    La classe Dipendente, tecnicamente, va in gran parte bene. Non vanno però bene: il aumentaStipendio() e il getStipendio()

    In aumentaStipendio() hai usato una sintassi errata. Non puoi mettere stipendio seguito subito da ( perché non ha senso.

    Se vuoi aumentare di quella percentuale, puoi fare:

    stipendio += stipendio * percentuale / 100.0;

    che tra l'altro è anche più semplice di

    stipendio+=stipendio((stipendio*percentuale)/100.0);

    (che è comunque sbagliato come sintassi)


    In getStipendio() hai messo come tipo di ritorno BigDecimal. BigDecimal è una classe per gestire numeri decimali a "precisione arbitraria". Non c'entra nulla direttamente con double (che è il tipo della variabile di istanza stipendio). Sono due tipi differenti e non compatibili direttamente tra di loro. Dubito che ti sia stato chiesto di usare BigDecimal, quindi ti basta solo cambiare in

    public double getStipendio()


    Mentre invece la classe Dipendente1 NON va affatto bene.

    I due campi nome/stipendio in Dipendente sono private, quindi NON puoi accedere direttamente ai campi da un'altra classe. Pertanto non puoi fare

    a.nome="Rossi"; // NO!
    a.stipendio=2100; // NO!


    In Dipendente hai messo a disposizione un costruttore che riceve i due dati. Quindi è questo che devi usare per costruire un oggetto Dipendente.

    Non devi fare:

    new Dipendente();

    ma (es.):

    new Dipendente("un nome", 1234.56);


    Inoltre b.getNome(); e b.getStipendio(); usati così da soli non servono a nulla. getNome() restituisce un String che non stai assegnando/passando ad altro. Quindi è inutile.


    Con queste informazioni, correggi il codice e se hai altri dubbi/problemi, chiedi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.