Main-metoden er en metode som kan finnes i alle Java-klasser, og er ulik andre "vanlige" metoder. Main-metodens hensikt er å kjøre programmer. Main-metodens syntaks er slik:

class EnTilfeldigKlasse {	
	public static void main(String[] args) {
		// innhold
	}
}


Main-metoden plasseres i en klasse, akkurat som andre vanlige metoder, men kjøres utenfor objekter, noe som er indikert med 
static. Den har altså lite å gjøre med klassen den skrives inni i forhold til andre (ikke-static) metoder. Main-metoden brukes stort sett til én av to ting: enkel testing av klassen, eller oppstart av større programmer. I dette faget vil førstnevnte bli brukt mye. Noe viktig å legge merke til er at kode for selve logikken i klassene ikke finnes i main-metoden; her blir klassene instansiert til objekter, og det gjøres metodekall på dem. Man kan si at det er her man faktisk "tar i bruk" klassen.

Med en main-metode blir klassen kjørbar. Det vil si at en kan høyreklikke på klassenavnet -> Run As -> Java Application. Det er da koden i main-metoden som vil bli kjørt. En snarvei for å få opp main-metoden i eclipse er å skrive "main" og så trykke ctrl+space. 

Main-metoden tar inn et array med strings, String[] args. Disse oppgis på kommandolinja hvis den blir brukt for å kjøre programmet, eller i en egen launch-dialog i eclipse (Run -> Run Configurations -> Arguments-fanen). Disse argumentene brukes for å gi inn data til programmet, som kan være data programmet skal bruke, preferanser til hvordan programmet skal kjøre, stien til en fil programmet bruker, etc. Dette er ikke noe som må gjøres i dette faget.


Under er et eksempel på enkel testing av en Account-klasse. Dette kan brukes for å teste om koden en har skrevet i metodene sine fungerer som forventet.

class Account {
	public Account(String name, int startAmount) {...}
	void withdraw(int amount) {...}
	int getBalance() {...}
	
	public static void main(String[] args) {
		Account account = new Account("Jonas", 100);
		account.withdraw(50);
		System.out.println(account.getBalance());
	}
}


Under er et eksempel på oppstart av et program. Merk igjen at ingen logikk for hvordan programmet virker finnes i main-metoden, den bare oppretter MarioGame-objektet, klargjør det (init), og starter det (run). Å ha en init-metode er en vanlig strategi for større programmer.

	public static void main(String[] args) {
		MarioGame game = new MarioGame();
		game.init();
		game.run();
	}


Main-metoden som tester en klasse må ikke nødvendigvis skrives i klassen selv, men det er greit å gjøre det for testing. I mer sammensatte programmer brukes ofte en Hovedprogramklasse.

  • No labels