Java kan ikke lage en statisk henvisning til en ikke-statisk metode

Java kan ikke lage en statisk henvisning til en ikke-statisk metode


Noen bare starter ut med Java utvikling er sannsynlig å møte den "Kan ikke lage en statisk henvisning til en ikke-statiske metoden" feil. Dette er et vanlig problem særlig i tilfeller der en Java-prosjektet inneholder metodeerklæringer innen sin hovedklasse, eller ringer metoder som ikke er statisk, fra statiske metoder. Forstå årsaker og løsninger på problemet er et sentralt element i å lære hvordan du kan lage Java-prosjekter.

årsaker

Hvis et Java-program forsøker å kalle en metode som ikke er statisk, fra en metode som er statisk, vil kompilatoren eller IDE (Integrated Development Environment) genererer en feil. Programmerere i tidlige stadier av læring Java utvikling er mest sannsynlig å møte denne feilen, fordi de ennå ikke kan være kjent med de som er involvert i objektorientert utvikling gjennom Java-språket konsepter. En vanlig situasjon der feilen har en tendens til å oppstå er når et program viktigste metoden er å forsøke å ringe en annen metode er definert i samme klasse, men som ikke har blitt erklært som en statisk metode.

Solutions

Løsningen på problemene ringer ikke-statiske metoder fra statiske metoder virkelig trenger å bli kontaktet på en måte som passer søknaden. Å gjøre metoden statisk ved å legge til "statisk" søkeord til metoden disposisjonen kan stoppe kompilatoren fra klagende og tillate et program å kjøre. Imidlertid kan forekomsten av feil angir at fremgangsmåten kan bli bedre behandlet ved å inkludere det i en klasse erklæring, kaller det ved først å opprette et objekt av klassen.

klasser

Når Java-utviklere lage programmer, dele de opp de ulike behandlingsoppgaver som kreves mellom et sett av objekter. Disse objektene hver viser en veldefinert sett med egenskaper og atferd, som skissert i sine klasse erklæringer. Utviklere kan dermed lage objekttyper for å utføre oppgaver i programmet, formalisere disse designene ved å skrive klasse erklæringer, innen hvilke variabler og metoder er skissert.

objekt~~POS=TRUNC forekomster

Når en søknad prosjektet har en eller flere klasse erklæringer som inngår i den, kan koden i programmet lage objektforekomster. Et objekt eksempel er en dedikert kodeelement med variablene og fremgangsmåter som er skissert i det tilsvarende klasse erklæring. For eksempel, gitt tilstedeværelse av en klasse erklæring kalt "hjelper" i et Java-prosjekt, kode i prosjektet, for eksempel inne i den viktigste metoden, kan opprette et objekt forekomst av klassen ved hjelp av følgende eksempel syntaks:

Hjelper myHelper = new Helper ();

Dersom det innen den "hjelper" klasse erklæring, er det en offentlig metode kalt "doSomething," koden kan kalle denne metoden på gjenstanden eksempel som følger:

myHelper.doSomething ();

statiske metoder

Den vanligste situasjon der den statiske referanse feilen oppstår er når et program prøver å kalle metoder fra den viktigste metoden for et prosjekt. Den viktigste metoden er vanligvis statisk, slik kode i det kan ikke kalle statiske metoder. Hvis en programmerer skaper en fremgangsmåte erklæring innenfor samme klasse som den viktigste metoden, vil det oppstå feil mindre metode er definert som statisk. Å velge å opprette objekter som utfører veldefinerte sett av programvirksomheten lar programmerere å mer effektivt dele opp elementene i et program som helhet.