Hjem Sosiale medier Android App Utvikling: Java klasser som må (og må ikke) dummies

Android App Utvikling: Java klasser som må (og må ikke) dummies

Innholdsfortegnelse:

Video: Android 101 by Fred Widjaja 2024

Video: Android 101 by Fred Widjaja 2024
Anonim

Hvis en Java-klasse ikke er ødelagt, må du ikke fikse det. Anta at du vil legge til funksjonalitet til en eksisterende Java-klasse. Du liker Android's Aktivitetsklasse, men den forhåndsdeklarerte Aktivitetsklassen viser ingenting på skjermen. Skriver du om Android-aktivitetsklassen? Nei.

I stedet for å omskrive en eksisterende klasse, forlener du klassen. Selv i et ikke-noe Android-"Hello" -program, skriver du

offentlig klasse MyActivity utvider Aktivitet

Deretter skriver du

@Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main);}

Din MyActivity-klassen skaper ny funksjonalitet ved å utvide det meste av Android-aktivitetsfunksjonaliteten, mens du overstyrer aktivitetsklassens hjernedøde onCreate-metode.

Java's siste klasser

I objektorientert programmering er det å utvide en klasse den edleste tingen du kan gjøre.

Men noen klasser er ikke ment å bli utvidet. Ta for eksempel Java's String-klassen. En streng er en streng er en streng. Du vil ikke ha noen MyString. lengde metode for å returnere hvor lang tid det tar å kryptere en strengs tegn. For å hindre at noen gjør uventede, ukonvensjonelle eller uvanlige med en strengs metoder, har skaperne av Java gjort String-klassen endelige:

Offentlig finaleklasse String

Noen av Android's forhåndsdeklarerte klasser er også endelige, inkludert Telefoni og MediaStore klasser.

Java's abstrakte klasser

På samme måte som en siste klasse hater å bli utvidet, insisterer en abstrakt klasse på å bli utvidet. Android's ViewGroup er et eksempel på en abstrakt klasse.

offentlig abstrakt class ViewGroup {public void bringChildToFront (Vis barn) {int index = indexOfChild (barn); hvis (indeks> = 0) {removeFromArray (indeks); addInArray (barn, mChildrenCount); barn. mParent = this;}} beskyttet abstrakt void onLayout (boolean endret, int l, int t, int r, int b);}

Android's ViewGroup. java filen er mer enn 3, 700 linjer lang. Så dette eksempelet har bare en liten brøkdel av filens kode. Men du kan se hvordan en klasse blir abstrakt. Til ingen overraskelse går ordet abstrakt foran ordklassen. Men ordet abstrakt begynner også å erklære noen metoder som tilhører klassen.

Grundleggerne av Android bestemte seg for at ideen om en ViewGroup er nyttig. De var korrekte fordi dine favoritt Android-oppsett (LinearLayout, RelativeLayout, og så videre) er underklasser av ViewGroup.De forsto også at fra en slags ViewGroup til en annen, endrer noen funksjonalitet ikke. For eksempel definerer eksemplet ovenfor en bringChildToFront-metode, og underklasser av ViewGroup arver denne metoden.

Men grunnleggerne skjønte også at noen aspekter av en ViewGroup ikke gir mening uten at du jobber med en bestemt gruppe. For eksempel plasserer en LinearLayout ting etter hverandre, og en RelativeLayout plasserer ting over, under og til siden av hverandre. Koden ovenfor har derfor ikke en fullblåst onLayout-metode.

OnLayout-deklarasjonen har ingen metoden kropp. Men Android krever at hver underklasse i ViewGroup-klassen skal erklære sin egen onLayout-metode. Java håndhever dette kravet når du erklære metode onLayout for å være abstrakt.

Som utvikler kan du ikke opprette et objekt fra en abstrakt klasse. Hvis du skriver

ViewGroup group = new ViewGroup ();

Java forteller deg at du oppfører deg dårlig. For å gjøre noe nyttig med ViewGroup-klassen, trenger du en underklasse av ViewGroup-klassen. Underklassen har en konkret versjon av hver abstrakt metode i ViewGroup-klassen:

pakken com. allmycode. prøver; importere android. innhold. Kontekst; importere android. utsikt. ViewGroup; offentlig klasse MyLayout utvider ViewGroup {offentlig MyLayout (Kontekst kontekst) {super (kontekst);} @Override protected void onLayout (boolsk endret, int l, int t, int r, int b);}}
Android App Utvikling: Java klasser som må (og må ikke) dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...