Statiske metoder kaste mange uerfarne Java-programmerere til timer med kamper med kildekoden som gir dem feil . Disse problemene kan bli enda seigere når Java-utviklere integrere dem i deres klasse-filer , og spesielt problematisk når utviklere bruker dem i sine underklasser . Imidlertid kan en riktig forståelse av prinsippene for arv klare opp mye av denne forvirringen . Klasser
objektorientert programmering er premised på kodestrukturer kjent som " klasser ". Når en programmerer skriver en klasse , er han effektivt å lage en mal han kan bruke til å opprette flere forekomster av kode struktur , eller gjenstander . For eksempel kan et spill programmerer som er koding et spill skriver en klasse som inneholder all kode for å lage en funksjonell karakter. I stedet for å skrive denne koden flere ganger for å opprette flere tegn, kan han bare lage flere forekomster av enkelt klasse skrev han.
Sub klasser
Java-programmerere kan videre spesialisere klasser de skriver med underklasser . Dette er effektivt utvidelser til en forelder klasse. For eksempel kan et spill programmerer skrive en klasse som inneholder de grunnleggende mekanismene for å gjøre tegn flytte rundt og samhandle . Hun kan deretter opprette underklasser - som automatisk arve all koden av deres overordnede klassen uten at hun måtte skrive inn alt - . Som inneholder spesialiserte koden for å lage forskjellige typer tegn som allierte , fiender og bosser
statiske og instansmetodene
Individuelle funksjoner i et objekt kalles metoder. Det finnes to typer metoder : instansmetoder og statiske metoder . Hver gang en programmerer oppretter en ny instans av et klasse , dette objekt et helt autonom enhet . Det har sine egne variabler som har verdier som er forskjellig fra andre eksempel objekter av samme klasse og dens instansmetodene kun påvirke sine egne variabler . Imidlertid er statiske metoder innen en klasse behandles forskjellig . Snarere enn bare å ha tilgang til en bestemt forekomst , statiske metoder tilgang til data fra alle forekomster av en klasse . Alternativt, hvis den statiske metoden er deklarert innenfor en underklasse , har det tilgang til data fra alle forekomster objekt av den aktuelle underklasse .
Statiske metoder og overstyrer
Når underklasser utvide sine foreldre klasser , programmerere har muligheten til " overordnede " metoder i den overordnede klassen med metoder fra underklassen . Ved å skrive en metode med samme navn i en underklasse som eksisterer innenfor den overordnede klassen den strekker seg , og kaller denne metoden i programmet vil føre til Java for å bruke metoden koden fra underklassen i stedet for den overordnede klassen . Men dette fungerer ikke med statiske metoder . Hvis en programmerer prøver å overstyre en statisk metode fra en forelder klasse i en underklasse , vil hans program generere en feilmelding ved kompilering .