Video: Awesome iPhone Apps with Objective-C by Zack Chauvin 2024
Ibland vill du ge ditt Java-objekt mer att göra i din Android-app. Tänk på följande: Du har en skrivare och du försöker installera den på din dator. Det är en skicklig skrivare, men det gick inte med datorn, så din dator behöver ett program för att köra skrivaren: en skrivare drivrutin. Utan en förare är din nya skrivare bara en jätte pappersvikt.
Men ibland kan man hitta en drivrutin för en smärta i nacken. Kanske kan du inte hitta den skiva som följde med skrivaren.
Föreställ dig att du har en off-brand-skrivare vars drivrutin är inbyggd i sitt permanenta minne. När du ansluter skrivaren till en USB-port visar datorn en ny lagringsplats. (Platsen ser ut som vanliga användare som en annan av dators diskar.) Drivrutinerna för skrivaren lagras direkt på skrivarens internminne. Det är som om skrivaren vet hur man kör själv!
Låt oss säga att du vill visa egenskaperna hos en viss väska, och du tycker inte om att hantera en väska med nitty-gritty detaljer. I synnerhet gillar du inte att kommentera, tomma mellanslag och fältnamn när du visar en påse:
väska. snäll + "," + väska. vikt + "," +
väska. daysAged + "," + väska. isDemestic + " n"
Du vill hellre få klassen
BagOfCheese
för att visa hur man visar ett eget objekt.
Här är planen: Flytta den stora strängen med påsens fält, kommatecken och mellanslag från klassen
MainActivity
till klassen
BagOfCheese
. Det gör att varje
BagOfCheese
objekt är ansvarigt för att beskriva sig i
String
form. Du kan ge varje väska sin egen Display-knapp.
Den intressanta egenskapen hos en Display-knapp är att när du trycker på den, ser texten som du ser beror på påsen med ost du undersöker. Mer exakt är texten du ser beror på värdena i den aktuella formulärens fält.
Samma sak händer i den andra uppsättningen kod nedan när du ringer
bag1. toString ()
. Java körs med
toString
-metoden som visas den första uppsättningen kod. De värden som används i den metodmetoden -
typ
,
vikt
,
daysAged
och
isDemestic
- är värdena i
påse1
objektets fält. På samma sätt används de värden som används när du ringer
bag2. toString ()
är värdena i fältet
bag2
-objektet.
paket com. allmycode. a09_10;
allmän klass BagOfCheese {
public String kind;
allmän dubbelvikt
public int daysAged;
Offentlig Boolean är Domestic;
offentliga BagOfCheese () {
}
offentliga BagOfCheese (String kind, dubbelvikt,
int daysAged, boolean isDomestic) {
detta.snäll = slag
detta. vikt = vikt
detta. daysAged = daysAged;
detta. isDemestic = isDemestic;
}
public String toString () {
returtyp + "," + vikt + "," + daysAged + "," + isDomestic + " n";
}
}
Nu, låt oss ta en titt på att ha en väska i sig själv.
paket com. allmycode. a09_11;
importera android. Stöd. v7. app. AppCompatActivity;
importera android. os. Bunt;
importera android. widget. Textview;
import com. allmycode. a09_10. BagOfCheese;
public class MainActivity utökar AppCompatActivity {
TextView textView;
@Override
protected void 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. lägg till (bag1. toString ());
Textview. lägg till (bag2. toString ());
}
}
I den första uppsättningen kod har objektet
BagOfCheese
sin egen parameterfri
toString
metod. Och i den andra uppsättningen gör följande två linjer två samtal till metoden
toString
- ett samtal för
bag1
och ett annat samtal för
bag2
:
textView. lägg till (bag1. toString ());
Textview. lägg till (bag2. toString ());
Ett anrop till
toString
beter sig olika beroende på den särskilda väskan som visas. När du ringer
väska1. toString ()
, ser du fältvärdena för
bag1
och när du ringer
bag2. toString ()
, ser du fältvärdena för
bag2
.
Om du vill ringa ett objekts metoder följer du en referens till objektet med en punkt och sedan metodens namn.