Hej Henning,
Der findes ikke dumme spørgsmål, kun dumme folk.
1. Ja.
static betyder at variablen eller metoden ligger i klassen, og at disse derfor ikke oprettes seperart til hvert objekt/instans af klassen.
final betyder at variablen er konstant som du skrev, det vil sige ikke forandres.
Et godt eksempel på en static final variabel, kunne eksempelvis være i circle klassen:
public static final double PI = 3.14;
Dermed vil samtlige instanser af circle klassen kunne finde PI, men den vil kun ligge i hukommelsen een gang, uanset hvor mange circle instanser(objekter) som er lavet [static]. Den er public, for andre må gerne vide hvad PI er. Og fordi at den er final vil PI aldrig kunne forandres.
2. Instans variabler er variable som ligger i objektet. Det vil sige ikke statiske variabler, som er erklæret udenfor metoderne i klassen. Disse eksisterer så længe som objektet eksisterer.
3. Lokale variabler er variabler som er erklæret (oprettet) i en metode, eller indenfor en for løkke eller lignende. Disse forsvinder igen når metoden eller løkken er færdig. En parameter til en metode er også en lokal variabel, idet at den kun eksisterer i den metode og forsvinder bagefter.
4. Nej! Det gør man kun hvis man er doven og hvis programmet er ligeglad hvad der står i den variabel. Instans variabler sætter man som regel til private, idet man gerne eksempelvis vil have et check på at en cirkels radius ikke er 0. Derfor laves en public boolean getRadius() og en public void setRadius(double Radius) metode til variablen private double radius;
ved at sætte instans variabler til private undgår man at ens klasse kan lave for mange fejl når den benyttes af andre i andre projekter.
Instans variabler sættes kun til public hvis de er final.
Bonus:
- //antag her at vi er i klassen peter
- private String c=new String("Test"); // c et nyt Test objekt af class String (når der står new oprettes altid et nyt)
- // c er en instans variabel. IKKE LOKAL.
-
-
-
- public static void Navn(String b){
- // metode med den lokale parameter variabel b
-
- String a=new String("Test"); //a peger et nyt Test objekt af class String
-
- } // her forsvinder a og b. De var lokale variable.
-
-
- // antag her at vi er i Navn klassens Main() metode.
- Navn(c); // Et nyt objekt/instans af klassen Navn oprettes
Ps. Det er lige før jeg skulle arbejde som java programmør, hva' ?
Med venlig hilsen
Ieet
Indlæg senest redigeret d. 10.06.2008 16:45 af Bruger #12836