Har sett att man kan deklarere variablerna på två olika sätt. uppe under public static void main, eller direkt framför variabeln. Vad är skillnaderna och vad är att rekommendera?
Deklarerar du dem tidigt i main, så blir se åtkomliga i hela main. Men om du istället deklarerar dem i en for-loop så blir de bara åtkomliga i själva loopen, vilket är bättre. Försök att ha ett så litet åtkomligt område (scope) som möjligt. Då undviker du fel och sparar på minnet.
Kan förklara det bättre om du visar lite kod, för just ditt fall.
Vill du bli duktig på Java och lära dig många Best-practice så rekommenderar jag boken Effective Java 2ed.
Där tas detta upp i Item 45: Minimize the scope of local variables
En annan sak att tänka på är Item 19: Minimize mutability. Vilket kort sagt betyder att man ska favorisera variabler som bara kan tilldelas en gång, och därefter inte ändras. I Java betyder det att man använder final på alla variabler när de deklareras. I funktionella språk så används den typen av variabler uteslutande.
Deklarerar du dem tidigt i main, så blir se åtkomliga i hela main. Men om du istället deklarerar dem i en for-loop så blir de bara åtkomliga i själva loopen, vilket är bättre. Försök att ha ett så litet åtkomligt område (scope) som möjligt. Då undviker du fel och sparar på minnet.
Kan förklara det bättre om du visar lite kod, för just ditt fall.
Vill du bli duktig på Java och lära dig många Best-practice så rekommenderar jag boken Effective Java 2ed.
Där tas detta upp i Item 45: Minimize the scope of local variables
Ett konkret exempel är att använda for-loopar istället för while-loopar i vissa tillfällen. Jämför:
int n = 0;
while(n<10) {
// gör nåt
n++
}
for(int n = 0; n<10; n++) {
// gör nåt
}
I exemplet med while-loopen betyder det att n är åtkomlig även efter loopen och kan av misstag användas igen. Vill du skriva ytterligare en while-loop så måste du välja ett annat variabelnamn eftersom n redan är upptaget i det scopet. I for-loopen är varibeln n bara åtkomlig i själva for-loopen och en variabel med samma namn kan användas senare i programmen utan att man behöver oroa sig för namnkollisioner.