Video: Programmering i C: Mer om binärfiler. Prolog. En tenta. Del 1 (av 2). 2024
När du börjar arbeta med objekt i Java, finner du att du kan använda == och! = att jämföra objekt med varandra En knapp som du ser på datorskärmen är till exempel ett objekt. Du kan fråga om den sak som bara var musklickad är en viss knapp på din skärm. Du gör det här med Java: s likhetsoperatör.
om (e. GetSource () == bCopy) {Urklipp. setText (vilken. getText ());
Den stora gotchaen med Javas jämförelsesschema kommer när man jämför två strängar. När du jämför två strängar med varandra, vill du inte använda dubbla lika tecken. Om du använder dubbla lika tecken skulle du fråga, "Är den här strängen lagrad på exakt samma plats i minnet som den andra strängen? "Vanligtvis är det inte vad du vill fråga.
I stället vill du vanligtvis fråga, "Har den här strängen samma tecken i den som den andra strängen? "Att fråga den andra frågan (den mer lämpliga frågan) Java-strängtypen har en metod som heter lika. (Precis som allt annat i det kända universet, definieras denna likvärdiga metod i Java API, kort för Application Programming Interface.)
Med samma metod jämförs två strängar för att se om de har samma tecken i dem. För ett exempel med Java: s jämlikhetsmetod, se den här kodlistan. (Figuren visar en körning av programmet i listan.)
importera statisk java. lang. Systemet. *; importera java. util. Scanner; public class CheckPassword {public static void main (String args []) {ut. skriv ut ("Vad är lösenordet?"); Skannertangentbord = Ny skanner (in); String lösenord = tangentbord. Nästa(); ut. println ("Du skrev >>" + lösenord + "<<"); ut. println (); om (lösenord == "svärdfisk") {ut. println ("Ordet du skrev är lagrat"); ut. println ("på samma plats som den verkliga"); ut. println ("lösenord. Du måste vara en"); ut. println ("hacker.");} annars {ut. println ("Ordet du skrev inte är"); ut. println ("lagrad på samma plats som"); ut. println ("det riktiga lösenordet, men det är"); ut. println ("no big deal.");} ut. println (); om (lösenordet är lika med ("svärdfisk")) {ut. println ("Ordet du skrev har"); ut. println ("samma tecken som den verkliga"); ut. println ("lösenord. Du kan använda vår"); ut. println ("värdefulla system.");} annat {ut. println ("Ordet du skrev inte"); ut. println ("har samma tecken som"); ut. println ("det riktiga lösenordet. Du kan inte"); ut. println ("använd vårt värdefulla system.");} tangentbord. stäng ();}}
I listan är samtalstangentbordet. Nästa () tar tag i vilket ord användaren skriver på datorns tangentbord. Koden shoves detta ord i variabeln heter lösenord. Därefter använder programmets om deklarationer använder två olika tekniker för att jämföra lösenord med "svärdfisk".
Exemplen i den tryckta boken är mestadels textbaserade, men du kan hitta mer avancerade versioner av de flesta exempel på Dummies webbplats. Dessa snyggare versioner har fönster, knappar, textfält och andra element i ett typiskt grafiskt användargränssnitt (GUI).
Ju mer lämpliga av de två teknikerna används Java: s likvärdiga metod. Likvärdiga metoden ser roligt ut, eftersom när du ringer det lägger du en punkt efter en sträng och lägger den andra strängen inom parentes. Men det är så du måste göra det.
När du ringer till Java: s likvärdiga metod spelar ingen roll vilken sträng som får pricken och vilken får parenteserna. I listan kan du exempelvis ha skrivit
om ("svärdfisk". Är lika med (lösenord))
Metoden skulle fungera lika bra.
Ett samtal till Java: s lika metod ser obalanserad ut, men det är det inte. Det finns en orsak bakom den uppenbara obalansen mellan pricken och parenteserna. Tanken är att du har två objekt: lösenordsobjektet och "svärdfisk" -objektet.
Var och en av dessa två objekt är av typen String. (Lösenordet är en variabel av typen String, och "svärdfisk" är en String bokstavlig.) När du skriver lösenord. liknar ("svärdfisk"), du ringer en lika metod som hör till lösenordsobjektet. När du ringer till den här metoden matar du "svärdfisk" till metoden som metodens parameter (ordspråk).
När du jämnar strängar med varandra, använd samma metod - inte dubbelt lika tecken.