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

    Metodo equals tra oggetti,help me..

    salve ragazzi,dopo aver superato indenne diversi testi di esercizi,mi sono arenato su questo..vi posto testo e codice delle classi che forniva il testo d'esercizio,sperando che qualcuno mi aiuti avendo un'idea su come scrivere il metodo corretto

    Esercizio 2

    Si consideri la seguente classe:
    public class Persona {
    public String nome;
    public int eta;
    }



    Scrivere un metodo statico equals che dati due (riferimenti a) oggetti Persona, restituisce true se sono uguali (cioè hanno lo stesso nome e la stessa eta), e false altrimenti.

    Scrivere la soluzione in modo da poter compilare ed eseguire il seguente programma senza dover modificare il metodo main.

    public class ProvaEquals {
    public static void main(String[] x) {

    Persona p1 = new Persona();
    p1.nome = "Luca";
    p1.eta = 19;

    Persona p2 = new Persona();
    p2.nome = "Luca";
    p2.eta = 20;

    Persona p3 = new Persona();
    p3.nome = new String("Luca");
    p3.eta = 19;

    boolean test1 = equals(p1, p2);
    boolean test2 = equals(p1, p3);
    boolean test3 = equals(p2, p3);

    System.out.println(test1); // deve stampare false
    System.out.println(test2); // deve stampare true
    System.out.println(test3); // deve stampare false
    }
    }

  2. #2
    Quindi?
    Se hai superato numerosi esercizi, come hai fatto a bloccarti su questo?

    codice:
    public static boolean equals (Persona p1, Persona p2) {
        return (p1.nome == p2.nome) && (p2.eta == p2.eta);
    }
    lolide
    Java Programmer

    Informati

  3. #3
    Ecco cosa nn andava...nel metodo statico nn passavo i parametri...che testa...Grazie mille

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da lolide
    Quindi?
    Se hai superato numerosi esercizi, come hai fatto a bloccarti su questo?

    codice:
    public static boolean equals (Persona p1, Persona p2) {
        return (p1.nome == p2.nome) && (p2.eta == p2.eta);
    }
    nome è una stringa, per confrontarla ti serve il loro equals: p1.nome.equals(p2.nome).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Originariamente inviato da Alex'87
    nome è una stringa, per confrontarla ti serve il loro equals: p1.nome.equals(p2.nome).
    Ah giusto, un lapsus.
    lolide
    Java Programmer

    Informati

  6. #6
    Ragazzi scusate...ho provato diverse varianti..compresa quella dell'equals visto che ho una stringa...ma l'output restituito è sempre true false false...come mai? mi dovrebbe restituire f t f ..help

  7. #7
    Il codice giusto è questo:
    codice:
    public static boolean equals (Persona p1, Persona p2) {
        return (p1.nome.equals(p2.nome)) && (p2.eta == p2.eta);
    }
    e questo deve funzionare per forza.
    Se non funziona, incolla il codice completo che usi tu
    lolide
    Java Programmer

    Informati

  8. #8
    Originariamente inviato da lolide
    Il codice giusto è questo:
    codice:
    public static boolean equals (Persona p1, Persona p2) {
        return (p1.nome.equals(p2.nome)) && (p2.eta == p2.eta);
    }
    e questo deve funzionare per forza.
    Se non funziona, incolla il codice completo che usi tu
    Ma come fa ad essere corretto?
    p2 confronta l'età con se stesso.

  9. #9
    Risolto raga...ho apportato solo una piccola modifica...grazie a tutti x l'aiuto!

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.