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

    [Java]Priblema con abstract

    Ho questo cod:
    codice:
    import java.util.*;
    /*
     *  La classe astratta di prova
     */
     abstract class ATest {
     	abstract void saluto();
     }
    /*
     * L'interfaccia di prova
     */
    interface IProva {
    	int incr();	
    }
    /*
     * La classe Base che implementa IProva
     */
    class Test implements IProva extends ATest {
    	private String nome;
    	public static int get_cont;
    	public static int set_cont;
    	public static int cont;
    
    	public String getNome() {
    		System.out.println("~~ GetNome Invocato: Chiamata " + get_cont +" ~~ \n");
    		get_cont++;
    		return nome;
    	}
    
    	public String setNome(String nm) {
    		System.out.println("~~ SetNome Invocato: Chamata " + set_cont +" ~~ \n");
    		this.nome = nm;
    		set_cont++;
    		return this.nome;
    	}
    
    	public Test() {
    		System.out.println("~~ Test Invocato ~~ \n");
    	}
    	
    	public int incr() {
    		
    		return cont++;
    	}
    	
    	public void saluto() {
    		System.out.println("Ciao da Test\n");
    	}
    }
    /*
     * La classe derivate che estende Test e implementa IProva
     */
    class Test2 extends Test implements IProva {
    	public static int conts;
    	
    	public Test2() {
    		System.out.println("~~ Test2 Invocato ~~ \n");
    	}	
    	
    	public int incr() {
    		
    		return conts++;
    	}
    	
    	public void saluto() {
    		System.out.println("Ciao da Test2\n");
    	}
    } 
    /*
     * La classe princ che contiene il main()
     */
    class Prova {
    	public static void main(String[] args) {
    		Test ts = new Test();
    		Test2 tt = new Test2();
    		String nom = "Luca";
    		String nom2 = "Erica";
    		ts.setNome(nom);
    		System.out.println("Il mio nome: " + ts.getNome() + "\n");
    	}
    	
    }

    Ma Mi da:
    --------------------Configuration: sdk <Default>--------------------
    C:\Progetti\Java\Prova.java:17: '{' expected
    class Test implements IProva extends ATest {
    ^
    C:\Progetti\Java\Prova.java:81: '}' expected
    }
    ^
    C:\Progetti\Java\Prova.java:17: Test should be declared abstract; it does not define incr() in Test
    class Test implements IProva extends ATest {
    ^
    C:\Progetti\Java\Prova.java:53: inner classes cannot have static declarations
    public static int conts;
    ^
    C:\Progetti\Java\Prova.java:74: non-static variable this cannot be referenced from a static context
    Test2 tt = new Test2();
    ^
    C:\Progetti\Java\Prova.java:77: cannot resolve symbol
    symbol : method setNome (java.lang.String)
    location: class Test
    ts.setNome(nom);
    ^
    C:\Progetti\Java\Prova.java:78: cannot resolve symbol
    symbol : method getNome ()
    location: class Test
    System.out.println("Il mio nome: " + ts.getNome() + "\n");
    ^
    C:\Progetti\Java\Prova.java:72: inner classes cannot have static declarations
    public static void main(String[] args) {
    ^
    8 errors

    Process completed.
    Why?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    Scrivi così la classe Test:
    class Test extends ATest implements IProva{....}

    prima estendi e poi implementi

    Ciauz


    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    hai ragione!
    Come esercizio fa schifo, vero?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  4. #4
    L'importante è che hai capito
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #5
    sono pazzo!
    Ekko l'esercizio finale:
    codice:
    //: Prova.java
    import java.util.*;
    
    /*
     *  La classe astratta di prova
     */
     abstract class ATest {
     	abstract void saluto();
     }
    /*
     * L'interfaccia di prova
     */
    interface IProva {
    	int incr();	
    }
    /*
     * La classe Base che implementa IProva
     */
    class Test extends ATest implements IProva {
    	private String nome;
    	public static int get_cont;
    	public static int set_cont;
    	public static int cont;
    
    	public String getNome() {
    		System.out.println("~~ GetNome Invocato: Chiamata " + get_cont +" ~~ \n");
    		get_cont++;
    		return nome;
    	}
    
    	public String setNome(String nm) {
    		System.out.println("~~ SetNome Invocato: Chamata " + set_cont +" ~~ \n");
    		this.nome = nm;
    		set_cont++;
    		return this.nome;
    	}
    
    	public Test() {
    		System.out.println("~~ Test Invocato ~~ \n");
    	}
    	
    	public int incr() {	
    		return cont++;
    	}
    	
    	public void saluto() {
    		System.out.println("Ciao da Test\n");
    	}
    }
    /*
     * La classe derivate che estende Test e implementa IProva
     */
    class Test2 extends Test implements IProva {
    	public static int conts;
    	
    	public Test2() {
    		System.out.println("~~ Test2 Invocato ~~ \n");
    	}	
    	
    	public int incr() {
    		return conts++;
    	}
    	
    	public void saluto() {
    		System.out.println("Ciao da Test2\n");
    	}
    } 
    /*
     * La classe princ che contiene il main()
     */
    class Prova {
    	public static void main(String[] args) {
    		Test ts = new Test();
    		Test2 tt = new Test2();
    		String nom = "Luca";
    		String nom2 = "Erica";
    		ts.setNome(nom);
    		System.out.println("Valore prima cont = " + ts.cont +"\n");
    		ts.incr();
    		System.out.println("Valore dopo cont = " + ts.cont +"\n");
    		
    		System.out.println("Valore prima conts = " + tt.conts +"\n");
    		tt.incr();
    		System.out.println("Valore dopo conts = " + tt.conts +"\n");
    		
    		System.out.println("Il mio nome: " + ts.getNome() + "\n");
    		System.out.println("Il mio nome: " + ts.getNome() + "\n");
    	}
    	
    }
    //:-
    Metto troppi conferme secondo te?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  6. #6
    codice:
    class Test extends ATest implements IProva
    Potresti anche non metterlo implements IProva , dato che estendi dalla classe Test che implementa a sua volta IProva.

    Metto troppi conferme secondo te?
    :master: Non l'ho capita
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  7. #7
    Hai ragione, ma per sicurezza!
    Cmq intendo tutti quie mess tipo System.out.println("~~ GetNome Invocato: Chiamata " + get_cont +" ~~ \n");...............che io chiamo sentinelle!

    Ho fatto male a metterne cosi tante?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #8
    Sono il primo mezzo di debug :gren: :gren: :gren:
    Spesso , dato che uso Textpad , i miei programmi sono disseminati di System.out.println()
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  9. #9
    Originariamente inviato da Zero-2
    Sono il primo mezzo di debug :gren: :gren: :gren:
    Spesso , dato che uso Textpad , i miei programmi sono disseminati di System.out.println()

    Quindi dici che è utile??
    Come debugger che usi tu?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  10. #10
    Se devo fare programmini semplici con poche classi , uso il metodo dei System.out.println() e il TextPad , se ,invece, il programma ha molte classi uso JBuilder o eclipse e relativi debugger.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.