Avatar billede danny_k Nybegynder
02. december 2003 - 08:49 Der er 13 kommentarer og
1 løsning

Problemer med equals

Bør følgende ikke give resultatet "equal"
Reultatet bliver "not equal"

    public Test(){
        Profil p = new Profil("brugernavn","pass");
        Profil p2 = new Profil("brugernavn","pass");
       
        if (p2.equals(p)){
            System.out.println("equal");
        }
        else{
            System.out.println("not equal");
        }
            }
Avatar billede _carsten Nybegynder
02. december 2003 - 08:52 #1
Nej - det skal blive "not equal"

referencen p er ikke lig p2
Avatar billede erikjacobsen Ekspert
02. december 2003 - 08:54 #2
Du skal lave din egen equals-metode i klassen Profil
Avatar billede _carsten Nybegynder
02. december 2003 - 08:54 #3
Referencen p og p2 peger ikke på det samme object

    public Test(){
        Profil p = new Profil("brugernavn","pass");
        Profil p2 = p;
     
        if (p2 == p){
            System.out.println("equal");
        }
        else{
            System.out.println("not equal");
        }
            }

Denne giver "equal"
Avatar billede _carsten Nybegynder
02. december 2003 - 08:55 #4
Fordi nu peger p2 også på p
Avatar billede danny_k Nybegynder
02. december 2003 - 08:56 #5
NEj referencerne er ikke lig hinanden, men er de to objekter som de peger på ikke ens.
Det er længe siden jeg har været i gang med java. Hvordan finder jeg så ud af om de to objekter er ens???
Avatar billede danny_k Nybegynder
02. december 2003 - 08:57 #6
Men jeg skal netop finde ud af om to forskellige objekter er ens
Avatar billede erikjacobsen Ekspert
02. december 2003 - 08:57 #7
Det er dig der laver klassen, der bestemmer hvornår de skal være ens. Skal
det være når de 2 brugernavne er ens, eller skal brugernavne og passwords
være ens - det kommer an på hvad du skal bruge det til.
Avatar billede _carsten Nybegynder
02. december 2003 - 09:00 #8
Som Erik skriver skal du selv lave en equals metode der tester brugernavn og password
Avatar billede _carsten Nybegynder
02. december 2003 - 09:05 #9
Lav eventuelt get metode i Profil til at hente brugernavn og password

    public Test(){
        Profil p = new Profil("brugernavn","pass");
        Profil p2 = new Profil("brugernavn","pass");
       
        if (p2.getBrugernavn().equals(p.getBrugernavn())){
            if (p2.getPassword().equals(p.getPassword())){
                System.out.println("equal");
            }
            else{
                System.out.println("not equal");
            }

        }
        else{
            System.out.println("not equal");
        }
            }
Avatar billede erikjacobsen Ekspert
02. december 2003 - 09:07 #10
Nej, _carsten, man skal da lave en metode i klassen.
Avatar billede danny_k Nybegynder
02. december 2003 - 09:09 #11
Problemet er løst ved at jeg selv laver min equals-metode i Profilklassen
Avatar billede _carsten Nybegynder
02. december 2003 - 09:16 #12
Erik>> Ja - men ctrl+c og ctrl+v er altså en hurtig løsning her
Avatar billede danny_k Nybegynder
02. december 2003 - 09:20 #13
Hurtig, men ikke for god til en eksamensopgave
Avatar billede _carsten Nybegynder
02. december 2003 - 09:22 #14
Korrekt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester