Toon posts:

JAVA : 10 stellingen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hier zijn 10 stellingen en mijn antwoorden daarop,kunnen jullie zeggen of ik juist of fout zit en als het fout is waarom dan ?

Geef bij elk van de volgende uitspraken aan of ze wel of niet waar zijn:

a.De waarde 1.1 kan zonder meer aan een variabele van type int worden toegewezen
Onwaar, Int kan alleen maar uit gehele getallen bestaan, 1.1 is double of float variabele.

b.De waarde 1 kan zonder meer aan een variabele van type float worden toegewezen
Waar , float word gebruikt voor gehele en gebroken getallen

c.Als x en y float-variabelen zijn, dan levert ((int) x) / ((int) y) altijd hetzelfde op als (int) (x/y)
Onwaar ,y en x kan dan niet als int gedefinieerd worden

d.Elke klasse kan als type gebruikt worden
OnWaar, een klasse is een beschrijving van een type maar kan niet als type zelf gebruikt worden.

e.Elke klasse kent de methode equals
Onwaar, de klasse equals wordt enkel gebruikt om te kijken of 2 strings dezelfde inhoud hebben en levert dan een boolean waarde af.

f.Als a == b voor twee objecten (a en b) van een klasse A, dan geldt ook a.equals(b) (mits equals niet overschreven is)
Onwaar,equals vergelijkt alleen strings

g.Afgezien van de klasse String, is een aanroep van de constructur van een klasse A (d.m.v. new) de enige manier om een A-object te creëren
Waar, de constructor initialiseert de attributen waarmee het A-object greeerd wordt

h.Een objectattribuut kan nooit final zijn
Onwaar, een klasse kan zelfs final zijn en dan zijn alle methodes automatisch ook final dus kunnen
de objecten die een final klasse aanmaakt ook final zijn

i.Een private methode kan geen gebruik maken van public attributen van dezelfde klasse
Onwaar, de methode kan gebruik maken van attributen binnen diezelfde klasse.Ze word alleen afgeschermd voor klasses van buiten af

j.Als een klasse niet public is, kan ze ook geen public attributen of methoden bevatten
Waar,Als ze niet public is , is de klasse dus private en private klasses zijn alleen toegankelijk vanuit
instanties binnen de klasse en niet toegankelijk van buiten de klasse.Ze kunnen dat ook best geen public bevatten

  • Helox-in-a-box
  • Registratie: Augustus 2000
  • Laatst online: 12:18
c. int eerste geval typecast je 2 floats naar int en deel je ze waardoor je een float krijgt, int 2e geval deel je ze door elkaar en wort het antwoord getypecast (en afgerond) naar een int.

f. nope, als je zelf een class aanmaakt en daar een equals functie schrijft die kijkt naar een bepaalde waarde, dan hoeven het geen strings te zijn. << beetje twijfelachtig, geen zin nu om op te zoeken waar de equals-method komt kijken.

just my 2 cents, ennuh wanneer is het tentamen hiervan? :+

  • Ronald__
  • Registratie: Februari 2002
  • Laatst online: 03-06 19:58

Ronald__

Shit happens

Ehhmz.. de equals functie zit niet alleen bij een string hoor, zoals je bij zowel vraag e als bij vraag f beweert. De equals functie zit al bij Object ingebouwd.

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 21:47
equals zit in Object, de parent van elke class:
[quote]
The equals method implements an equivalence relation:
  • It is reflexive: for any reference value x, x.equals(x) should return true.
  • It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified.
  • For any non-null reference value x, x.equals(null) should return false.
let wel dat je eigenlijk altijd zelf equals wilt implementeren!


f: waar. a==b vergelijkt geheugen referenties, en als dat dus waar is, staan ze op dezelfde plek en moeten ze het zelfde zijn. Zie ook het stuk hierboven.

g: niet waar, je hebt ook nog reflection: Class.forName("java.lang.String").getInstance()

