Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [JAVA] sto imparando... errore Cannot Find Symbol

    Mi spiegate perchè non posso fare così?
    codice:
    import java.io.*;
    
    public class ScriviFile
    {
    	protected String nomeFile;
    	
    	// Costruttore
    	public void ScriviSuFile (String nomeFile)
    	{
    		FileOutputStream file = new FileOutputStream(nomeFile);
    		PrintStream Output = new PrintStream(file);
    	}
    	
    	public void scriviDati (String dati)
    	{
    		Output.println(dati);
    	}
    	
    	public void chiudiFile()
    	{
    		Output.close();
    	}	
    }
    al momento di compilare mi dice:
    codice:
    Scrivifile.java:21: cannot find symbol
    symbol  : variable Output
    location: class ScriviFile
    		Output.println(dati);
    		^
    Scrivifile.java:26: cannot find symbol
    symbol  : variable Output
    location: class ScriviFile
    		Output.close();
    		^
    2 errors
    Process javac exited with code 1
    è solo per fare un pò di esperimenti... mmm casino...

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

    Re: [JAVA] sto imparando... errore Cannot Find Symbol

    Originariamente inviato da PazZII
    codice:
    	// Costruttore
    	public void ScriviSuFile (String nomeFile)
    Questo non è un "costruttore" .... ma un normale metodo.

    Originariamente inviato da PazZII
    codice:
    	public void scriviDati (String dati)
    	{
    		Output.println(dati);
    	}
    	
    	public void chiudiFile()
    	{
    		Output.close();
    	}
    Dove sta la variabile Output??? Dal momento che è una variabile locale di ScriviSuFile, non è visibile al di fuori.

    Rivedi i concetti di costruttori e variabili.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ed aggiungo... visto che stai imparando, impara ad usare fin da subito le normali regole di nomenclatura Java:

    1) la lettera iniziale maiuscola da usarsi SEMPRE e SOLO con i nomi delle classi (e interfacce)
    2) Nomi di metodi e variabili, SEMPRE con iniziale minuscola
    3) Nomi di classi, metodi e variabili usano la notazione "a gobba di cammello", ovvero, tutte le lettere iniziali di ciascuna parola interna al nome, va maiuscola
    4) i nomi delle costanti vanno scritte tutte in MAIUSCOLO.

    Esempi:

    codice:
    Figura  --> Nome di una classe (o interfaccia)
    TriangoloRettangolo  --> Nome di una classe (o interfaccia)
    paintComponent()  --> nome di un metodo
    velocitaMassima --> nome di una variabile
    MAX_VALUE  --> nome di una costante

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4

    Re: Re: [JAVA] sto imparando... errore Cannot Find Symbol

    Originariamente inviato da andbin
    Questo non è un "costruttore" .... ma un normale metodo.

    Dove sta la variabile Output??? Dal momento che è una variabile locale di ScriviSuFile, non è visibile al di fuori.

    Rivedi i concetti di costruttori e variabili.
    Sì è vero ho sbagliato a NON scrivere il costruttore con il nome stesso della classe (refuso)

    Sono daccordo che non c'è la variabile Output che andava dichiarata come ho dichiarato "protected String nomeFile;" ma...... che tipo di variabile è Output? non è un oggetto?

  5. #5
    Originariamente inviato da LeleFT
    Ed aggiungo... visto che stai imparando, impara ad usare fin da subito le normali regole di nomenclatura Java:

    1) la lettera iniziale maiuscola da usarsi SEMPRE e SOLO con i nomi delle classi (e interfacce)
    2) Nomi di metodi e variabili, SEMPRE con iniziale minuscola
    3) Nomi di classi, metodi e variabili usano la notazione "a gobba di cammello", ovvero, tutte le lettere iniziali di ciascuna parola interna al nome, va maiuscola
    4) i nomi delle costanti vanno scritte tutte in MAIUSCOLO.

    Esempi:

    codice:
    Figura  --> Nome di una classe (o interfaccia)
    TriangoloRettangolo  --> Nome di una classe (o interfaccia)
    paintComponent()  --> nome di un metodo
    velocitaMassima --> nome di una variabile
    MAX_VALUE  --> nome di una costante
    zizi queste regole le so e "cerco" di seguirle il più possibile.
    Grazie!

    Ciao.

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

    Re: Re: Re: [JAVA] sto imparando... errore Cannot Find Symbol

    Originariamente inviato da PazZII
    Sì è vero ho sbagliato a NON scrivere il costruttore con il nome stesso della classe (refuso)
    Il costruttore ha 2 caratteristiche principali: ha lo stesso nome della classe e sopratutto non dichiara un tipo di ritorno! (nemmeno void!!)

    Originariamente inviato da PazZII
    Sono daccordo che non c'è la variabile Output che andava dichiarata come ho dichiarato "protected String nomeFile;" ma...... che tipo di variabile è Output? non è un oggetto?
    Il tipo di Output l'hai anche messo ... è PrintStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7

    Re: Re: Re: Re: [JAVA] sto imparando... errore Cannot Find Symbol

    Originariamente inviato da andbin
    Il costruttore ha 2 caratteristiche principali: ha lo stesso nome della classe e sopratutto non dichiara un tipo di ritorno! (nemmeno void!!)

    Il tipo di Output l'hai anche messo ... è PrintStream.
    gosh... così mi dà zero errori...

    codice:
    import java.io.*;
    
    public class ScriviFile
    {
    	protected String nomeFile;
    	protected PrintStream Output;
    	
    	// Costruttore
    	public ScriviFile (String nomeFile) throws FileNotFoundException
    	{
    		FileOutputStream file = new FileOutputStream(nomeFile);
    		PrintStream Output = new PrintStream(file);
    	}
    	
    	public void scriviDati (String dati)
    	{
    		Output.println(dati);
    	}
    	
    	public void chiudiFile()
    	{
    		Output.close();
    	}	
    }
    Ho azzeccato?
    Non sapevo che "PrintStream" indicasse un "tipo" di dati.
    uff... babba bia gome sono messo male

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: Re: Re: Re: Re: [JAVA] sto imparando... errore Cannot Find Symbol

    Originariamente inviato da PazZII
    gosh... così mi dà zero errori...


    Ho azzeccato?
    No: stai continuando ad istanziare un nuovo oggetto PrintStream locale al costruttore, con lo stesso nome della variabile di istanza dichiarata fuori... ma non stai istanziando, appunto, la variabile di istanza.

    Non sapevo che "PrintStream" indicasse un "tipo" di dati.
    uff... babba bia gome sono messo male
    Tutto ciò che precede il nome di una variabile durante la sua dichiarazione indica il tipo.

    Ad ogni modo, correggi il tuo codice:

    codice:
    public ScriviFile (String nomeFile) throws FileNotFoundException
    {
    	FileOutputStream file = new FileOutputStream(nomeFile);
    	PrintStream Output = new PrintStream(file);
    }
    La parte in rosso va tolta.

    E, come ho indicato prima, se vuoi cercare di seguire le norme di nomenclatura, allora la variabile "Output" va chiamata "output" (con la prima lettera minuscola).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    ah caxxo ho capito!!!
    assì.... la luce mi inondaaa

    Grazie!!!!!

  10. #10
    MA QUINDI....
    posso scrivere anche

    codice:
    public ArrayList<String> nomeVariabile
    MA QUINDI....
    un oggetto... è solo... UN TIPO DI DATO

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.