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

    [java] uso delle interfacce

    Non riesco ad utilizzare corretamente le classi interface, non capisci dove sia l'errore in questo semplice programmino:

    codice:
    public interface RuotaDentata {
    	class Parametri {
    		private int spessore = 10;
    		private int diamInterno = 15;
    		private int diamEsterno = 60;
    		public int getSpessore() { return spessore; }
    		public int getDiamInterno() { return diamInterno; }
    		public int getDiamEsterno() { return diamEsterno; }
    		public void setSpessore (int spessore) { this.spessore = spessore; }
    		public void setDiamInterno (int diamInterno) { this.diamInterno = diamInterno; }
    		public void setDiamEsterno (int diamEsterno) { this.diamEsterno = diamEsterno; }
    		public void printParm() {
    			System.out.println ("Spessore: " + spessore);
    			System.out.println ("Diametro interno: " + diamInterno);
    			System.out.println ("Diametro esterno: " + diamEsterno);
    		}
    	}
    	public Parametri getClsParametri();
    	public void calcolo (int omega);
    }
    
    public class ClsRuotaDentata implements RuotaDentata {
    	private Parametri refParms;
    	public ClsRuotaDentata() {
    		refParms = new Parametri();
    	}
    	public Parametri getClsParametri() {
    		return refParms;
    	}
    	public void calcolo (int omega) {
    		// Calcolo parametri di progetto
    		int spessore = omega + 50; // s(omega)
    		refParms.setSpessore (spessore);
    		int diamInterno = omega/2 + 40; // dI(omega)
    		refParms.setDiamInterno (diamInterno);
    		int diamEsterno = omega + 80; // dE(omega)
    		refParms.setDiamEsterno (diamEsterno);
    	}
    }
    public class Pgm_xRuotaDentata {
    	public static void main (String[] args) {
    		ClsRuotaDentata ingranaggio = new ClsRuotaDentata();
    		RuotaDentata.Parametri parms = ingranaggio.getClsParametri();
    		// ClsRuotaDentata.Parametri parms = ingranaggio.getClsParametri();
    		System.out.println ("Parametri di default: ");
    		parms.printParm();
    		ingranaggio.calcolo (100);
    		System.out.println ("\nParametri di progetto: ");
    		parms.printParm();
    	}
    }
    Grazie a tutti!
    Wami agency
    Io odio tutti gli up-loads!

  2. #2
    A me funzia perfettamente.

    Hai messo tutto nello stesso file?
    In tal caso una sola classe puo' essere dichiarata pubblica, le altre devono essere private o interne alla classe pubblica.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao.. ehm solo per la cronaca.. le "classi" interface non puoi utilizzarle come hai fatto tu; esse definiscono solo il comportamento che una determinata classe che implementa l'interfaccia avrà.
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  4. #4
    E' quello che stavo per rispondere, ma poi ho notato che il codice si trova in una classe interna. Cio' e' consentito. Ripeto: funziona, a patto di inserire tutto nello stesso file.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  5. #5
    si ho messo tutto nel file RuotaDentata.java ma nn funziona...

    non ho ben capito devo forse mettere tutto in un'unaca classe?

    tipo

    class RuotaDentata {

    ...tutto il codice interfaccia compresa?

    }

    grazie cmq
    Wami agency
    Io odio tutti gli up-loads!

  6. #6
    Oppure le altre classi vanno rese private.
    Oppure usa tre file separati che e' la cosa migliore.

    Nel file RuotaDentata.java l'unica classe pubblica presente deve essere RuotaDentata.

    Nel tuo caso pero' la classe pubblica dovrebbe essere Pgm_xRuotaDentata, quindi il file sara' Pgm_xRuotaDentata.java
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  7. #7
    ok ora ci sono... grazie mille!!!
    Wami agency
    Io odio tutti gli up-loads!

  8. #8
    prego...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

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.