Huis Persoonlijke financiën Java Programmeren: een subklasse maken - dummies

Java Programmeren: een subklasse maken - dummies

Video: Learn Java Programming with Beginners Tutorial 2024

Video: Learn Java Programming with Beginners Tutorial 2024
Anonim

Wanneer u een objectgericht programma in Java schrijft, begint u met het nadenken over de gegevens. Je schrijft over accounts. Dus wat is een account? U schrijft code om knopklikken af ​​te handelen. Dus wat is een knop? U schrijft een programma om salariscontroles naar werknemers te sturen. Wat is een werknemer?

In dit voorbeeld is een medewerker iemand met een naam en een functienaam. Zeker, werknemers hebben andere kenmerken, maar houden voorlopig vast aan de basis. De code in deze lijst definieert wat het betekent om een ​​werknemer te zijn.

statische java importeren. Lang. Systeem. uit; public class Employee {private String name; private String jobTitle; public void setName (String nameIn) {name = nameIn;} public String getName () {return name;} public void setJobTitle (String jobTitleIn) {jobTitle = jobTitleIn;} public String getJobTitle () {return jobTitle;} public void cutCheck (dubbel bedrag betaald) {uit. printf ("Betaal naar de volgorde van% s", naam); uit. printf ("(% s) *** $", jobTitle); uit. printf ("%,.2fn", amountPaid);}}

In de lijst is een categorie werknemers gedefinieerd. U kunt hetgene dat u hier definieert, gebruiken en de definitie uitbreiden om nieuwe, meer gespecialiseerde klassen te maken. Dus in deze volgende lijst definieert u een nieuwe klasse - een klasse FullTimeEmployee.

openbare klasse FullTimeEmployee verlengt werknemer {private double weeklySalary; privé dubbele voordeelaftrek; public void setWeeklySalary (double weeklySalaryIn) {weeklySalary = weeklySalaryIn;} public double getWeeklySalary () {return weeklySalary;} public void setBenefitDeduction (double benefitDedIn) {benefitDeduction = benefitDedIn;} public double getBenefitDeduction () {return benefitDeduction;} public double findPaymentAmount () {return weeklySalary - benefitDeduction;}}

Als u naar de vermelding kijkt, ziet u dat elk exemplaar van de klasse FullTimeEmployee uit twee velden bestaat: weekSalary en benefitDeduction. Maar zijn dit de enige velden die elk exemplaar van FullTimeEmployee heeft? Nee dat zijn ze niet.

De eerste regel zegt dat de klasse FullTimeEmployee de bestaande klasse Employee uitbreidt. Dit betekent dat naast een WeeklySalary en een BenefitDeduction, elke FullTimeEmployee-instantie ook twee andere velden heeft: naam en jobTitle. Deze twee velden komen uit de definitie van de klasse Werknemers, die u kunt vinden in de eerste lijst.

In de tweede lijst is het toverwoord . Wanneer een klasse een bestaande klasse uitbreidt, neemt de uitbreidingsklasse automatisch de functionaliteit over die is gedefinieerd in de bestaande klasse.Dus de klasse FullTimeEmployee erft de velden naam en jobTitle.

De klasse FullTimeEmployee neemt ook alle methoden over die in de klasse Werknemers zijn gedeclareerd: setName, getName, setJobTitle, getJobTitle en cutCheck. De klasse FullTimeEmployee is een subklasse van de klasse Employee.

Dat betekent dat de klasse Employee de superklasse van de klasse FullTimeEmployee is. Je kunt ook praten in termen van bloedverwanten. De klasse FullTimeEmployee is het kind van de klasse Employee en de klasse Employee is het bovenliggende van de klasse FullTimeEmployee.

Het is bijna (maar niet helemaal) alsof de klasse FullTimeEmployee is gedefinieerd door de code in deze lijst. Deze code is nep, maar informatief.

statische java importeren. Lang. Systeem. uit; public class FullTimeEmployee {private String name; private String jobTitle; privé dubbel wekelijksSalaris; privé dubbele voordeelaftrek; public void setName (String nameIn) {name = nameIn;} public String getName () {return name;} public void setJobTitle (String jobTitleIn) {jobTitle = jobTitleIn;} public String getJobTitle () {return jobTitle;} public void setWeeklySalary (dubbele weekSalaryIn) {weeklySalary = weeklySalaryIn;} openbare dubbele getWeeklySalary () {return weeklySalary;} openbare ongeldige setBenefitDeduction (dubbele benefitDedIn) {benefitDeduction = benefitDedIn;} openbare dubbele getBenefitDeduction () {return benefitDeduction;} openbare dubbele findPaymentAmount () {return weeklySalary - benefitDeduction;} public void cutCheck (double amountPaid) {out. printf ("Betaal naar de volgorde van% s", naam); uit. printf ("(% s) *** $", jobTitle); uit. printf ("%,.2fn", amountPaid);}}

Waarom bevat deze lijst valse code? Nou, het belangrijkste verschil tussen deze vermelding en de overerving in de vorige lijsten is deze: Een onderliggende klasse kan niet rechtstreeks verwijzen naar de privévelden van de bovenliggende klasse. Om iets te doen met de privévelden van de bovenliggende klasse, moet de onderliggende klasse de accessormethoden van de bovenliggende klasse aanroepen.

Terug in de tweede lijst, zou het aanroepen van setName ("Rufus") legaal zijn, maar de codenaam = "Rufus" zou dat niet zijn. Als je gelooft dat alles wat je in de laatste lijst leest, zou je denken dat die code in de klasse FullTimeEmployee naam = "Rufus" kan doen. Nou, dat kan het niet.

U hebt de medewerker niet nodig. java-bestand op uw harde schijf om code te schrijven die de klasse Employee uitbreidt. Het enige dat u nodig hebt, is het bestand Medewerker. klasse.

Java Programmeren: een subklasse maken - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...