[Risolto]È possibile inserire un metodo in uno switch?

di il
26 risposte

26 Risposte - Pagina 2

  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    Gli array si possono istanziare e usare solo nella classe main giusto?
    E poi, come mi diresti come usarli in questo caso? ci penso da ieri e non mi è venuto in mente un modo intelligente per usarli.
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    federico992 ha scritto:


    Gli array si possono istanziare e usare solo nella classe main giusto?
    No, ovunque. Come per qualunque altra classe istanziabile.

    federico992 ha scritto:


    E poi, come mi diresti come usarli in questo caso? ci penso da ieri e non mi è venuto in mente un modo intelligente per usarli.
    Se hai visto il giorniMesi che ho scritto prima io (completa i valori per tutti i 12 mesi, ovviamente), all'interno della tua classe Data lo usi con giorniMesi[indice] dove indice è zero-based. E siccome i mesi partono da 1, basta usare giorniMesi[mese-1]
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    Mi puoi dire dove sbaglio qui?
    
    public class arrayMesi {
        
    	int mesi [] = new int [12];
    	
    	public void assegnaArray(){
    		
    	
        for(int i=0; i<mesi.length; i++){
    		mesi [i] = i+1;
    		System.out.println(mesi[i]);
    		}						//fine ciclo for
    	
    	}							//fine assegnazione
    	
    	public void stampaValori() {
    	
    		System.out.println(mesi[0]);
    		System.out.println(mesi[1]);
    		System.out.println(mesi[2]);
    		System.out.println(mesi[3]);
    		System.out.println(mesi[4]);
    		System.out.println(mesi[5]);
    		System.out.println(mesi[6]);
    		System.out.println(mesi[7]);
    		System.out.println(mesi[8]);
    		System.out.println(mesi[9]);
    		System.out.println(mesi[10]);
    		System.out.println(mesi[11]);
    	}							//fine metodo stampaValori
    	} 							//fine classe
    	
    
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    federico992 ha scritto:


    Mi puoi dire dove sbaglio qui?
    Beh, innanzitutto a che ti serve un array che contiene 1, 2, 3, ecc....., 11, 12 ??

    Tecnicamente non vedo nulla di "sbagliato". Ma è proprio il senso di tutto questo che è "dubbio".
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    Ok, è chiaro che ho un vuoto totale sugli array.

    Quando io faccio System.out.println(mese[1]);
    non sto chiedendo di stamparmi il valore immagazzinato nell'array mese nella posizione 1?
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    federico992 ha scritto:


    Quando io faccio System.out.println(mese[1]);
    non sto chiedendo di stamparmi il valore immagazzinato nell'array mese nella posizione 1?
    Sì esatto (la seconda posizione). Ma il punto era un altro: vai a popolare l'array mesi con i valori da 1 a 12 ... CHE SERVE?
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    @federico992 secondo me il senso dell'array è di porre un massimo di giorni in ogni posizione, quindi la posizione x dell'array varrà come il massimo giorno del mese x+1, quindi posizione 0 sarà 31 perché 0+1=1 quindi gennaio, e gennaio ha al massimi 31 giorni. L'array quindi sarà {31,28,31,30,31,30,31,31,30,31,30,31} oppure in posizione 1 ci sarà 29 se l'anno è bisestile
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    Non vi sto capendo, mi potreste abbozzare un codice per favore?
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    federico992 ha scritto:


    Non vi sto capendo, mi potreste abbozzare un codice per favore?
    L'array giorniMesi l'ho scritto qui (come detto, è da completare).

    In un setMese, verifichi che il parametro sia un valore tra 1 e 12 compresi. Se sì, assegni al campo e stop. Se no, fai altro (es. eccezione). Il campo mese è quindi sempre un valore valido 1-12.
    In un setGiorno, devi verificare il parametro basandoti sia sul mese, sia sull'anno (per il bisestile) e sull'array giorniMesi.

    E una cosa semplice da fare è piccolo metodo di utilità interno alla classe (anche non esposto all'esterno) che dato un mese/anno dice quanti giorni ha il mese.

    private static int getMaxGiorniMese(int mese, int anno) { .......... }

    Qui dentro: a) usi l'array giorniMesi per ottenere il numero "standard" di giorni nel mese (ripeto: giorniMesi[mese-1] è semplice), poi b) se l'anno è bisestile E il mese è 2 (febbraio), aggiungi 1.
    Il risultato lo restituisci.

    In setGiorno quindi alla fine devi verificare che il giorno ricevuto sia compreso tra 1 E getMaxGiorniMese(mese, anno) entrambi valori inclusi.
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    No, non ci sono ancora. Mi devo riguardare da capo gli array, pensa che neanche ho chiaro perché hai usato private e static.
    Penso che ci riproverò più tardi, creerò un altro post nel caso
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    federico992 ha scritto:


    No, non ci sono ancora. Mi devo riguardare da capo gli array, pensa che neanche ho chiaro perché hai usato private e static.
    Penso che ci riproverò più tardi, creerò un altro post nel caso
    Ok, va bene ... capisco. Comunque ai fini della gestione della tua classe Data, la questione del "private" e "static" sull'array dei giorni è proprio la parte direi meno importante.
    Chiaramente private (e i livelli di accesso in generale) e static (come anche gli altri modificatori) andrebbero compresi bene per poter andare avanti in Java.
  • Re: [Risolto]È possibile inserire un metodo in uno switch?

    Grazie comunque del tuo aiuto! Sono sicuro che ci sentiremo spesso
Devi accedere o registrarti per scrivere nel forum
26 risposte