Någon precis börjat med Java utveckling sannolikt kommer att stöta på den " inte kan göra en statisk hänvisning till en icke - statisk metod " fel . Detta är ett vanligt problem särskilt i de fall där en Java- projekt innehåller metoddeklarationer inom sin huvudklass , eller kräver metoder som inte är statiskt , från statiska metoder . Förstå orsaker och lösningar till problemet är en viktig del i att lära sig att bygga Java-projekt . Orsaker
p Om ett Java- program försöker att anropa en metod som inte är statiskt , från en metod som är statiskt , kommer kompilatorn eller IDE ( Integrated Development Environment ) genererar ett fel . Programmerare i de tidiga stadierna av lärande Java utveckling är mest sannolikt att få det här problemet , eftersom de ännu inte är bekant med begrepp som ingår i objektorienterad utveckling genom Java . En vanlig situation där felet tenderar att uppstå är när ett program huvudsakliga metoden försöker anropa en annan metod som definierats i samma klass , men som inte har deklarerats som en statisk metod .
Solutions
lösning på problem som kräver icke - statiska metoder från statiska metoder måste verkligen ta sig an på ett sätt som passar tillämpningen . Att metoden statiska genom att lägga till " static " nyckelordet till metoden kontur kan stoppa kompilatorn från att klaga och låta ett program att köra . Emellertid kan förekomsten av felet tyder på att metoden bättre skulle kunna hanteras genom att inkludera den i en klass deklaration , kalla det genom att först skapa ett objekt av klassen .
Klasser
När Java utvecklare designprogram , de delar upp de olika bearbetning uppgifter som krävs mellan en uppsättning objekt . Dessa objekt varje utställning en väldefinierad uppsättning egenskaper och beteenden , som beskrivs som i sina klassdeklarationer . Utvecklare kan därför utforma objekttyper att utföra programuppgifter , formalisera dessa mönster genom att skriva klassdeklarationer , inom vilka variabler och metoder beskrivs .
Objektinstanser
När ett ansökan projektet har en eller flera klassdeklarationer som ingår i den , kan koden i programmet skapar objektinstanser . Ett objekt instans är en dedikerad kodelementet med variabler och metoder som beskrivs i motsvarande klass deklaration . Till exempel , med tanke på förekomsten av en klass deklaration som kallas " Helper " inom ett Java- projekt , kod i projektet , till exempel inuti den huvudsakliga metoden , kan skapa ett objekt instans av klassen med följande exempel syntax :
Helper myHelper = ny Helper ( ) ;
p Om , inom " Helper " klassdeklarationen , det finns en allmän metod som kallas " doSomething , " koden kan kalla denna metod på objektet instans enligt följande :
myHelper.doSomething ( ) ;
statiska metoder
den vanligaste situationen där statisk referens inträffar är när ett program försöker att anropa metoder från den huvudsakliga metoden för ett projekt . Den huvudsakliga metoden är normalt statisk , så koden inom den kan inte kalla statiska metoder . Om en programmerare skapar en metod deklaration i samma klass som den huvudsakliga metoden , kommer felet uppstår om metoden definieras som statisk . Att välja att skapa objekt som utför väl definierade uppsättningar av ansökan aktiviteter gör att programmerare att mer effektivt dela upp elementen inom ett program som helhet .