i. niet waar, de methode wordt afgeschermd (private)

j. niet waar. Zie design pattern singleton:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
class Aap
    private static Aap instance;

    private Aap()
    {
    }

    public static Aap getInstance()
    {
        if (instance==nul) instance==new Aap();
        return instance;
     }
}


En dit compiled prima hoor, probeer maar Een singleton houd in dat je maar 1 instantie van de class binnen je JVM kan hebben :)

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

[quote]Jelmer schreef op 22 April 2003 @ 05:00:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
class Aap
    private static Aap instance;

    private Aap()
    {
    }

    public static Aap getInstance()
    {
        if (instance==nul) instance==new Aap(); // <----------
        return instance;
     }
}

Compileert niet :Y)

code:
1
if (instance==null) instance = new Aap();

null dubbel L, toewijzing enkele = ;)

[ Voor 1% gewijzigd door kenneth op 22-04-2003 10:38 . Reden: moet ik zelf geen fouten gaan maken! ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:51

crisp

Devver

Pixelated

*zucht*

JAVA : Quizje van javastellingen
JAVA : Quizje van javastellingen nog eens

o, dit keer wel met antwoorden :)

[ Voor 12% gewijzigd door crisp op 22-04-2003 08:48 ]

Intentionally left blank


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:58

Robtimus

me Robtimus no like you

Helox-in-a-box schreef op 22 April 2003 @ 03:37:
c. int eerste geval typecast je 2 floats naar int en deel je ze waardoor je een float krijgt, int 2e geval deel je ze door elkaar en wort het antwoord getypecast (en afgerond) naar een int.
Als je een int door een andere int deelt krijg je de div (deling zonder rest), dat blijft dus een int.
Voor ints x en y: x == (x/y)*y + x%y;
Jelmer schreef op 22 april 2003 @ 05:00:
g: niet waar, je hebt ook nog reflection: Class.forName("java.lang.String").getInstance()
Hmmm, die was ik vergeten...

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

IceManX schreef op 22 April 2003 @ 09:03:
Hmmm, die was ik vergeten...
Ik neem aan dat deze ook gewoon gebruik maakt van de constructor hoor. Als je niet werkt via een constructor kan je nooit garanderen dat jouw object in de correcte toestand is terecht gekomen.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
JAVA : Quizje van javastellingen nog eens
JAVA : Quizje van javastellingen

Ik zie dat je nu wel antwoorden hebt, maar meedenken zou nog mooi zijn :?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

even een volledige uitleg, verbeter me maar als ik fout zit :)
Verwijderd schreef op 22 April 2003 @ 03:24:
a.De waarde 1.1 kan zonder meer aan een variabele van type int worden toegewezen
Onwaar, Int kan alleen maar uit gehele getallen bestaan, 1.1 is double of float variabele.
let wel dat 1.1 altijd een double is, geen float (1.1f is float).
Dit compilet dan ook niet:
Java:
1
float f = 1.1;
b.De waarde 1 kan zonder meer aan een variabele van type float worden toegewezen
Waar , float word gebruikt voor gehele en gebroken getallen
Er zijn implicit upcasts: byte -> short -> int -> long -> float -> double
Je kunt zonder te casten dus altijd vooruit in dit rijtje, maar nooit terug
Verder kun je een char nog assignen aan een int en verder, maar niet aan een byte of short zonder te casten
c.Als x en y float-variabelen zijn, dan levert ((int) x) / ((int) y) altijd hetzelfde op als (int) (x/y)
Onwaar ,y en x kan dan niet als int gedefinieerd worden
Het is idd onwaar, maar je uitleg is een beetje vaag. Het probleem is al uitgelegd, door afronding kan (int)x / (int)y een andere uitkomst opleveren dan (int)(x / y)

