Mainmetode

Tags:    java

Hvad betyder det egentlig helt præcist når der står main eller static øverst i en metode?


Jeg arbejder selv med bogen Objekts First With Java og benytter det når jeg kan se det er der fra andre eksempler, men har ikke helt forstået det grundliggende.

Et eksemepl
public static void main (String[] args) throws Exception

Thanks

MVH

§KB§



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato

Main er et specielt navn på en metode. Der kan kun eksistere een main pr. program. Det symboliserer det sted i koden hvor programmet skal starte. Det vil sige at for at Java kan vide hvor den skal begynde at køre kode, leder den efter en main metode og starter derfra.

De to sidste ord i dit eksempel "throws exception" betyder at hvis der laves en fejl i dit program, bliver fejlen (exception'en) sendt videre til operativ systemet. Exceptions (eller fejl) laver det man kalder at "boble op" det betyder at hvis du har en metode der kalder en anden metode og den anden metode laver en exception så har metoden to valg: Metoden kan selv vælge at håndtere fejlen og eventuelt skrive en fejl til brugeren, eller den kan vælge at sende den videre til den metode der kaldte den (boble op) så er det den første metode der før fejlen tilbage i hovedet og skal så håndtere den. For at fange en fejl skal man bruge en try...catch sektion og for at sende den videre skal man bruge "throws exception" og det er lige nøjagtigt det dit eksempel gør, sidste led i det at "boble op" er at sende fejlen ud af vores program til operativ systemet.

At noget er statisk betyder at det ikke ændrer tilstand. Når man bruger det på en metode betyder det at man ikke inde i den metode ændrer tilstanden for objektet. Med andre ord betyder det at man ikke skal lave et objekt for at kunne kalde metoden. Ved en normal/ikke statisk metode skal man først lave et objekt af klassen, før man kan tilgå metoden:
Fold kodeboks ind/udKode 


Ved en statisk metode skal man ikke lave et nyt objekt af klassen , da den ikke ændrer tilstand, der gør man således:
Fold kodeboks ind/udKode 

i dit eksempel er det fordi aldrig ændrer tilstand, den kalder blot noget andet funktionalitet (alternativt, så bare sig til dig selv at SÅDAN ER DET BARE) :-)


(¯`·._.·[Brian Hvarregaard]·._.·´¯)


[Redigeret d. 17/02-05 08:10:05 af Brian Hvarregaard]



Hej Brian.

Tak for svaret. Det var til at forstå.


Men hvad med det der står inden i parentsen.
Man skal måske se det i en sammenhæng. Det er forbindelse til en DQL DB


import java.sql.*;
public class ForbindelseTilDB
{
public static void main (String[] args) throws Exception
{

org.postgresql.Driver dr= new org.postgresql.Driver();
DriverManager.registerDriver(dr);


Connection con= DriverManager.getConnection(
"jdbc:postgresql://localhost/U6DB","postgres","vwvwvw");

GuiTilAdressebog adrbog = new GuiTilAdressebog(con);

}

Hvad betyder altså (String[] args) Jeg mener det er en Array men kan ikke forstå sammenhængen?

MvH KB§

[Redigeret d. 17/02-05 11:58:17 af Kim Balle]




Hvad betyder altså (String[] args) Jeg mener det er en Array men kan ikke forstå sammenhængen?

MvH KB§


Det er for at man kan give nogle parametre, når man starter programmet.

hvis man foreksempel benytter en konsol til at afvikle sine programmer på, komilerer man ved at skrive:

javac mitProgram.java

For at eksekvere skriver man:

java mitProgram

Hvis man istedet skriver

java mitProgram hej Kim

Læser programmet "hej" som args[0] og "kim" som args[1] og kan herved benyttes af main metoden.

du kan afprøve det ved at tilføje:
System.out.println(args[0]);

Så skulle den gerne printe hej, hver gang du starter programmet på ovenstående måde.


Erling





Main er et specielt navn på en metode. Der kan kun eksistere een main pr. program.


Ikke helt korrekt.
Der kan være main metoder i alle de klasser du vil have.
Jeg plejer i de samme programmer at have en main metode i en klasse, som viser programmet i en GUI, og en main metode i en klasse som viser programmet i konsollen. Nogle gange endnu flere:

1 - Til start som server
2 - Til start som klient
3 - Alt muligt andet

Det kan være nemmere, end at parse en masse parametre.



t