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

    [Java] Dichiarazione e Inizializazione String

    Ciao,

    Sto realizzando un programma, che al suo interno ha un array di String....
    Come logica di programmazione a cui sono abituato io, prima dichiaro l'array di String e dopo nel costruttore inserisco i valori...

    public class Mazzo {

    private String deckNumber[];
    public Mazzo() {
    deckNumber = new String[10];
    deckNumber = {"Uno", "Due".....};
    }
    }

    Solamente che ottengo sempre errori, in qualsiasi modo io provi a farlo...

    Qualcuno può farmi vedere in che modo devo dichiarare ed inizializzare?


    Grazie Mille

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    fai prima
    private String[] deckNumber;
    public Mazzo() {
    deckNumber = {"Uno", "Due".....};

  3. #3
    2 Array constants can only be used in initializers Mazzo.java

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    se non sei nell'ambito di una dichiarazione, l'inizializzazione di un array deve avvenire con la seguente sintassi:

    deckNumber = new String[]{"Uno", "Due", ...};

    attenzione a non specificare la dimensione dell'arrayi in String[] perchè quella la ricava automaticamente dal numero di elementi tra parentesi graffe.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Ho Altri due errori che non capisco:

    public int[] newCarta() {
    int card[], rows, columns;
    card = new int[2];
    for (rows=0; rows<3; rows++) {
    for (columns=0; columns<10; columns++) {
    if (deck[rows][columns] == pntCard) {
    card[0] = rows;
    card[1] = columns;
    pntCard++;
    return card;
    }
    }
    }
    }

    2 This method must return a result of type int[] Mazzo.java



    public String getBriscolaFace() {
    return tavoloCarta[0][1];
    }

    2 Type mismatch: cannot convert from int to String Mazzo.java

    In questo secondo errore vorrei convertie un int in una String....

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    public int[] newCarta() {
      int card[], rows, columns;
      card = new int[2];
      for (rows=0; rows<3; rows++) {
        for (columns=0; columns<10; columns++) {
          if (deck[rows][columns] == pntCard) {
            card[0] = rows;
            card[1] = columns;
            pntCard++;
            return card;
          }
        }
      }
      // e qua non ritorna nulla e fa errore
      return null; // ora sì
    }
    
    return String.valueOf(tavoloCarta[0][1]);

  7. #7

    Passare una variabile ad una classe

    codice:
    		for (i=0; i<3; i++) {
    			giocatore.setCarte(carte.newCarta()); //Diamo una carta al giocatore x3
    			computer.setCarte(carte.newCarta());  //Diamo una carta al computer x3
    			carteTavola[i] = new JButton(carte.getCard(giocatore.getCard(i))); 
    			carteTavola[i].addActionListener( 
    					new ActionListener() { //Classe Interna Anonima
    						public void actionPerformed( ActionEvent event)
    						{
    							giocatore.getCarta(i);
    							//computer.getCarta();
    						}
    					}
    			);
    			container.add(carteTavola[i]);
    		}
    2 Cannot refer to a non-final variable i inside an inner class defined in a different method

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    In una classe interna non può accedere alle varabili locali di un metodo o ai suoi argomenti non dichiarati final...dal codice no nsi evince il problema perchè non si vede la classe interna e quale cvariabile essa accede.

    Stai usando il compilatore della sun?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Briscola extends JFrame  {
    
    	private Player giocatore, computer;
    	private Mazzo carte;
    	private JButton carteTavola[], briscola;
    	private Container container;
    	private GridLayout griglia;
    	
    	public Briscola() {
    		super("Briscola v. 0.1");
    		
    		int i;
    		giocatore = new Player();
    		computer = new Player();
    		carte = new Mazzo();
    		carteTavola = new JButton[3];		
    		
    		griglia = new GridLayout(3,4);
    		container = getContentPane();
    		container.setLayout(griglia);
    		
    
    		carte.Mescola();
    		
    		briscola = new JButton(carte.getBriscolaNumber() + carte.getBriscolaFace());
    		container.add(carteTavola[i]);
    	
    		for (i=0; i<3; i++) {
    			giocatore.setCarte(carte.newCarta()); //Diamo una carta al giocatore x3
    			computer.setCarte(carte.newCarta());  //Diamo una carta al computer x3
    			carteTavola[i] = new JButton(carte.getCard(giocatore.getCard(i))); 
    			carteTavola[i].addActionListener( 
    					new ActionListener() { //Classe Interna Anonima
    						public void actionPerformed( ActionEvent event)
    						{
    							giocatore.getCarta(i);
    							//computer.getCarta();
    						}
    					}
    			);
    			container.add(carteTavola[i]);
    		}
    
    		
    		setSize(200,100);
    		setVisible(true);
    	}
    
    	public static void main(String[] args) {
    		Briscola application = new Briscola();
    		application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
    	}
    }
    Questo è il codice, uso Eclipse come compilatore...

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    La variabile i nell'istruzione

    giocatore.getCarta(i);

    all'interno della calsse interna che implementa il listener del pulsante è illegale perche accede ad una varaible che non è final: se quel listener non fosse implementato tramite classe interna ma come una normale classe non avrebbe alcuna visibilità della variabile i; se ti serve quella variabile non puoi usare una clase interna ma devi impelmentare il listener a parte con un costruttore che prende la variabile i come argomento.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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.