Als x == 6.0, en y == 2.5, dan is de uitkomst dus 2.4. Dat gecast naar een int is dus 2.
Echter, (int)x == 6 en (int)y == 2, dus 6 / 2 == 3
d.Elke klasse kan als type gebruikt worden
OnWaar, een klasse is een beschrijving van een type maar kan niet als type zelf gebruikt worden.
:?
Als je een class Voorbeeld hebt, dan kun je Voorbeeld toch gewoon als type gebruiken? Deze stelling lijkt me dus waar
e.Elke klasse kent de methode equals
Onwaar, de klasse equals wordt enkel gebruikt om te kijken of 2 strings dezelfde inhoud hebben en levert dan een boolean waarde af.
ook al uitgelegd, equals is een standaard methode van Object
f.Als a == b voor twee objecten (a en b) van een klasse A, dan geldt ook a.equals(b) (mits equals niet overschreven is)
Onwaar,equals vergelijkt alleen strings
De semantics van equals dicteren dat x.equals (x) altijd true moet zijn. Als a == b dan a.equals (b) == a.equals (a) == true
g.Afgezien van de klasse String, is een aanroep van de constructur van een klasse A (d.m.v. new) de enige manier om een A-object te creëren
Waar, de constructor initialiseert de attributen waarmee het A-object greeerd wordt
Tja een beetje dubbelop... Er zijn zoals gezegd meer methoden om een klasse te instantieren, maar de constructor wordt altijd aangeroepen. De new is dus idd niet per se nodig
h.Een objectattribuut kan nooit final zijn
Onwaar, een klasse kan zelfs final zijn en dan zijn alle methodes automatisch ook final dus kunnen
de objecten die een final klasse aanmaakt ook final zijn
idd onwaar, maar je uitleg klopt niet.
Een attribuut is een instantie-variabele, en die kunnen best final zijn (en dus alleen maar initializeerbaar, niet wijzigbaar)
i.Een private methode kan geen gebruik maken van public attributen van dezelfde klasse
Onwaar, de methode kan gebruik maken van attributen binnen diezelfde klasse.Ze word alleen afgeschermd voor klasses van buiten af
klopt :Y)
j.Als een klasse niet public is, kan ze ook geen public attributen of methoden bevatten
Waar,Als ze niet public is , is de klasse dus private en private klasses zijn alleen toegankelijk vanuit
instanties binnen de klasse en niet toegankelijk van buiten de klasse.Ze kunnen dat ook best geen public bevatten
De zichtbaarheid van een element (klasse, methode, attribuut) geldt voor de namespace waarin hij gedefinieerd is. De klasse zelf is in een andere namespace gedefinieerd dan waarin z'n methoden of attributen zijn gedefinieerd. De zichtbaarheid voor methoden en attributen gelden dus voor die klasse, terwijl de zichtbaarheid van die klasse geldt voor de omliggende namespace (wat of een package is of een andere klasse)
Als een klasse dus een private geneste klasse heeft, dan kan die klasse gebruik maken van de geneste klasse. Maar alleen van z'n package of public methoden, want de private methoden zijn voor die klasse zelf, en de protected methoden voor subklassen van die geneste klasse

Let wel: niet geneste klassen kunnen of public zijn, of alleen zichtbaar binnen de package(dus de default modifier). Geneste klassen kunnen zowel private, package, protected als public zijn

[ Voor 10% gewijzigd door .oisyn op 22-04-2003 16:52 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Ik denk mee hoor, maar ik zit nog maar in m'n eerste jaar programmeren en die stellingen zijn soms chinees voor mij.
Zoals die vragen over equals, wij hebben dat enkel gezien om strings te vergelijken en in de cursus staat dat ook zo dat het dient om strings te vergelijken.Hoe kan ik nu weten dat je er nog meer kunt mee vergelijken ?
OK, ik kan het altijd ergens gaan opzoeken op het net maar het makkelijker zijn moest de cursus een beetje duidelijker zijn,je vertrouwt er toch voor een stuk op.

En m'n excuses voor die eerste Quizjes van javastellingen,maar het was op dat moment 4 uur s'nachts en ik was zelfs te moe om te typen ...
En ik was al van 7 uur s'avonds aan die opdracht bezig ( niet de stellingen die waren er slechts een onderdeel van ) en als je dan te horen krijgt dat je er geen moeite voor doet dan komt even de frustratie boven,nogmaals m'n excuses daarvoor.

Ik zal zo snel mogelijk proberen om mee input te geven , maar ik moet nu weeral naar de les nu tot 22.00 uur dus ik hoop vannacht alles hier nog eens te kunnen nakijken en er op te
antwoorden.

Als er mensen zijn die uit interesse m'n volledige opdracht en alle antwoorden willen nakijken ,die wil ik altijd het volledige word.doc opsturen.Maar het is allemaal pure theorie
dus ik denk dat programmeurs uit de praktijk er niet veel mee kunnen doen.

Tot vanavond ,

Een terug frisse,

akanit

PS:De opdracht is niet dringend of zo ik heb nog een week de tijd maar ik was erop gebrand om hem ineens af te werken.

Verwijderd

Topicstarter
OK, ik heb nog wat opgezocht en met behulp van enkelen van jullie heb ik m'n stellingen aangepast.Nu zou dus alles moeten kloppen:

Geef bij elk van de volgende uitspraken aan of ze wel of niet waar zijn:

a.De waarde 1.1 kan zonder meer aan een variabele van type int worden toegewezen
Onwaar, Int kan alleen maar uit gehele getallen bestaan, 1.1 is double variabele.

b.De waarde 1 kan zonder meer aan een variabele van type float worden toegewezen
Waar , float word gebruikt voor gehele en gebroken getallen

c.Als x en y float-variabelen zijn, dan levert ((int) x) / ((int) y) altijd hetzelfde op als (int) (x/y)
Onwaar ,door afronding kan (int)x / (int)y een andere uitkomst opleveren dan (int)(x / y)

Als x == 6.0, en y == 2.5, dan is de uitkomst dus 2.4. Dat gecast naar een int is dus 2.
Echter, (int)x == 6 en (int)y == 2, dus 6 / 2 == 3

d.Elke klasse kan als type gebruikt worden
Waar,Als je een class Voorbeeld hebt, dan kun je Voorbeeld als type gebruiken.

e.Elke klasse kent de methode equals
Waar. Equals is een standaard methode van Object
Aangezien Object de equals method kent, erft elke klasse deze dus over. De definitie hiervan kan echter zwaar verschillen: van controleren of twee vars naar het hetzelfde object wijzen of dat bv alleen de interne velden gelijk zijn.


f.Als a == b voor twee objecten (a en b) van een klasse A, dan geldt ook a.equals(b) (mits equals niet overschreven is)
waar. a==b vergelijkt geheugen referenties, en als dat dus waar is, staan ze op dezelfde plek en moeten ze het zelfde zijn.

g.Afgezien van de klasse String, is een aanroep van de constructor van een klasse A (d.m.v. new) de enige manier om een A-object te creëren
OnWaar, Er zijn meer methoden om een klasse te instantieren, maar de constructor wordt altijd aangeroepen. De new is dus niet per sé nodig.


h.Een objectattribuut kan nooit final zijn
Onwaar, Een attribuut is een instantie-variabele, en die kunnen final zijn (en dus alleen maar initializeerbaar, niet wijzigbaar)


i.Een private methode kan geen gebruik maken van public attributen van dezelfde klasse
Onwaar,de methode kan gebruik maken van attributen binnen diezelfde klasse.Ze word alleen afgeschermd voor klasses van buiten af.
De methode wordt afgeschermd (private)

j.Als een klasse niet public is, kan ze ook geen public attributen of methoden bevatten
Onwaar. Als een klasse niet public is, kan deze nog wel worden gezien in de eigen package, maar niet hierbuiten. De public attributen en methoden van de niet-public klasse kunnen dus WEL worden gezien in klassen van dezelfde package, echter niet in klassen van andere packages omdat de klasse totaal niet zichtbaar is voor hen. Er bestaat niet zoiets als een private klasse.


Alles juist ?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Verwijderd schreef op 23 april 2003 @ 00:37:
[..]
c.Als x en y float-variabelen zijn, dan levert ((int) x) / ((int) y) altijd hetzelfde op als (int) (x/y)
Onwaar ,door afronding kan (int)x / (int)y een andere uitkomst opleveren dan (int)(x / y)

Als x == 6.0, en y == 2.5, dan is de uitkomst dus 2.4. Dat gecast naar een int is dus 2.
Echter, (int)x == 6 en (int)y == 2, dus 6 / 2 == 3
Beter voorbeeld zou zijn x= 7 en y=3.5

Dan kom je er namelijk ook achter dat er nog een verschil tussen de twee is.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Wordt bij .clone() ook de constructor aangeroepen?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

akanit: ik zie dat je sommige antwoorden rechtstreeks van mij hebt overgenomen. Dit lijkt me niet echt de bedoeling, probeer ze om te zetten in je eigen woorden
dusty schreef op 23 April 2003 @ 09:08:
[...]

Beter voorbeeld zou zijn x= 7 en y=3.5

Dan kom je er namelijk ook achter dat er nog een verschil tussen de twee is.
Nee, want 7 / 3.5 == 2.0, en (int)2.0 == 2
En (int)7 / (int)3.5 == 7 / 3 == ook 2

slecht voorbeeld dus :Y)
wasigh schreef op 23 April 2003 @ 09:28:
Wordt bij .clone() ook de constructor aangeroepen?
Die doet intern volgens mij ook gewoon een getClass ().getInstance (), waarna ie vervolgens alle members gaat kopieren

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • jvo
  • Registratie: Augustus 2001
  • Laatst online: 04-10-2023

jvo

geen commentaar

Even nog een kleine toevoeging over de equals methode. Hij is met name bedoeld om objecten te kunnen gebruiken in bijvoorbeeld een Hashtable. Je kan natuurlijk zelf ook een isgelijk methode maken, maar om het te laten werken met andere onderdelen van de java api, is het nodig om het in equals te implementeren.

Vandaar ook de eisen van transitiviteit etc. van de methode equals. Alleen onder die voorwaarden kan je een object gebruiken in Hastables etc.

  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 22-06 10:58
f. Als a == b voor twee objecten (a en b) van een klasse A, dan geldt ook a.equals(b) (mits equals niet overschreven is)

Je antwoord is juist maar de uitleg moet duidelijker (vind ik)

als a == b dan kunnen dit geen 2 objecten zijn!

a en b zijn namelijk verwijzingen naar een object (van klasse A) in het geheugen. Als a == b dan verwijzen ze naar hetzelfde object dus heb je in feite maar 1 object.

equals definieerd dat bij een willekeurig object x, x.equals(x) altijd true is. Aangezien a en b verwijzingen zijn naar hetzelfde object moet dat object wel gelijk zijn aan zichzelf!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

.oisyn schreef op 23 April 2003 @ 10:51:
(int)7 / (int)3.5 == 7 / 3 == 2
Laatste keer dat ik keek was 7 / 3 != 2

Althans volgens mijn rekenmachine, misschien is de jouwe toe aan vervanging?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

dusty schreef op 23 April 2003 @ 11:43:
[...]

Laatste keer dat ik keek was 7 / 3 != 2

Althans volgens mijn rekenmachine, misschien is de jouwe toe aan vervanging?
We hebben het hier niet over een rekenmachine, maar over java
je deelt een int door een int, en dus is het resultaat een int, ook al assign je m vervolgens aan een double

Java:
1
2
double d = 7 / 3;
System.out.println ("resultaat: " + d);


ga jij maar 'ns kijken wat de output is ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Java + Wiskunde :X

