Video: Awesome iPhone Apps with Objective-C by Zack Chauvin 2025
Nogle gange vil du give dit Java-objekt mere at gøre i din Android-app. Overvej dette: Du har en printer, og du forsøger at installere den på din computer. Det er en dygtig printer, men det fulgte ikke med din computer, så din computer har brug for et program til drev printeren: en printer driver. Uden en driver er din nye printer intet andet end en kæmpe papirvægt.
Men nogle gange kan det være en smerte i nakken at finde en enhedsdriver. Måske kan du ikke finde den disk, der fulgte med printeren.
Forestil dig, at du har en off-brand printer, hvis driver er indbygget i sin permanente hukommelse. Når du tilslutter printeren til en USB-port, viser computeren et nyt lagringssted. (Placeringen ser til almindelige brugere som en anden af computerens diske.) Driverne til printeren gemmes direkte på printerens interne hukommelse. Det er som om printeren ved, hvordan man kører selv!
Lad os sige, at du vil vise egenskaberne af en bestemt taske, og du kan ikke lide at håndtere en taskes nitty-gritty detaljer. I særdeleshed kan du ikke lide at bekymre dig om kommaer, tomme mellemrum og feltnavne, når du viser en taske:
taske. venlig + "," + taske. vægt + "," +
taske. daysAged + "," + taske. erDomestic + " n"
Du vil hellere have
BagOfCheese
klassen, hvordan du viser en af sine egne objekter.
Her er planen: Flyt den store streng med posens felter, kommaer og mellemrum fra klassen
MainActivity
til klassen
BagOfCheese
. Det vil sige, at hver
BagOfCheese
objekt er ansvarlig for at beskrive sig selv i
String
form. Du kunne gøre hver poses form en egen Display-knap.
Den interessante egenskab ved en Display-knap er, at når du trykker på den, ses teksten afhængig af den ostepose, du undersøger. Mere præcist er den tekst, du ser afhænger af værdierne i den pågældende formes felter.
Det samme sker i det andet sæt kode nedenfor, når du ringer til
taske1. toString ()
. Java kører metoden
toString
vist det første sæt kode. De værdier, der anvendes i denne metodeopkald -
type
,
vægt
,
daysAged
og
isDemestic
- er værdierne i
tasken1
objekts felter. Tilsvarende de værdier, der bruges, når du ringer til
bag2. toString ()
er værdierne i
bag2
objektets felter.
pakke com. allmycode. a09_10;
offentlig klasse BagOfCheese {
public String kind;
offentlig dobbeltvægt;
offentlige dage
offentlige booleanske erDomestic;
offentlig BagOfCheese () {
}
offentlig BagOfCheese (String type, dobbeltvægt,
int daysAged, boolean isDemestic) {
dette.kind = kind;
dette. vægt = vægt;
dette. daysAged = daysAged;
dette. erDomestic = erDomestic;
}
offentlig String toString () {
returart + "," + vægt + "," + daysAged + "," + isDemestic + " n";
}
}
Lad os nu se på at have en taske selv.
pakke com. allmycode. a09_11;
importer android. support. v7. app. AppCompatActivity;
importer android. OS. Bundt;
importer android. widget. TextView;
import com. allmycode. a09_10. BagOfCheese;
offentlig klasse MainActivity udvider AppCompatActivity {
TextView textView;
@Override
beskyttet ugyldigt onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. Layout. Activity_main);
textView = (TextView) findViewById (R. Id. TextView);
BagOfCheese bag1 = new BagOfCheese ("Cheddar", 2. 43, 30, true);
BagOfCheese bag2 = ny BagOfCheese ("Blue", 5. 987, 90, false);
TextView. setText ("");
TextView. tilføj (bag1. toString ());
TextView. tilføj (bag2. toString ());
}
}
I det første sæt kode har objektet
BagOfCheese
sin egen parameterfri
tilString
metode. Og i det andet sæt gør følgende to linjer to opkald til metoden
toString
- et opkald til
bag1
og et andet opkald til
bag2
:
textView. tilføj (bag1. toString ());
TextView. tilføj (bag2. toString ());
Et opkald til
toString
opfører sig forskelligt afhængigt af den pågældende taske, der vises. Når du ringer til
taske1. toString ()
, ser du feltværdierne for
bag1
, og når du ringer til
bag2. toString ()
, ser du feltværdierne for
bag2
.
For at kalde en af objekts metoder, skal du følge en henvisning til objektet med en prik og derefter metodeens navn.