Video: Android 101 by Fred Widjaja 2025
Du kan angive adgang for felter og metoder i din Android-app. En Java-klasse kan have enten offentlig adgang eller ikke-offentlig (standard) adgang. Men et medlem af en klasse har fire muligheder: offentlig, privat, standard og beskyttet.
En klasses felter og metoder er klassens medlemmer.
Sådan fungerer medlemsadgang:
- Et standardmedlem i en klasse (et medlem hvis erklæring ikke indeholder ordene
offentlig
,privat
ellerbeskyttet
) kan bruges af en kode i samme pakke som den pågældende klasse. - Et privat medlem af en klasse kan ikke bruges i nogen kode uden for klassen.
- Et offentligt medlem af en klasse kan bruges hvor klassen selv kan bruges; det vil sige:
- Ethvert program i en pakke kan henvise til et offentligt medlem af en offentlig klasse.
- For et program til henvisning til et offentligt medlem af en standardadgangsklasse skal programmet være inde i samme pakke som klassen.
For at se disse regler i aktion, tjek den offentlige klasse i denne kode.
pakke com. allyourcode. bank;
offentlig klassekonto {
offentlig String customerName;
privat int internIdNumber;
String adresse;
String-telefon;
offentlig int socialSecurityNumber;
int kontoType;
dobbeltbalance;
offentlig statisk int findById (int internalIdNumber) {
Konto foundAccount = ny konto ();
// Kode for at finde kontoen går her.
return foundAccount. internalIdNumber;
}
}
Koden bruger klassen
Konto
og dens felter.
Lad os se, hvad der sker med en anden pakke.
Henvisning til en offentlig klasse i en anden pakke.Fejlmeddelelserne peger på nogle problemer med koden. Her er en liste over fakta om disse to stykker kode:
-
UseAccoun
t-klassen er i samme pakke som klassenKonto
. - Klassen
UseAccount
kan oprette en variabel af typenKonto
. - Klassen
UseAccount
kan henvise til det offentligecustomerName
-felt i klassenKonto
og til standardfeltetadresse
ikonto
klasse. - Klassen
UseAccount
kan ikke henvise til det privateinternalIdNumber
-felt i klassenKonto
, selvomUseAccount
ogKonto
er i samme pakke. - Klassen
UseAccountFromOutside
er ikke i samme pakke som klassenKonto
. - Klassen
UseAccountFromOutside
kan oprette en variabel af typenKonto
. (Enimport
-deklaration holder dig fra at skulle gentage den fuldt kvalificeredecom. Allyourcode. Bank. Konto
navngiv overalt i koden.) - The
UseAccountFromOutside
klassens kode kan henvise til det offentligecustomerName
-felt i klassenKonto
. - Klassen
Klassen til
klassen kan ikke henvise til feltet Standardadresse
i klassenKonto
eller til det privateinternalIdNumber
-felt ikonto
klasse.
Undersøg nu den ikke-offentlige klasse i denne kode.
pakke com. allyourcode. spil;
klasse Sprite {
offentlig Strenge navn;
Strenge billede;
dobbelt distanceFromLeftEdge, distanceFromTop;
double motionAcross, motionDown;
privat int renderingValue;
}
}
}
Koden bruger
Sprite
}
hvis (renderingValue == 2) {
// Gør ting her
Med henvisning til en standardadgangsklasse i samme pakke.
Lad os se, hvad der sker med en anden pakke.Med henvisning til en standardadgangsklasse i en anden pakke.
- Fejlmeddelelserne i disse billeder peger på nogle problemer med koden. Her er en liste over fakta om disse to stykker kode:
Klassen
UseSpriteer i samme pakke som klassen
Sprite - .
Klassen
UseSpritekan oprette en variabel af typen
Sprite - .
Klassen
UseSpritekan henvise til det offentlige
navn-felt i klassen
Spriteog til standardfeltet
distanceFromTopi feltet
Sprite - klasse.
Klassen
UseSpritekan ikke henvise til det private
renderingValue-felt i klassen
Sprite, selvom
UseSpriteog
Sprite - er i samme pakke.
Klassen
UseSpriteFromOutsideer ikke i samme pakke som klassen
Sprite - .
Klassen
UseSpriteFromOutsidekan ikke oprette en variabel af typen
Sprite. (Ikke engang en
import - erklæring kan gemme dig fra en fejlmeddelelse her.)
I klassen
UseAccountFromOutsidehenvises der til
sprite. navn, sprite. distanceFromTopog
sprite. renderingValueer alle meningsløse, fordi variablen
sprite