# Java-muuttujien käyttö

Java-muuttujat ovat säilytyspaikkoja, joihin voidaan tallentaa erilaisia [Java-tietotyyppejä](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-tietotyypit/). Niihin kuuluvat paikalliset muuttujat, instanssimuuttujat ja staattiset muuttujat. Java-muuttujien kokoa ei voi muuttaa jälkikäteen, mutta niiden sisältöä voi muuttaa niiden luomisen jälkeen.

## Mitä ovat Java-muuttujat?

Jokaisessa ohjelmointikielessä on muuttujia, joita käytetään ohjelman koodin käsittelemiseen. Muuttujat ovat **säilytyspaikkoja, jotka tallentavat tietyn tyyppisiä tietoja** (ja vain kyseisen tyyppisiä tietoja). Java-kielessä muuttujat voivat sisältää [Java-kielen primitiivisiä tietotyyppejä](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-primitiivit/), kuten kokonaislukuja, liukulukuja, totuusarvoja ja yksittäisiä numeroita. Ne voivat myös tallentaa monimutkaisia tietotyyppejä, kuten [Java-merkkijonoja](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-merkkijonot-1/). Java-kielen muuttujilla on tietty, selkeästi määritelty koko, jota ei voi muuttaa jälkikäteen. Muuttujan sisältöä voidaan kuitenkin muuttaa myöhemmin. Tässä opetusohjelmassa esitellään eri muuttujatyypit ja näytetään, miten luodaan muuttujia eri tietotyypeille.

## Kuinka julistaa ja alustaa `var` Java-kielellä

Ensimmäiseksi sinun on opittava, miten Java-muuttujat määritellään ja alustetaan. Tämä prosessi on sama kaikille muuttujatyypeille. **Muuttujan määrittelemiseen** tarvitaan **kaksi parametria**. Ensimmäinen on muuttujaan tallennettava tietotyyppi. Toinen on muuttujan nimi.

Kun sitten **alustat muuttujan**, tarvitset **kolme asiaa**. Tarvitset paitsi edellä mainitun muuttujan tietotyypin ja nimen, myös arvon sille. Muuttujan alustaminen tarkoittaa arvon määrittämistä aiemmin tyhjälle muuttujalle.

Tässä on syntaksin rakenne:

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

## Mitkä ovat Java-kielessä kolme muuttujatyyppiä?

Java-kielessä on kolme muuttujatyyppiä: paikalliset muuttujat, instanssimuuttujat ja staattiset muuttujat.

### Paikalliset muuttujat

Java-kielessä paikalliset muuttujat määritellään metodin, konstruktorin tai lohkon rungossa. Muuttujaa voidaan sitten käyttää vain kyseisen metodin sisällä. Näin se toimii käytännössä:

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

Tulostus näyttää seuraavalta:

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

### Instanssimuuttujat

Instanssimuuttujat luodaan **luokan sisällä, mutta menetelmän, konstruktorin tai lohkon ulkopuolella**. Ne syntyvät, kun luot objektin avainsanalla “new”. Toisin kuin paikalliset muuttujat, instanssimuuttujilla on vakioarvot. Numeroiden vakioarvo on 0 tai 0,0. Boolien vakioarvo on false. Objektiviittausten vakioarvo on null.

Seuraavassa esimerkissä voit nähdä, miten instanssimuuttujia käytetään Java-kielessä. Koodissa luomme ryhmän ihmisiä, jotka haluavat osallistua syntymäpäivälahjan hankintaan, ja luettelemme, mitä kukin henkilö on lahjoittanut.

```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());
	}
}
```

Tässä on tämän koodin tulos:

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

### Staattiset muuttujat

Toisin kuin kaksi muuta Java-muuttujatyyppiä, staattisia muuttujia ei voi julistaa staattisesti. Ne julistetaan **metodin, konstruktorin tai lohkon ulkopuolella**, joten ne kuuluvat luokkaan eivätkä instanssiin. Niitä käyttävät kaikki luokan instanssit. Staattisille muuttujille varataan muistia, kun luokka ladataan muistiin. Tässä on esimerkki koodina:

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

Tässä on tulos:

```java
Participant: Peter
```

## Kuinka luoda muuttujia, joilla on erilaisia tietotyyppejä

Java-muuttujien luominen on melko samanlaista kaikissa tietotyypeissä. Esitämme muutamia esimerkkejä yleisimmistä tietotyypeistä ja selitämme niiden erot.

### boolinen

[Boolen](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-kielen-boolean-primitiivinen-tietotyyppi/) arvo voi olla vain totuusarvo **true tai false**. Se määritellään seuraavasti:

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

Tässä on tulos:

```java
true
```

### int

int on yleisimmin käytetty tietotyyppi **kokonaisluvuille**. Voit määrittää Java-muuttujan int-tyypille seuraavasti:

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

Tässä on tulos:

```java
10
```

### kellua

float käytetään **desimaalilukujen** kanssa. Näin voit määritellä float-muuttujan Java-kielessä:

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

Tässä on tulos:

```java
-17.03
```

### hahmo

char sisältää **yhden merkin**, joka on merkitty yksittäisiin lainausmerkkeihin. Näin se näyttää koodissa:

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

Tässä on tulos:

```java
S
```

### Merkkijono

Edellä tarkasteltujen primitiivisten tietotyyppien lisäksi Java-muuttujat voivat sisältää myös **kokonaisia merkkijonoja**. Merkkijonot on kirjoitettava kaksoislauseenmerkkeihin:

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

Tässä on tulos:

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


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-muuttujat/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-muuttujat/) for AI/LLM consumption.