🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
3 messages
3 total messages Started by F Cocquyt Sat, 05 Oct 2002 12:37
Java boolean probleempje -beginner-
#7232
Author: F Cocquyt
Date: Sat, 05 Oct 2002 12:37
49 lines
1665 bytes
Beste,

ik heb het volgende:



public String zoek(Persoon p)

{

boolean gevonden = false;

String s;

Set sleutels = boek.keySet();

Iterator i = sleutels.iterator();

while (i.hasNext() && !gevonden)

{

Persoon p2 = (Persoon) i.next();

Telefoon t = (Telefoon) (boek.get(p));

s= s + p + "," + t + "\n";

if (p2 = p)  // hier krijg ik constant de melding dat ik zou moeten casten
naar het type boolean.

//kan ik hier niet gewoon 2 personen met elkaar vergelijken  en indien het
klopt mijn boolean op true zetten?

{

gevonden=true;

}

};

return s;

}

Groeten,

F Cocquyt
Re: Java boolean probleempje -beginner-
#7235
Author: Koen Witters
Date: Sat, 05 Oct 2002 14:26
25 lines
1663 bytes
F Cocquyt wrote:

> Beste,
> ik heb het volgende:
[knipper-de-knip]
> if (p2 = p)  // hier krijg ik constant de melding dat ik zou moeten casten
> naar het type boolean.
> 
> //kan ik hier niet gewoon 2 personen met elkaar vergelijken  en indien het
> klopt mijn boolean op true zetten?

Ten eerste het zou '==' moeten zijn ipv 1 '='. En ten tweede wordt in Java 
het volgende gebruikt bij classes:

if (p2.equals(p)) {

}

natuurlijk moet de equals method in uw classe worden geimplementeerd (zie 
http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Object.html )


mvg,

Koen Witters
Re: Java boolean probleempje -beginner-
#7203
Author: MejAbay
Date: Tue, 08 Oct 2002 16:45
121 lines
3793 bytes
"F Cocquyt" <frederik_cocquyt@NOSPAMhotmail.com> schreef in bericht
news:N1Bn9.146799$8o4.21533@afrodite.telenet-ops.be...
> Beste,
>
> ik heb het volgende:
>
>
>
> public String zoek(Persoon p)
>
> {
>
> boolean gevonden = false;
>
> String s;
>
> Set sleutels = boek.keySet();
>
> Iterator i = sleutels.iterator();
>
> while (i.hasNext() && !gevonden)
>
> {
>
> Persoon p2 = (Persoon) i.next();
>
> Telefoon t = (Telefoon) (boek.get(p));
>
> s= s + p + "," + t + "\n";
>
> if (p2 = p)  // hier krijg ik constant de melding dat ik zou moeten casten
> naar het type boolean.
>
> file://kan ik hier niet gewoon 2 personen met elkaar vergelijken  en
indien het
> klopt mijn boolean op true zetten?
>
> {
>
> gevonden=true;
>
> }
>
> };
>
> return s;
>
> }
>

Probeer eens met :  if (p2 == p)
Als je  if (p2 = p) gebruikt zal hij p2 gelijk stellen aan p en het
resutlaat daarvan evalueren. Daar p geen boolean is, moet je dit dus casten.
Je hebt gewoon een foutje ingetypt

Toch is ook 'if (p2==p) niet de beste mannier om 2 objecten te vergelijken.
Wat je zo eigenlijk vergelijkt zijn de referenties. Als die gelijk zijn ben
je er zowieso zeker dat de objecten gelijk zijn.  Maar stel je het volgende
voor :

/**
 * Created on 8-okt-02
 * @author mej
 */
public class Person
{
  private String iName;
  private String iAddress;

  public Person (String aName, String anAddress)
  {
       setName(aName);
       setAddress(anAddress);
  }

  public boolean equals(Object aPerson)
  {
    Person person2 = (Person) aPerson;
    if (  getName().equals(person2.getName()) &&
          getAddress().equals(person2.getAddress()))
    {
      return true;
    }
    else
    {
      return false;
    }
  }

  static public void main (String [] args)
  {
    Person P1 = new Person("Gust Huppelelpup","ergens");
    Person P2 = new Person("Gust Huppelelpup","ergens");

    boolean result1 = (P1==P2);
    boolean result2 = (P1.equals(P2));

    System.out.println("P1==P2        : " + result1);
    System.out.println("P1.equals(P2) : " + result2);
  }

  // Here come the setters and getters ...
  ...
}


Als je dit zou uitvoeren krijg je volgende uitvoer :
P1==P2        : false
P1.equals(P2) : true

Ik hoop dat dit het gebruik van de 'equals' methode duidelijk maakt. Met die
methode kan je zelf bepalen welke objecten gelijk zijn. Ook al zijn de
objecten fysisch niet gelijk, logisch kunnen ze dit wel zijn ...

Een goede Java reference is http://64.78.49.204/TIJ-3rd-edition2.0.zip
(Thinking in Java (3rd edition) van Bruce Eckel !!!

Succes ...

Jef Melis
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads