Video: Geography Now! Indonesia 2025
Når du begynder at arbejde med objekter i Java, finder du at du kan bruge == og! = at sammenligne objekter med hinanden. For eksempel er en knap, du ser på computerskærmen, et objekt. Du kan spørge, om den ting, der kun var museklikket, er en bestemt knap på skærmen. Du gør dette med Java's ligestillingsoperatør.
hvis (e. GetSource () == bCopy) {udklipsholder. setText (som. getText ());
Den store gotcha med Java's sammenligningssystem kommer, når du sammenligner to strenge. Når du sammenligner to strenge med hinanden, vil du ikke bruge det dobbelte ensartede tegn. Ved hjælp af det dobbelte ensartede tegn vil du spørge: "Er denne streng gemt på nøjagtigt det samme sted i hukommelsen som den anden streng? "Det er normalt ikke, hvad du vil spørge.
I stedet vil du normalt spørge, "Har denne streng samme tegn i den som den anden streng? "For at spørge det andet spørgsmål (det mere passende spørgsmål) Java's String-type har en metode, der hedder ligeværdier. (Ligesom alt andet i det kendte univers, er denne ligemåde defineret i Java API, kort for Application Programming Interface.)
Lige-metoden sammenligner to strenge for at se, om de har de samme tegn i dem. For et eksempel ved hjælp af Java's equal-metode, se denne kodeliste. (Figuren viser en kørsel af programmet i noteringen.)
importer statisk java. Lang. System. *; importer java. util. Scanner; offentlig klasse CheckPassword {public static void main (String args []) {ud. print ("Hvad er adgangskoden?"); Scannertastatur = Ny scanner (in); String password = tastatur. Næste(); ud. println ("Du skrev >>" + adgangskode + "<<"); ud. println (); hvis (kodeord == "sværdfisk") {ud. println ("Det ord du skrev er gemt"); ud. println ("på samme sted som det virkelige"); ud. println ("password. Du skal være en"); ud. println ("hacker.");} else {out. println ("Det ord du skrev er ikke"); ud. println ("gemt på samme sted som"); ud. println ("det rigtige kodeord, men det er"); ud. println ("ingen big deal.");} ud. println (); hvis (adgangskode er lig med ("sværdfisk")) {ud. println ("Det ord du skrev har"); ud. println ("samme tegn som det virkelige"); ud. println ("password. Du kan bruge vores"); ud. println ("dyrebare system.");} else {out. println ("Det ord du skrev ikke"); ud. println ("har de samme tegn som"); ud. println ("den rigtige adgangskode. Du kan ikke"); ud. println ("brug vores dyrebare system.");} tastatur. luk ();}}
I opkaldet er opkaldstastaturet. næste () griber det ord, som brugeren skriver på computerens tastatur. Koden skubber dette ord ind i variablen hedder kodeord. Derefter bruger programmets, hvis udsagn, to forskellige teknikker til at sammenligne adgangskoden med "sværdfisk".
Eksemplerne i den trykte bog er for det meste tekstbaserede, men du kan finde mere avancerede versioner af de fleste eksempler på Dummies hjemmeside. Disse mere avancerede versioner har vinduer, knapper, tekstfelter og andre elementer i en typisk grafisk brugergrænseflade (GUI).
Den mere hensigtsmæssige af de to teknikker bruger Java's equal metode. Lige-metoden ser sjov ud, fordi når du kalder det, sætter du en prik efter en streng og sætter den anden streng i parentes. Men sådan må du gøre det.
Ved at kalde Java's equal metode betyder det ikke noget, hvilken streng der får prikken, og som får parenteserne. For eksempel i noteringen kunne du have skrevet
hvis ("sværdfisk". Svarer til (kodeord))
Metoden ville fungere lige så godt.
Et opkald til Java's equals-metode ser ubalanceret ud, men det er det ikke. Der er en grund til den tilsyneladende ubalance mellem prikken og parenteserne. Ideen er, at du har to objekter: adgangskodeobjektet og "sværdfisk" -objektet.
Hver af disse to objekter er af typen String. (Dog er adgangskoden en variabel af typen String, og "sværdfisk" er en String bogstavelig.) Når du skriver kodeord. svarer til ("sværdfisk"), kalder du en ligemetode, der hører til adgangskodeobjektet. Når du kalder den metode, fodrer du "sværdfisk" til metoden som metodeens parameter (ordsprog beregnet).
Når du sammenligner strenge med hinanden, skal du bruge ligemetoden - ikke det dobbelte ensartede tegn.