|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
|
[java] Mi dite dove sbaglio ?
ecco il sorgente
public class Reddito { private static String nome; private static int stipendio; private static int age; public Reddito ( String n, int a, int s ) { nome = n; age = a; stipendio = s; } public Reddito () { nome = "default"; age = 0; stipendio = 1000; } public static boolean aggiornaStipendio() { int base = 1000; stipendio = base + 50 * age; if ( stipendio == base ) return false; else return true; } public void stampa() { System.out.print("nome: " + nome ); System.out.print(" stipendio: " + stipendio ); System.out.println(" anzianita':" + age + " anni."); } public static void main ( String [] args ) { System.out.println(" Inserisci eta' "); int age1 = SavitchIn.readLineInt(); System.out.println(" Inserisci stipendio "); int sti1 = SavitchIn.readLineInt(); System.out.println(" Inserisci eta' "); int age2 = SavitchIn.readLineInt(); System.out.println(" Inserisci stipendio "); int sti2 = SavitchIn.readLineInt(); Reddito p1 = new Reddito( "Bianchi", age1, sti1 ); Reddito p2 = new Reddito( "Verdi", age2, sti2 ); Reddito p3 = new Reddito(); p3.nome = "Rossi"; p3.age = 5; p1.stampa(); p2.stampa(); p3.stampa(); System.out.println(); p3.aggiornaStipendio(); if ( p1.aggiornaStipendio() == true ) p2.stipendio = p1.stipendio; p1.stampa(); p2.stampa(); p3.stampa(); }} perche' nella stampa non appaiono il signor bianchi e il sig. verdi ma solo il sig. rossi? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2003
Città: pisa
Messaggi: 141
|
perché hai dichiarato static le variabili nome, stipendio ed age e anche il metodo aggiornaStipendio: questo significa che ne esiste una sola copia per tutti gli oggetti che andrai ad istanziare
togli gli static e riprova |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
|
ok funziona grazie
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Monza
Messaggi: 769
|
static quindi e' un po come final per le variabili?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
Quote:
final significa che la variabile / metodo non può essere modificata dalle sottoclassi. la puoi usare ad esempio per le costanti. static significa che il metodo / variabile è una sola per tutte le istanze della classe. naturalmente puoi usare static e final insieme (ottimo per le costanti appunto) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:44.


















