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

    Test per metodo e problema con static

    Come da esercizio : Scrivere il codice del metodo public int contaOmonimiDi(String nome) affinche' restituisca il numero di nomi dell'array nomi che sono uguali alla stringa nome passata come parametro.

    avendo questa parte del codice già definita :

    codice:
    public class Persone {
        private String[] nomi;
        
        public Persone(int n) {
            this.nomi = new String[n];
        }
        
        public int contaOmonimiDi(String nome) {
            
            // deve restituire il numero di nomi dell'array che 
            // sono uguali al nome passato come parametro 
    }
    
        
        public void aggiungiNome(int indice, String nome){
            this.nomi[indice] = nome;
        }
    }
    io ho scritto il seguente metodo :
    codice:
    public int contaOmonimiDi(String NomeDaTrovare) {
    
            // deve restituire il numero di nomi dell'array che 
            // sono uguali al nome passato come parametro 
    
            int i;
            int count=0;   
    
            for (i=0;i<this.nomi.length;i++) {
    
                if (this.nomi[i].equals(NomeDaTrovare)) 
                    count++;}
    
            return count;}
    e il seguente main per eseguire un Test :

    codice:
    public static void main(String[] args) {
    
            new    Persone(5);    
              
            aggiungiNome(0,"Antonio");
            aggiungiNome(1,"Marco");
            aggiungiNome(2,"Matteo");
            aggiungiNome(3,"Marco");
            aggiungiNome(4,"Luca");
            
             contaOmonimiDi("Marco");
            
        }
    mi dice: "Cannot make a static reference to the non-static method aggiungiNome(int, String) from the type Persone"
    e : "Cannot make a static reference to the non-static method contaOmonimiDi(String) from the type Persone"

    secondo voi come posso fare per risolvere? (avevo pensato ad inserire un metodo getter ma penso di stravolgere il codice dell'esercizio poi....)

    Ringrazio anticipatamente per le risposte

  2. #2
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Ciao, quando apri un thread specifica il linguaggio in modo da semplificare la vita a chi lo legge, in più java ha la sua sezione apposita.
    Comunque hai per caso scritto il main nella classe Persona? In questo caso staresti cercando di accedere a metodi non statici da un metodo statico; non si può fare.
    Se invece hai scritto il main in un altra classe, come immagino tu debba fare, allora devi invocare i metodi aggiungiNome e contaOmonimi (occhio che hai usato lo zero invece che la o) su un instanza dlla classe Persona:
    codice:
    Persona persona = new Persona(5);
    persona.aggiungiNome(...);
    ...
    PS: le variabili devono sempre iniziare con una lettera minuscola.
    La Guida Galattica è infallibile.
    È la realtà, spesso, ad essere inesatta.

  3. #3
    Va bene grazie, mi scuso per non aver specificato il linguaggio, la prossima volta starò più attento.
    Grazie per la risposta sei stato chiarissimo

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Quote Originariamente inviata da aleRomatre Visualizza il messaggio
    Va bene grazie, mi scuso per non aver specificato il linguaggio, la prossima volta starò più attento.
    Ho provveduto io a spostare la discussione nell'area dedicata a Java.
    In futuro ricordati di scrivere qui le tue domande per questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.