Aiuto in Java

di il
14 risposte

Aiuto in Java

Buonasera a tutti!! Ho scritto il seguente codice:

classes.permesso package;

import classes.per.introduction. *;

import java.io. *;

public class Permission implements Serializable {

	introduction of private introduction;

	public Permission () {
		intro = new Introduction ();
	}

	public Introduction get_intro () {
		return intro;
	}
}
su altro file java ho iniziato un main:

public class Permessoprova{
	public static void main(String args[]) {
		Permesso p = new Permesso();
		...
	}
}
Definita la variabile p, non riesco a riempirla con la funzione set e stamparla con get... Qualcuno può aiutarmi a risolvere questo problema?

14 Risposte

  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    Definita la variabile p, non riesco a riempirla con la funzione set e stamparla con get... Qualcuno può aiutarmi a risolvere questo problema?
    Scusa ma ... non si capisce nulla. Nel secondo codice si vede l'uso di una classe Permesso. Nel primo codice c'è una classe Permission (sono due cose diverse?). Poi in Permission non si vedono "setter". C'è solo un "getter" get_intro tra l'altro scritto pure "male" (con l'underscore).
    Poi nel primo codice si vede:

    classes.permesso package;
    (sintassi errata)

    introduction of private introduction;
    (non ha assolutamente senso).

    Quindi ... cosa pensi di ottenere con un codice del genere?
  • Re: Aiuto in Java

    Scusami, ho caricato male il codice. Lo ricarico nuovamente e cerco di spiegarmi meglio..
    
    package classes.permesso;
    
    import classes.permesso.introduzione.*;
    import java.io.*;
    
    public class Permesso implements Serializable{
      private Introduzione intro;
    
      public Permesso(){
        intro = new Introduzione();
      }
    
      public Introduzione get_intro(){
        return intro;
    
    }
    
    questo file java fa riferimento ad un altro file con il seguente codice:
    
    package classes.permesso.introduzione;
    
    import classes.permesso.introduzione.dati.*;
    
    import java.io.*;
    
    public class Introduzione implements Serializable{
      private Dati dati;
    
      public Introduzione(){
        dati = new Dati();
      }
    
      public Dati get_dati(){
        return dati;
      }
    }
    
    
    che a sua volta fa riferimento al file java:
    
    package classes.permesso.introduzione.dati;
    
    import java.io.*;
    
    public class Dati implements Serializable{
    
      private String Luogo;
    
        public void set_Luogo(String Luogo){
          this.Luogo= Luogo;
        }
       
        public String get_Luogo(){
          return Luogo;
        }
      }
    
    Quindi la domanda è.. con un main dichiarando la variabile permesso come riesco a riempirla con la funzione set e stamparla con get??? Grazie e scusate di nuovo!!
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    Scusami, ho caricato male il codice. Lo ricarico nuovamente e cerco di spiegarmi meglio..
    Ok, molto meglio. Prova però ad abituarti alle "convenzioni". getIntro, non get_intro. getDati, non get_dati ecc...
    Variabili/parametri luogo, non Luogo.

    giorgiomarte ha scritto:


    con un main dichiarando la variabile permesso come riesco a riempirla con la funzione set e stamparla con get???
    Semplicemente invocando quei metodi!
    Ma c'è comunque una questione. Le tue classi hanno package specifici. Come stai compilando? Con i tools del JDK "a mano" da prompt? Da un IDE?
  • Re: Aiuto in Java

    Come le invoco quei metodi?? questo che non riesco a capire..
    
    import java.io.*;
    import classes.permesso.*;
    
    public class Permessoprova{
      public static void main(String[] args) {
    
            Permesso p = new Permesso();
      }
    }
    
    Arrivato a questo punto dove dichiaro la variabile.. come le invoco le funzioni per tale scopo??
    Cmq per quanto riguarda la domanda sulla compilazione.. sto compilando da prompt!
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    Come le invoco quei metodi??
    Permesso non ha "setter". Vedo che il costruttore crea l'oggetto Introduzione. E Introduzione nel costruttore crea l'oggetto Dati.

    giorgiomarte ha scritto:


    Arrivato a questo punto dove dichiaro la variabile.. come le invoco le funzioni per tale scopo??
    Visto che c'è già tutta la "catena" di oggetti creando Permesso, se vuoi es. settare il luogo:
    Permesso p = new Permesso();
    p.get_intro().get_dati().set_Luogo("blabla");

    giorgiomarte ha scritto:


    Cmq per quanto riguarda la domanda sulla compilazione.. sto compilando da prompt!
    Devi considerare i concetti di package e "classpath" e strutturare appropriatamente le cartelle in modo che "riflettano" i nomi di package.
  • Re: Aiuto in Java

    OK! Quindi quando eseguo e mi da questo errore:

    Permessoa.java:2: error: package classes.permeso does not exist
    import classes.permesso.*;
    Permessoprova.java:8: error: cannot find symbol
    Permesso p = new Permesso();
    symbol: class Permesso
    location: class Permessoprova
    Permessoprova.java:8: error: cannot find symbol
    Permesso p = new Permesso();
    symbol: class Permesso
    location: class Permessoprova
    3 errors

    E' dovuto al fatto di strutturare appropriatamente le cartelle?? Perchè io ho fatto una cartella classes che contiene la cartella permesso con all'interno il file java Permesso -> all'interno della cartella permesso c'è la cartella introduzione con il file java Introduzione e cosi via.. Eseguo il programma posizionandomi nella cartella classes..
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    E' dovuto al fatto di strutturare appropriatamente le cartelle?? Perchè io ho fatto una cartella classes che contiene la cartella permesso con all'interno il file java Permesso -> all'interno della cartella permesso c'è la cartella introduzione con il file java Introduzione e cosi via.. Eseguo il programma posizionandomi nella cartella classes..
    No. Allora (Permessoprova presumo che non sia in un package specifico):

    XYZ\Permessoprova.java
    XYZ\classes\permesso\Permesso.java
    XYZ\classes\permesso\introduzione\Introduzione.java
    XYZ\classes\permesso\introduzione\dati\Dati.java


    La XYZ una qualunque directory che vuoi. Quale sia e come si chiami realmente il path XYZ NON ha importanza.

    Poi devi stare nella XYZ ( cd XYZ ).

    Assicurati di NON avere la variabile di ambiente CLASSPATH. O se ce l'hai, assicurati che contenga (tra eventuali altri path) il punto "." (=directory corrente).

    Quindi da prompt nella XYZ:

    javac Permessoprova.java

    e tutte le classi si compilano transitivamente e i .class stanno vicino al rispettivo .java.

    Poi

    java Permessoprova


    Se vuoi esplicitare il "classpath" ai comandi javac/java c'è l'opzione -classpath o abbreviata -cp
  • Re: Aiuto in Java

    No. Allora (Permessoprova presumo che non sia in un package specifico):

    XYZ\Permessoprova.java
    XYZ\classes\permesso\Permesso.java
    XYZ\classes\permesso\introduzione\Introduzione.java
    XYZ\classes\permesso\introduzione\dati\Dati.java


    La XYZ una qualunque directory che vuoi. Quale sia e come si chiami realmente il path XYZ NON ha importanza.

    Poi devi stare nella XYZ ( cd XYZ ).

    Assicurati di NON avere la variabile di ambiente CLASSPATH. O se ce l'hai, assicurati che contenga (tra eventuali altri path) il punto "." (=directory corrente).

    Quindi da prompt nella XYZ:

    javac Permessoprova.java
    Fino qua ok.. solo che quando eseguo il programma nella directory con il comando: javac Permessoprova.java, ottengo proprio questo errore:

    Permessoa.java:2: error: package classes.permeso does not exist
    import classes.permesso.*;
    Permessoprova.java:8: error: cannot find symbol
    Permesso p = new Permesso();
    symbol: class Permesso
    location: class Permessoprova
    Permessoprova.java:8: error: cannot find symbol
    Permesso p = new Permesso();
    symbol: class Permesso
    location: class Permessoprova
    3 errors

    Può essere dovuto all'import nel file Permessoprova.java??
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    Può essere dovuto all'import nel file Permessoprova.java??
    Se Permessoprova NON è in un package (non ha dichiarazione package), allora è giusto come ho detto prima, Permessoprova.java direttamente nella XYZ (ribadisco, qualunque sia questa XYZ).

    E se segui quanto ho detto (sorgenti con sintassi/struttura corretta, ovviamente), compili senza problemi.
  • Re: Aiuto in Java

    OK grazie !! invece se Permessoprova ha dichiarazione package ( in questo caso: package classes) ??? In tal caso come si procede?? perchè l'errore presumo sia dovuto a quello ...
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    OK grazie !! invece se Permessoprova ha dichiarazione package ( in questo caso: package classes) ??? In tal caso come si procede?? perchè l'errore presumo sia dovuto a quello ...
    Se Permessoprova ha

    package classes;

    (nota: prima nel codice postato NON l'hai messo)

    Allora:

    XYZ\classes\Permessoprova.java

    Poi stando nella XYZ (NON sotto classes):

    javac classes\Permessoprova.java

    Quindi per avviare

    java classes.Permessoprova

    (a java si passa il NOME qualificato della classe, NON un pathname)
  • Re: Aiuto in Java

    package classes;

    (nota: prima nel codice postato NON l'hai messo)
    si scusa hai ragione ..
    Comunque eseguendo in questo modo ottengo un ulteriore errore:

    javac: file not found: classesPermessoprova.java
    Usage: javac <options> <source files>
    use --help for a list of possible options

    Ho eseguito il programma non sotto classes.. Cosa è dovuto ??
  • Re: Aiuto in Java

    giorgiomarte ha scritto:


    package classes;

    (nota: prima nel codice postato NON l'hai messo)
    si scusa hai ragione ..
    Comunque eseguendo in questo modo ottengo un ulteriore errore:

    javac: file not found: classesPermessoprova.java
    Usage: javac <options> <source files>
    use --help for a list of possible options

    Ho eseguito il programma non sotto classes.. Cosa è dovuto ??
    cd XYZ

    javac classes\Permessoprova.java

    java classes.Permessoprova
  • Re: Aiuto in Java

    Si sbagliavo a mettere \ .. Grazie mille !!!
Devi accedere o registrarti per scrivere nel forum
14 risposte