# Kuidas kasutada Java muutujaid

Java muutujad on konteinerid, mis võivad salvestada erinevaid [Java andmetüüpe](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-andmetueuebid/). Need hõlmavad kohalikke muutujaid, instantsi muutujaid ja staatilisi muutujaid. Kuigi Java muutujate suurust ei saa hiljem muuta, on võimalik muuta nende sisu pärast nende loomist.

## Mis on Java muutujad?

Igas programmeerimiskeeles on muutujad, mida kasutatakse programmi koodiga töötamiseks. Muutujad on **konteinerid, mis salvestavad teatud andmetüüpi andmeid** (ja ainult selle tüüpi andmeid). Java keeles võivad muutujad sisaldada [Java primitiivseid andmetüüpe](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-primitiivsed-tueuebid/), nagu täisarvud, ujukomaarvud, tõeväärtused ja üksikud numbrid. Nad võivad salvestada ka keerukaid andmetüüpe, nagu [Java stringid](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-stringid/). Java keeles on muutujatel kindel, selgelt määratletud suurus, mida ei saa hiljem muuta. Muutuja sisu võib aga hiljem muuta. Selles õpetuses tutvustame erinevaid muutujatüüpe ja näitame, kuidas luua muutujaid erinevate andmetüüpide jaoks.

## Kuidas deklareerida ja initsialiseerida `var` Java-s

Esimene asi, mida peate teadma, on Java muutujate deklareerimine ja initsialiseerimine. See protsess on sama kõikide muutujatüüpide puhul. **Muutuja deklareerimiseks** on vaja **kahte parameetrit**. Esimene on andmetüüp, mida soovite muutujasse salvestada. Teine on muutuja nimi.

Kui seejärel **muutuja initsialiseerite**, on vaja **kolme komponenti**. Lisaks eespool nimetatud andmetüübile ja muutuja nimele on vaja ka selle väärtust. Muutuja initsialiseerimine tähendab väärtuse omistamist varem tühjale muutujale.

Süntaks näeb välja järgmine:

```java
Datatype Name = Value;
```

## Millised on kolm muutujatüüpi Java-s?

Java-s on kolm tüüpi muutujaid: kohalikud muutujad, instantsimuutujad ja staatilised muutujad.

### Kohalikud muutujad

Java keeles deklareeritakse kohalikud muutujad meetodi, konstruktori või ploki kehas. Muutuja saab seejärel kasutada ainult selles meetodis. Siin on näide, kuidas see praktikas välja näeb:

```java
public class Main {
	public static void main(String[] args) {
		int var = 5;
		System.out.println("The local variable is: " + var);
	}
}
```

Väljund näeb välja järgmine:

```java
The local variable is: 5
```

### Instantsi muutujad

Instantsi muutujad luuakse **klassi sees, kuid meetodi, konstruktori või ploki väljaspool**. Need tekivad, kui loote objekti märksõnaga „new”. Erinevalt kohalikest muutujatest on instantsi muutujatel standardväärtused. Numbrite puhul on standardväärtus 0 või 0,0. Boolide puhul on see false. Objekti viidete puhul on see null.

Järgmises näites näete, kuidas Java-s kasutatakse instantsi muutujaid. Koodis loome rühma inimesi, kes soovivad anda oma panuse sünnipäevakingitusse, ja loetleme, mida igaüks on panustanud.

```java
public class Gift  {
	public String name;
	private double contribution;
	public Gift (String person) {
		name = person;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getContribution() {
		return contribution;
	}
	public void setContribution(double participantContribution) {	
		contribution = participantContribution;
	}
	public static void main(String[] args) {
		Gift participant = new Gift ("Peter");
		participant.setContribution(10);
		System.out.println("Name: " + participant.getName());
		System.out.println("Contribution = " + participant.getContribution());
		Gift participant2 = new Gift ("Maria");
		participant2.setContribution(15);
		System.out.println("Name: " + participant2.getName());
		System.out.println("Contribution  = " + participant2.getContribution());
	}
}
```

Siin on selle koodi väljund:

```java
Name: Peter
Contribution = 10.0
Name: Maria
Contribution = 15.0
```

### Staatilised muutujad

Kui kahte teist Java muutujatüüpi ei saa staatiliselt deklareerida, siis staatilisi muutujaid saab. Need deklareeritakse **väljaspool meetodit, konstruktorit või plokki** ja kuuluvad seega klassi, mitte instantsi juurde. Neid kasutavad kõik klassi instantsid. Staatilistele muutujatele eraldatakse mälu, kui klass laaditakse mällu. Siin on näide koodis:

```java
public class Gift {
	public static String participant = "Peter";
	public static void main(String[] args) {
		System.out.println("Participant: " + Gift.participant);
	}
}
```

Siin on väljund:

```java
Participant: Peter
```

## Kuidas luua erinevate andmetüüpidega muutujaid

Java muutujate loomise protsess on andmetüüpide lõikes üsna sarnane. Näitame teile mõned näited kõige levinumate andmetüüpide kohta ja selgitame nende erinevusi.

### booliline

[Booli](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-boolei-primitiivne-andmetueuep/) väärtus võib sisaldada ainult tõeväärtusi **true või false**. See deklareeritakse järgmiselt:

```java
public class Main {
	public static void main(String[] args) {
		boolean pizzaTastesGood = true;
		System.out.println(pizzaTastesGood);
	}
}
```

Siin on väljund:

```java
true
```

### int

int on **täisarvude** puhul kõige sagedamini kasutatav andmetüüp. Java-muutuja int saab deklareerida järgmiselt:

```java
public class Main {
	public static void main(String[] args) {
		int x = 10;
		System.out.println(x);
	}
}
```

Siin on väljund:

```java
10
```

### ujuv

float kasutatakse **kümnendmurrudega arvude** jaoks. Siin on näide, kuidas Java-s float-tüüpi muutuja deklareerida:

```java
public class Main {
	public static void main(String[] args) {
		float x = -17.03f;
		System.out.println(x);
	}
}
```

Siin on väljund:

```java
-17.03
```

### süsi

char sisaldab **ühte märki**, mis on märgitud ülakomaadega. Siin on näide, kuidas see koodis välja näeb:

```java
public class Main {
	public static void main(String[] args) {
		char x = 'S';
		System.out.println(x);
	}
}
```

Siin on väljund:

```java
S
```

### String

Lisaks eespool vaadeldud primitiivsetele andmetüüpidele võivad Java muutujad sisaldada ka **terviklikke stringe**. Stringid tuleb sisestada kahekordsete jutumärkide vahele:

```java
public class Main {
	public static void main(String[] args) {
		String example = "This is a string in Java.";
		System.out.println(example);
	}
}
```

Siin on väljund:

```java
This is a string in Java.
```


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-muutujad/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-muutujad/) for AI/LLM consumption.