Video: Awesome iPhone Apps with Objective-C by Zack Chauvin 2024
Soms wilt u uw Java-object meer doen in uw Android-app. Beschouw dit: u hebt een printer en u probeert deze op uw computer te installeren. Het is een capabele printer, maar deze kwam niet met uw computer, dus uw computer heeft een programma nodig om station van de printer te krijgen: een printer stuurprogramma. Zonder stuurprogramma is uw nieuwe printer niets anders dan een gigantische presse-papier.
Maar soms kan het vinden van een apparaatstuurprogramma pijn in de nek zijn. Misschien kunt u de schijf die bij de printer is geleverd niet vinden.
Stel dat u een printer van een ander merk hebt waarvan het stuurprogramma in het permanente geheugen is ingebouwd. Wanneer u de printer op een USB-poort aansluit, geeft de computer een nieuwe opslaglocatie weer. (De locatie ziet eruit, voor gewone gebruikers, zoals een andere van de computerschijven.) De stuurprogramma's voor de printer worden rechtstreeks in het interne geheugen van de printer opgeslagen. Het is alsof de printer zichzelf weet te besturen!
Stel dat u de eigenschappen van een bepaalde tas wilt weergeven en dat u de nitty-gritty-details van een tas niet wilt behandelen. In het bijzonder maakt u zich niet graag zorgen over komma's, lege ruimten en veldnamen wanneer u een tas weergeeft:
zak. soort + "," + tas. gewicht + "," +
zak. daysAged + "," + tas. isDomestic + " n"
Je wilt liever dat de
BagOfCheese
-klasse uitzoekt hoe je een van zijn eigen objecten kunt weergeven.
Dit is het plan: verplaats de grote reeks met de velden van de zak, de komma's en de spaties van de klasse
MainActivity
naar de klasse
BagOfCheese
. Dat wil zeggen, maak elk
BagOfCheese
-object verantwoordelijk voor het beschrijven van zichzelf in
String
-formulier. U kunt ervoor zorgen dat elke tas zijn eigen weergaveknop heeft.
Het interessante kenmerk van een knop Display is dat wanneer je erop drukt, de tekst die je ziet, afhangt van de zak kaas die je onderzoekt. Nauwkeuriger gezegd, de tekst die u ziet, is afhankelijk van de waarden in de velden van dat specifieke formulier.
Hetzelfde gebeurt in de tweede reeks code hieronder wanneer u
bag1 belt. toString ()
. Java voert de
toString
-methode uit die de eerste reeks code toont. De waarden die worden gebruikt in die methode aanroepen -
soort
,
gewicht
,
daysAged
en
isDomestic
- zijn de waarden in de
-zak1
velden van object. Evenzo, de waarden die worden gebruikt wanneer u
bag2 belt. toString ()
zijn de waarden in de velden van het object
bag2
.
pakket com. allmycode. a09_10;
openbare klasse BagOfCheese {
public String type;
openbaar dubbel gewicht;
public int daysAged;
public boolean isDomestic;
public BagOfCheese () {
}
public BagOfCheese (String type, double weight,
int daysAged, boolean isDomestic) {
dit.soort = vriendelijk;
dit. gewicht = gewicht;
dit. daysAged = daysAged;
dit. isDomestic = isDomestic;
}
public String toString () {
return type + "," + weight + "," + daysAged + "," + isDomestic + " n";
}
}
Laten we nu eens kijken naar het weergeven van een tas zelf.
pakket com. allmycode. a09_11;
importeer android. ondersteuning. v7. app. AppCompatActivity;
importeer android. os. Bundel;
importeer android. widget. Tekstweergave;
com. allmycode. a09_10. BagOfCheese;
openbare klasse MainActivity breidt AppCompatActivity uit {
TextView-tekstView;
@Override
beschermde ongeldig onCreate (bundel savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (r.lay-out.activiteit_hoofd);
textView = (TextView) findViewById (R. Id. TextView);
BagOfCheese bag1 = nieuwe BagOfCheese ("Cheddar", 2. 43, 30, waar);
BagOfCheese bag2 = nieuwe BagOfCheese ("Blue", 5. 987, 90, false);
TextView. setText ("");
TextView. toevoegen (bag1. toString ());
TextView. toevoegen (bag2. toString ());
}
}
In de eerste set code heeft het
BagOfCheese
-object zijn eigen, parameterloze
toString
-methode. En in de tweede set maken de volgende twee regels twee aanroepen naar de methode
toString
- één oproep voor
bag1
en een andere oproep voor
bag2
:
tekstView. toevoegen (bag1. toString ());
TextView. toevoegen (bag2. toString ());
Een aanroep van
toString
gedraagt zich anders, afhankelijk van de specifieke tas die wordt weergegeven. Wanneer u
bag1 belt. toString ()
, u ziet de veldwaarden voor
bag1
en wanneer u
bag2 belt. toString ()
, ziet u de veldwaarden voor
bag2
.
Als u een van de methoden van een object wilt aanroepen, volgt u een verwijzing naar het object met een punt en vervolgens de naam van de methode.