Java-ohjelmassa kaikki käsiteltävä tieto kuuluu aina johonkin luokkaan, joka on joko jokin edellä olleista perustietotyypeistä tai jokin oma itse määritelty luokka. Muuttujan tyyppi määrää, minkälaista tietoa muuttujaan voidaan tallettaa.
Esimerkki
...
int n;
float x;
n = 3;
x = 3.14F; // java 1.2:n sopimus: Jos desimaaliluvun jälkeen ei ole tarkempaa tyyppimerkintää, oletetaan double
...
Muuttuja määrittelyn yhteydessä muuttujalle voidaan antaa myös arvo
Esimerkki.
...
int n = 3;
float x = 3.14F;
...
Tietyn luokan esikuvana on aina jokin reaalimaailman oliojoukko, esimerkiksi int-perustyypin esikuvana ovat matemaattiset kokonaisluvut.
Tyypin alkiot talletetaan tietokoneen muistiin jollakin
tietyllä tavalla bitteinä. Tästä seuraa yleensä rajoituksia, joiden seurauksena
Javan luokka ei täysin vastaa esikuvaansa. Esimerkiksii int-perustyypin arvoalue
on rajoitettu. Suurin mahdollinen kokonaisluku on 232-1, minkä
jälkeen seuraavassa luvussa kaikki bitit ovat nollia. Tapahtuu niin sanottu
ylivuoto (int overflow). (Tämä tarkoittaa siis sitä, että luku joka
esitetään esimerkiksi 3 bitillä, voi olla 000, 001, 010, 100, 101, 110 ja 111.
Kun nyt lukuun 111 lisätään 1 saadaan luku 1000. Mutta koska vain kolme bittiä
oli käytössä luvusta tulee 000. Tämä taas laskutoimituksen kannalta on varsin
paljon vialla!).
Luokkaan liittyy joukko operaatioita eli metodeja, joiden
avulla luokan tietoa voidaan käsitellä. Esimerkiksi kokonaislukuja voidaan
laskea yhteen. Eri luokkiin kuuluvaa tietoa ei saa käsitellä yhdessä
(esimerkiksi samassa sijoituslauseessa) muuten kuin erikseen mainittavissa
tapauksissa. Java -tulkki suorittaa ns. tyypintarkistuksia ja mikäli luokat
eivät ole ns. sijoitusyhteensopivia, syntyy ajoaikainen tai käännösaikainen
virhe. Tällainen olisi esimerkiksi kokonaislukutyypin ja merkkityypin laskeminen
yhteen (5+"p"). Moniin luokkiin liittyy joukko erilaisia tapoja, joiden avulla
voidaan esittää tyyppiin kuuluvaa tietoa. Esimerkiksi 5 on kokonaislukutyyppi 5,
liukulukutyyppi 5.0, merkkijonotyyppi "5" ja merkkityyppi '5'.