Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tyyppimuunnos | Muuttujat ja tietotyypit
Johdatus Javaan

Tyyppimuunnos

Pyyhkäise näyttääksesi valikon

Java-kielessä jokaisella arvolla on tietty tyyppi, ja joskus arvo täytyy muuntaa tyypistä toiseen. Tätä kutsutaan tyyppimuunnokseksi.

Tyyppimuunnoksia on kahta tyyppiä:

  • Epäsuora muunnos;
  • Suora muunnos.

Epäsuora muunnos

Epäsuora muunnos tapahtuu, kun Java automaattisesti muuntaa pienemmän tyypin suuremmaksi tyypiksi. Tämä on turvallista, koska tietoa ei häviä:

int lattePrice = 5;
double priceDecimal = lattePrice; // becomes 5.0

Tämä toimii, koska suurempi tyyppi kuten double voi helposti sisältää kaiken, mitä pienempi tyyppi kuten int voi.

Suora muunnos

Suora muunnos tapahtuu, kun suurempi tyyppi muunnetaan manuaalisesti pienemmäksi tyypiksi. Tämä on tarpeen, koska tietoa voi kadota muunnoksen aikana:

double lattePrice = 4.99;
int roundedPrice = (int) lattePrice; // becomes 4

Java poistaa desimaaliosan ja tallentaa vain arvon 4. Toisin kuin epäsuorassa muunnoksessa, tämä täytyy kirjoittaa käsin muodossa (type).

Helppo muistisääntö:

  • pieni → suuri = automaattinen;
  • suuri → pieni = manuaalinen.

Esimerkki

Main.java

Main.java

1234567891011121314151617
package com.example; public class Main { public static void main(String[] args) { int lattePrice = 5; // implicit casting double priceDecimal = lattePrice; System.out.println(priceDecimal); // 5.0 // explicit casting double realPrice = 4.99; int roundedPrice = (int) realPrice; System.out.println(roundedPrice); // 4 } }

Esimerkissä int muunnetaan ensin epäsuorasti double-tyyppiin — Java tekee tämän automaattisesti ja tulokseksi saadaan 5.0. Tämän jälkeen muunnetaan double eksplisiittisesti int-tyyppiin käyttämällä (int), jolloin desimaaliosa poistuu ja tulostetaan 4.

question mark

Mitä tapahtuu epäsuorassa tyyppimuunnoksessa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 10

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 10
some-alt