Video: Calling All Cars: The Blonde Paper Hanger / The Abandoned Bricks / The Swollen Face 2024
Förtvingande regler är tuffa. Lyckligtvis för dig har Java en mer elegant lösning än vad många föräldrar står inför. Du kan använda accessor metoder för att göra din envis kod följa dina regler.
Här är en kod som döljer fälten.
offentligt klasskonto {
privat strängnamn;
privat strängadress;
privat dubbelbalans;
public void setName (String n) {
namn = n;
}
public String getName () {
returnamn;
}
public void setAddress (String a) {
adress = a;
}
public String getAddress () {
returadress;
}
offentligt tomt setBalans (dubbel b) {
balans = b;
}
offentlig dubbel getBalance () {
returbalans;
}
}
Gå tillbaka och ta en titt på
setName
-metoden. Tänk dig att sätta metodens uppdragsdeklaration i ett
om
uttalande.
public void setName (String n) {
om (! N. Är lika med ("")) {
namn = n;
}
}
Om programmeraren som ansvarar för klassen
UseAccount
skriver
myAccount. setName ("")
har samtalet till
setName
ingen effekt. Dessutom, eftersom namnfältet är privat är följande påstående olagligt i klassen
UseAccount
:
myAccount. namn = "";
Naturligtvis ett samtal som
myAccount. setName ("Joe Schmoe")
fungerar fortfarande eftersom
"Joe Schmoe"
motsvarar inte den tomma strängen
""
.
Det är coolt. Med ett privatfält och en accessor-metod kan du förhindra att någon tilldelar den tomma strängen till ett konto
namn
fält. Med mer utförliga
om
uttalanden kan du genomdriva alla regler du vill ha.