Innehållsförteckning:
Video: Programmering 1 - C# Klasser, en introduktion 2024
Du kan använda underklasser i Java. Att skapa underklasser är bra, men du får ingenting från dessa underklasser om du inte skriver kod för att använda dem. Så här utforskar du kod som använder underklasser.
Nu är det dags för dig att klassificera dig själv som antingen en typ-F-person, en typ-P-person eller en typ-T-person.
- En typ-F-person vill se grunderna. (Brevet F står för grundämnen.) "Visa mig ett program som anger principerna i sin mest grundläggande form", säger typ F-personen. En typ-F-person är inte orolig för klockor och visselpipor. Klockorna kommer senare, och visselpiporna får aldrig komma. Om du är en typ-F-person vill du se ett program som använder
FullTimeEmployee
ochPartTimeEmployee
underklasser och flyttar sig så att du kan få lite arbete. - En typ-P-person vill ha praktiska tillämpningar. (Brevet P står för praktiskt.) Typ-P-personer behöver se idéer i sammanhang; Annars flyter idéerna för snabbt bort. "Visa mig ett program som visar användbarheten av
FullTimeEmployee
ochPartTimeEmployee
underklasser", säger typ P-personen. "Jag har ingen nytta för dina stinkande abstraktioner. Jag vill ha verkliga exempel, och jag vill ha dem nu! " - En typ-T-person vill testa koden i underklassen
FullTimeEmployee
ochPartTimeEmployee
. Att testa koden innebär att du sätter koden genom sina steg - kontrollerar utgångens noggrannhet när ingången är vanlig, när ingången är oväntad, och även när ingången är helt orealistisk. Dessutom vill typ-T-personen använda en standard, lätt igenkännlig disposition för testkoden, så att andra programmerare snabbt kan förstå testresultaten. Typ-T-personen skapar JUnit-tester som använderFullTimeEmployee
ochPartTimeEmployee
underklasser.
Koden nedan, som är för typ F-folkmassan, är mager och enkel och ger bra sängläsning.
Om du är typ P eller typ T, besök allmycode. com. Webbplatsen innehåller exempel för att tillfredsställa typ-P och typ-T-läsare.
Den här koden visar ett program med bara ben som använder underklassen
FullTimeEmployee
och
PartTimeEmployee
. Här är programmets utdata.
offentlig klass DoPayrollTypeF {
statisk statisk tomt huvud (String args []) {
FullTimeEmployee ftEmployee = ny FullTimeEmployee ();
ftEmployee. setName ("Barry Burd");
ftEmployee. setJobTitle ("VD");
ftEmployee.setWeeklySalary (5000.00);
ftEmployee. setBenefitDuction (500.00);
ftEmployee. cutCheck (ftEmployee. findPaymentAmount ());
System. ut. println ();
PartTimeEmployee ptEmployee = ny PartTimeEmployee ();
ptEmployee. setName ("Steve Surace");
ptEmployee. setJobTitle ("Driver");
ptEmployee. setHourlyRate (7, 53);
ptEmployee. cutCheck (ptEmployee. findPaymentAmount (10));
}
}
För att förstå denna kod måste du hålla koll på tre klasser:
Medarbetare
,
FullTimeEmployee
och
PartTimeEmployee
.
Den första halvan av koden handlar om en heltidsanställd. Lägg märke till hur många metoder som finns tillgängliga för
ftEmployee
-variabeln? Till exempel kan du ringa
ftEmployee. setWeeklySalary
eftersom
ftEmployee
har typ
FullTimeEmployee
. Du kan också ringa
ftEmployee. setName
eftersom klassen
FullTimeEmployee
utökar klassen
Medarbetare
.
Eftersom
cutCheck
förklaras i klassen
Medarbetare
kan du ringa
ftEmployee. cutCheck
. Men du kan också ringa
ftEmployee. findPaymentAmount
eftersom en
findPaymentAmount
-metod finns i klassen
FullTimeEmployee
.
Göra typer matchar
Titta igen vid första halvan av koden. Var särskilt uppmärksam på det sistnämnda uttalandet - den där heltidspersonalen faktiskt sänker en check. Uttalandet utgör en fin, lång kedja av värden och deras typer. Du kan se detta genom att läsa uttalandet från insidan ut:
- Metod
ftEmployee. findPaymentAmount
heter med en tom parameterlista. Det är bra eftersom metodenfindPaymentAmount
inte tar några parametrar. - Metoden
findPaymentAmount
returnerar ett värde av typendubbel
. - Värdet
dubbel
somftEmployee. findPaymentAmount
returneras till metodftEmployee. cutCheck
. Det är bra eftersom metodencutCheck
tar en parameter av typdubbel
.
Kolla in den fantasifulla grafiska illustrationen.
Matchande parametrar.Alltid mata en metod de värdetyper som den vill ha i dess parameterlista.
Den andra halvan av berättelsen
I den andra halvan av koden skapar koden ett objekt av typen
PartTimeEmployee
. En variabel av typen
PartTimeEmployee
kan göra några av samma saker som en
FullTimeEmployee
-variabel kan göra. Men klassen
PartTimeEmployee
har inte metoden
setWeeklySalary
och
setBenefitDeduction
. I stället har klassen
PartTimeEmployee
metoden
setHourlyRate
. Så den närmaste raden är ett samtal till metoden
setHourlyRate
.
Kodens sista rad är den mest intressanta. På den linjen hämtar koden numret
10
(antalet arbetade timmar) till metoden
findPaymentAmount
. Jämför detta med det tidigare samtalet till
findPaymentAmount
- samtalet för heltidsanställd i den första halvan av koden.Mellan de två underklassen,
FullTimeEmployee
och
PartTimeEmployee
, är två olika
findPaymentAmount
metoder. De två metoderna har två olika typer av parameterlistor:
- The
FullTimeEmployee
klassensfindPaymentAmount
-metod tar inga parametrar. - Metoden
PartTimeEmployee
klassensfindPaymentAmount
tar en parameterint
.
Detta är par för kursen. Att hitta betalningsbeloppet för en deltidsanställd är inte detsamma som att hitta betalningsbeloppet för en heltidsanställd. En deltidsanställdas lön ändras varje vecka, beroende på hur många timmar arbetstagaren arbetar i en vecka. Heltidspersonalens lön förblir densamma varje vecka. Så
FullTimeEmployee
och
PartTimeEmployee
klasserna har båda
findPaymentAmount
metoder, men varje klasss metod fungerar ganska annorlunda.