Java-muuttujat ovat säi­ly­tys­paik­ko­ja, joihin voidaan tallentaa erilaisia Java-tie­to­tyyp­pe­jä. Niihin kuuluvat pai­kal­li­set muuttujat, ins­tans­si­muut­tu­jat ja staat­ti­set muuttujat. Java-muut­tu­jien kokoa ei voi muuttaa jäl­ki­kä­teen, mutta niiden sisältöä voi muuttaa niiden luomisen jälkeen.

Mitä ovat Java-muuttujat?

Jo­kai­ses­sa oh­jel­moin­ti­kie­les­sä on muuttujia, joita käytetään ohjelman koodin kä­sit­te­le­mi­seen. Muuttujat ovat säi­ly­tys­paik­ko­ja, jotka tal­len­ta­vat tietyn tyyppisiä tietoja (ja vain kyseisen tyyppisiä tietoja). Java-kielessä muuttujat voivat sisältää Java-kielen pri­mi­tii­vi­siä tie­to­tyyp­pe­jä, kuten ko­ko­nais­lu­ku­ja, liu­ku­lu­ku­ja, to­tuusar­vo­ja ja yk­sit­täi­siä numeroita. Ne voivat myös tallentaa mo­ni­mut­kai­sia tie­to­tyyp­pe­jä, kuten Java-merk­ki­jo­no­ja. Java-kielen muut­tu­jil­la on tietty, selkeästi mää­ri­tel­ty koko, jota ei voi muuttaa jäl­ki­kä­teen. Muuttujan sisältöä voidaan kuitenkin muuttaa myöhemmin. Tässä ope­tus­oh­jel­mas­sa esi­tel­lään eri muut­tu­ja­tyy­pit ja näytetään, miten luodaan muuttujia eri tie­to­tyy­peil­le.

Kuinka julistaa ja alustaa var Java-kielellä

En­sim­mäi­sek­si sinun on opittava, miten Java-muuttujat mää­ri­tel­lään ja alus­te­taan. Tämä prosessi on sama kaikille muut­tu­ja­tyy­peil­le. Muuttujan mää­rit­te­le­mi­seen tarvitaan kaksi pa­ra­met­ria. En­sim­mäi­nen on muut­tu­jaan tal­len­net­ta­va tie­to­tyyp­pi. Toinen on muuttujan nimi.

Kun sitten alustat muuttujan, tarvitset kolme asiaa. Tarvitset paitsi edellä mainitun muuttujan tie­to­tyy­pin ja nimen, myös arvon sille. Muuttujan alus­ta­mi­nen tar­koit­taa arvon mää­rit­tä­mis­tä aiemmin tyhjälle muut­tu­jal­le.

Tässä on syntaksin rakenne:

Datatype Name = Value;
java

Mitkä ovat Java-kielessä kolme muut­tu­ja­tyyp­piä?

Java-kielessä on kolme muut­tu­ja­tyyp­piä: pai­kal­li­set muuttujat, ins­tans­si­muut­tu­jat ja staat­ti­set muuttujat.

Pai­kal­li­set muuttujat

Java-kielessä pai­kal­li­set muuttujat mää­ri­tel­lään metodin, kon­struk­to­rin tai lohkon rungossa. Muuttujaa voidaan sitten käyttää vain kyseisen metodin sisällä. Näin se toimii käy­tän­nös­sä:

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

Tulostus näyttää seu­raa­val­ta:

The local variable is: 5
java

Ins­tans­si­muut­tu­jat

Ins­tans­si­muut­tu­jat luodaan luokan sisällä, mutta me­ne­tel­män, kon­struk­to­rin tai lohkon ul­ko­puo­lel­la. Ne syntyvät, kun luot objektin avain­sa­nal­la “new”. Toisin kuin pai­kal­li­set muuttujat, ins­tans­si­muut­tu­jil­la on va­kio­ar­vot. Nu­me­roi­den vakioarvo on 0 tai 0,0. Boolien vakioarvo on false. Ob­jek­ti­viit­taus­ten vakioarvo on null.

Seu­raa­vas­sa esi­mer­kis­sä voit nähdä, miten ins­tans­si­muut­tu­jia käytetään Java-kielessä. Koodissa luomme ryhmän ihmisiä, jotka haluavat osal­lis­tua syn­ty­mä­päi­vä­lah­jan han­kin­taan, ja luet­te­lem­me, mitä kukin henkilö on lah­joit­ta­nut.

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

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

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

Staat­ti­set muuttujat

Toisin kuin kaksi muuta Java-muut­tu­ja­tyyp­piä, staat­ti­sia muuttujia ei voi julistaa staat­ti­ses­ti. Ne ju­lis­te­taan metodin, kon­struk­to­rin tai lohkon ul­ko­puo­lel­la, joten ne kuuluvat luokkaan eivätkä ins­tans­siin. Niitä käyttävät kaikki luokan ins­tans­sit. Staat­ti­sil­le muut­tu­jil­le varataan muistia, kun luokka ladataan muistiin. Tässä on esimerkki koodina:

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

Tässä on tulos:

Participant: Peter
java

Kuinka luoda muuttujia, joilla on erilaisia tie­to­tyyp­pe­jä

Java-muut­tu­jien luominen on melko sa­man­lais­ta kaikissa tie­to­tyy­peis­sä. Esitämme muutamia esi­merk­ke­jä ylei­sim­mis­tä tie­to­tyy­peis­tä ja selitämme niiden erot.

boolinen

Boolen arvo voi olla vain to­tuusar­vo true tai false. Se mää­ri­tel­lään seu­raa­vas­ti:

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

Tässä on tulos:

true
java

int

int on ylei­sim­min käytetty tie­to­tyyp­pi ko­ko­nais­lu­vuil­le. Voit määrittää Java-muuttujan int-tyypille seu­raa­vas­ti:

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

Tässä on tulos:

10
java

kellua

float käytetään de­si­maa­li­lu­ku­jen kanssa. Näin voit mää­ri­tel­lä float-muuttujan Java-kielessä:

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

Tässä on tulos:

-17.03
java

hahmo

char sisältää yhden merkin, joka on merkitty yk­sit­täi­siin lai­naus­merk­kei­hin. Näin se näyttää koodissa:

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

Tässä on tulos:

S
java

Merk­ki­jo­no

Edellä tar­kas­tel­tu­jen pri­mi­tii­vis­ten tie­to­tyyp­pien lisäksi Java-muuttujat voivat sisältää myös ko­ko­nai­sia merk­ki­jo­no­ja. Merk­ki­jo­not on kir­joi­tet­ta­va kak­sois­lauseen­merk­kei­hin:

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

Tässä on tulos:

This is a string in Java.
java
Siirry pää­va­lik­koon