Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da lbottoni Visualizza il messaggio
    mi imbatto su un qualcosa ancora sconosciuto che vedo solo come un complicars la vita!

    codice:
    class Prova {
        
        int [] a;
        
        
        public static void main(String[] arg){
            
            int [] b;
            a[0]=1;
            
            System.out.println(a[0]);
        }
    }
    Non è affatto un "complicarsi la vita" ... è che non hai (ancora) le basi sul linguaggio. La variabile 'a' è una variabile "di istanza", ovvero è associata a ciascuna istanza di Prova. Nel main sei in un metodo static e non hai alcun oggetto Prova. Anche se istanziassi un oggetto Prova, la variabile di istanza 'a' avrebbe valore null ovvero non punta ad alcun array. Gli array sono oggetti e vanno istanziati specificando la dimensione dell'array.

    Consiglio: prendi/segui un buon valido libro su Java partendo dalle basi. Il fatto che sai php/javascript/ecc... vuol dire relativamente poco.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Consiglio: prendi/segui un buon valido libro su Java partendo dalle basi. Il fatto che sai php/javascript/ecc... vuol dire relativamente poco.
    Walter Savich..900 pagine Però alcuni concetti sono spiegati a distanza di 5/7 capitoli e quindi hai domande che ti poni e che magari il libro non sà spiegare come uno comprende
    Luca Bottoni's World
    www.bottonisworld.com

  3. #3
    dimenticavo (scusa)..grazie andbin
    Luca Bottoni's World
    www.bottonisworld.com

  4. #4
    Scusa andbin,
    ma proprio mi sfugge la complessità data alla semplicità (giuro in perl,vb,vba, etc.. ma i avuto così tanti problemi a iniziare con le ovvietà )non sò java ma non mi fà partire..partito poi vado, ma se non ingrano...ti mostro questo:
    codice:
    class ProvaParametriArray {
        
        //int [] a;
        
        
        public static void main(String[] arg){
            
            b= new int[];
            b[0]=1;
            
            System.out.println(b[0]);
        }
        
    }
    gli errori sono...

    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Syntax error on token "b", VariableDeclaratorId expected after this token
    b cannot be resolved to a type
    Illegal modifier for parameter $missing$; only final is permitted
    Variable must provide either dimension expressions or an array initializer
    b cannot be resolved to a variable
    b cannot be resolved to a variable

    at prova.ProvaParametriArray.main(ProvaParametriArray .java:10)
    e non dire..non hai capito..per ora dico che la semplicità non è sinonimo di java (con ironia e voglia di imparare lo dico)


    correzione...prova 2

    codice:
    class ProvaParametriArray {
        
        //int [] a;
        
        
        public static void main(String[] arg){
            
            b= new int [1];
            b[0]=1;
            
            System.out.println(b[0]);
        }
        
    }
    ma ci mancherebbe che funzioasse

    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    b cannot be resolved to a variable
    b cannot be resolved to a variable
    b cannot be resolved to a variable

    at prova.ProvaParametriArray.main(ProvaParametriArray .java:10)
    Ultima modifica di lbottoni; 03-12-2014 a 21:28
    Luca Bottoni's World
    www.bottonisworld.com

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Quote Originariamente inviata da lbottoni Visualizza il messaggio
    codice:
    class ProvaParametriArray {
        
        //int [] a;
        
        
        public static void main(String[] arg){
            
            b= new int[];
            b[0]=1;
            
            System.out.println(b[0]);
        }
        
    }
    Qui sono sbagliate 2 cose, primo non dichiari la proprietà statica nella classe ne un array locale quindi b è indefinito, secondo non dichiari la grandezza dell'array.

    Quote Originariamente inviata da lbottoni Visualizza il messaggio
    codice:
    class ProvaParametriArray {
        
        //int [] a;
        
        
        public static void main(String[] arg){
            
            b= new int [1];
            b[0]=1;
            
            System.out.println(b[0]);
        }
        
    }
    Qui invece dichiari la grandezza dell'array ma ti scordi sempre di dichiarare b
    codice:
    int[] b = new int[1];
    questo è corretto

    Quote Originariamente inviata da lbottoni Visualizza il messaggio
    per ora dico che la semplicità non è sinonimo di java (con ironia e voglia di imparare lo dico)

    ​Prova ad usare il c++ e vedi cosa non è sinonimo di semplicità

  6. #6
    primo non dichiari la proprietà statica nella classe
    questa non è chiara..in che senso?

    questo è corretto..è giusto ho fatica ancora io a carburare

    ultima..poi non voglio rompere...
    codice:
    class ProvaParametriArray {
        
    //come mai devo dichiarare "static" ???
        static int [] a;
        
        
        public static void main(String[] arg){
            
            a = new int[2] ;
            a[0]=1;
            
            System.out.println(a[0]);
        }
    }
    questo pezzeto di codice funziona, ma se tolgo la postilla "static" si incazza sulla variabile a. Quello che non comprendo è "main" come devo vederlo. Sul libro di savich non ho trovato ancora la definizione di "static" e come ha valore.
    Luca Bottoni's World
    www.bottonisworld.com

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 © 2026 vBulletin Solutions, Inc. All rights reserved.