Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con set

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24

    Problema con set

    Salve a tutti, è il mio primo post e non sono molto esperto di progr. java, quindi scusate in anticipo tutte le cavolate che potrò dire ^^.

    Sto realizzando un mini programma che deve leggere da input una matricola di uno studente e salvarla nella relativa classe per permettere poi l'esportazione su file .txt; ma sto avendo moltissimi problemi nel passaggio dell'informazione dal main alla classe studente (classe di destinazione della variabile matricola).

    questo è il main:
    codice:
    public class Principale {
    	
    	public static void main(String[] args) {
    		
    		System.out.println("Se sei uno studente premi 0 \n Se sei un docente premi 1 \n");
    		int x;
    		x = Read.readInt();
    		
    		if(x==0){
    		String l;	
    			Studente.setmatricola();{
    				String j = Read.readString();	
    				}
    		}if(x==1){
    			System.out.println("docente");
    		}else{
    			System.out.println("input errato");
    		}
    	}
    
    }
    mentre questo è la classe studente:
    codice:
    public class Studente {
    	
    	static String matricola;
    	
    	public Studente( String h ){
    		matricola = h;
    	}
    	static void setmatricola(String h){
    		matricola=h;
    	}
    	public String getmatricola(){
    		return matricola;
    	}
    }
    I miei problemi sono al punto del setmatricola, non ho la più pallida idea di cosa possa essere.
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con set

    Originariamente inviato da anearion
    I miei problemi sono al punto del setmatricola, non ho la più pallida idea di cosa possa essere.
    La classe Studente non è corretta. Questa classe dovrebbe avere il campo 'matricola' di "istanza" ... non di "classe" (cioè static). E pure il metodi getter/setter devono essere di "istanza" ... e ripeto non di classe.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24
    in origine la classe studente era private, ed anche 'matricola', mentre i metodi setter e getter erano pubblici, lo ho cambiati in static per provare, dato che il compilatore (eclipse in ambiente linux) mi diceva che il metodo Studente.setmatricola(); non poteva operare su un metodo non static.
    Comunque ora ho apportato alcuni cambiamenti, ma mi da un errore sulla chiamate del costruttore:
    codice:
    public class Principale {
    	
    	public static void main(String[] args) {
    		
    		public Studente();  /* questo è l'errore: Syntax error, insert "EnumBody" to complete BlockStatements */
    		
    		System.out.println("Se sei uno studente premi 0 \n Se sei un docente premi 1 \n");
    		int x;
    		x = Read.readInt();
    		
    		if(x==0){
    			
    		
    		
    		String h;	
    		h = Read.readString();
    		Studente.setmatricola(h);
    		}if(x==1){
    			System.out.println("guardia di merda");
    		}else{
    			System.out.println("o 0 o 1 scemo");
    		}
    	}
    }
    questa è la classe Studente modificata:
    codice:
    public class Studente {
    	
    	public String matricola;
    	
    	public Studente( String h ){
    		matricola = h;
    	}
    	public void setmatricola(String j){
    		matricola=j;
    	}
    	public String getmatricola(){
    		return matricola;
    	}
    }
    Grazie ancora per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da anearion
    questa è la classe Studente modificata:
    codice:
    public class Studente {
    	
    	public String matricola;
    	
    	public Studente( String h ){
    		matricola = h;
    	}
    	public void setmatricola(String j){
    		matricola=j;
    	}
    	public String getmatricola(){
    		return matricola;
    	}
    }
    'matricola' dovrebbe essere private e i setter/getter dovrebbero essere setMatricola() e getMatricola(). Sono questioni di denominazione che è bene se le apprendi fin da ora.

    Fatto questo .... istanzi un oggetto di tipo Studente:

    Studente s = new Studente();

    e usando 's' invochi i metodi. Non Studente.blabla() Ma s.blabla()!!!
    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24
    ok problema risolto, grazie mille

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.