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

    [JAVA] problema memoria su variabili in varie classi

    per farvi capire il mio problema ho deciso di "sviluppare" un programma test :
    eccolo di seguito molto velocemente:
    il programmino ha 4 classi ed è puramente indicativo :
    MAin ( Start)

    codice:
    public class start {
    
    	
    	public static void main(String[] args) {
    		Esempio es = new Esempio();
    		Test tes = new Test();
    		es.welcome();
    		tes.provaStampa();
    		
    
    	}
    
    }
    super classe (Principale):

    codice:
    public class Principale {
    	private int prova;
    
    	public int getProva() {
    		return prova;
    	}
    
    	public void setProva(int prova) {
    		this.prova = prova;
    	}
    	
    
    }
    e ora di seguito le due classi satellite ( Esempio)

    codice:
    import java.util.Scanner;
    public class Esempio extends Principale{
    	
    Scanner tastiera = new Scanner(System.in); 
    	public void welcome(){
    	System.out.println ("Digita un numero");
    	super.setProva(tastiera.nextInt());
    	System.out.println ("hai digitato " + super.getProva());
    	}
    }
    e l' altra Test


    codice:
    public class Test extends Principale {
    	public void provaStampa() {
    		System.out.println ("hai digitato per caso " + super.getProva() + " ?");
    		
    	}
    
    }
    ok ora eseguo e digito come valore 5 e l' output su eclipse è:

    codice:
    Digita un numero
    5
    hai digitato 5
    hai digitato per caso 0 ?
    ok ,ora la mia domanda è: perchè se provo a chiamare la variabile da un altra classe ( in questo caso test ) diversamente da quella dove l'ho inserita con scanner mi fa ritornare 0 a posto di 5 come ho inserito ?
    dove sbaglio ? devo fare un costruttore? non ci capisco... sto sviluppando il mio primo progetto grosso ma sono fermo qui se carico una variabile da un altra classe non riesco a importarla....
    spero di essermi spiegato ;D
    accorete numerosi
    grazie in anticipo Elia

  2. #2
    Capisco che possa trattarsi di un esempio, ma in ogni caso ha poco senso ciò che hai scritto e non credo tu abbia afferrato bene il concetto di ereditarietà.
    Il problema che ti si presenta è ovvio in quanto Esempio e Test sono due classi distinte anche se entrambe estendono Principale.
    Pur non capendo bene lo scopo di ciò che cuoi fare, se vuoi che l'attributo prova abbia un valore unico per entrambe le classi devi dichiararla static:

    codice:
    public class Principale {
    	private static int prova;
    
    	public int getProva() {
    		return prova;
    	}
    
    	public void setProva(int prova) {
    		Principale.prova = prova;
    	}
    	
    
    }
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    grazie mille per la risposta
    ora provo
    praticamente nella realtà del mio programma:
    nella super classe dichiaro tutte le variabili del programma poi nella UserInterface immetto le variabili con Scanner , il mio problema è :se provo a richiamare queste variabilii inserite nel UIn nella classe Businness inteface ( un 'altra classe ) per farli eseguire delle operazioni non riesco
    secondo voi sto sbagliando prorprio struttura del programma?

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.