C / C ++ / Delphi etc. gaan blijkbaar wel beter met wiskunde regels om.

Je hebt gelijk...

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uhm, nee, bij C en C++ is het precies zo als in Java, net als in C#
Dat zou ook tegen alle doelen van C en C++ in gaan

Het is nogal een performance kill als je ints altijd moet gaan delen met de floating piont unit, en dan ook nog eens volle precisie natuurlijk, want misschien assign je ze wel aan een double

Dus: int / int levert altijd een int op. Als je een float of double resultaat wilt, dan zul je 1 of beide operand(en) moeten casten naar float of double

[ Voor 75% gewijzigd door .oisyn op 23-04-2003 12:28 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Is het probleem niet eerder ' Java + Dusty :X '?

[ Voor 5% gewijzigd door Alarmnummer op 23-04-2003 12:56 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Alarmnummer schreef op 23 April 2003 @ 12:56:
Is het probleem niet eerder ' Java + Dusty :X '?
Make that 'C inspired languages + Dusty'

[edit] Owjah, ook Haskell vertoont dit gedrag hoor ;)

[ Voor 13% gewijzigd door Glimi op 23-04-2003 12:57 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik denk bijna alle functionele talen :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Glimi schreef op 23 april 2003 @ 12:57:
Owjah, ook Haskell vertoont dit gedrag hoor ;)
hmm.. dan kunnen we er beter van maken 'Dusty :X '

[ Voor 4% gewijzigd door Alarmnummer op 23-04-2003 13:15 ]


Verwijderd

Wacht even er staat iets heel raars hiertussen al deze posts mbt equals. De equals die bedoeld wordt in de String klasse is wel degelijk afkomstig van de klasse String en is geen overriding van de equals in Object.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 23 April 2003 @ 13:43:
Wacht even er staat iets heel raars hiertussen al deze posts mbt equals. De equals die bedoeld wordt in de String klasse is wel degelijk afkomstig van de klasse String en is geen overriding van de equals in Object.
En waarom staat dit dan in de class String?
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    /**
     * Compares this string to the specified object.
     * The result is <code>true</code> if and only if the argument is not
     * <code>null</code> and is a <code>String</code> object that represents
     * the same sequence of characters as this object.
     *
     * @param   anObject   the object to compare this <code>String</code>
     *                     against.
     * @return  <code>true</code> if the <code>String </code>are equal;
     *          <code>false</code> otherwise.
     * @see     java.lang.String#compareTo(java.lang.String)
     * @see     java.lang.String#equalsIgnoreCase(java.lang.String)
     */
    public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = offset;
        int j = anotherString.offset;
        while (n-- != 0) {
            if (v1[i++] != v2[j++])
            return false;
        }
        return true;
        }
    }
    return false;
    }

Hij heeft de signature van equals in Object, heeft hetzelfde gedrag en String extended object impliciet. Welk deel zie ik over het hoofd?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 23 April 2003 @ 13:43:
Wacht even er staat iets heel raars hiertussen al deze posts mbt equals. De equals die bedoeld wordt in de String klasse is wel degelijk afkomstig van de klasse String en is geen overriding van de equals in Object.
http://java.sun.com/j2se/...#equals(java.lang.Object) :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

...

[ Voor 92% gewijzigd door Verwijderd op 23-04-2003 14:06 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

kun je dat quoten, heb je een link, etc. ?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Nevermind in mijn haast verkeerd gelezen, jullie hebben gelijk...

[ Voor 95% gewijzigd door Verwijderd op 23-04-2003 14:06 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ik kan hem niet vinden hoor (alleen http://java.sun.com/j2se/...oreCase(java.lang.String) ). Lijkt me nogal overbodig ook kijken naar de bovenste code van equals. Het scheelt je 1! instanceof check :)

edit:
Dat maakt deze post ook weer lekker onnuttig ;)

[ Voor 12% gewijzigd door Glimi op 23-04-2003 14:07 ]

Pagina: 1