Sto affrontando il paragrafo sulla promozione automatica e il casting e l'esercizio appena svolto è il seguente:
Creare una classe che svolga delle operazioni aritmetiche.
In particolare la divisione tra due interi, la moltiplicazione tra un char e uno short, la somma tra un int e un float e la sottrazione tra i risultati ottenuti.
Tenere presente la promozione automatica nelle espressioni e utilizzare il casting propriamente.
la soluzione è questa:
codice:
public class Aritmetica
{
    public static void main(String args[])
    {
        int a = 5;
        int b = 3;
        double r1 = (double)(a/b); 
        System.out.println(r1);
        char c = 'a';
        short s = 5000;
        int r2 = c*s;
        System.out.println(r2);
        int i = 6;
        float f = 3.14F;
        float r3 = i+f;
        System.out.println(r3);
        double r4 = r1 - r2 - r3;
        System.out.println(r4);
    }
}
Io sinceramente credo di averci capito poco e infatti sono venuti fuori una serie di dubbi.
- perchè r1 va dichiarato come double e necessita del casting sempre a double?
- perchè la moltiplicazione tra un char e uno short può essere inserita in un int e senza usare casting?
- perchè la somma tra un int e un float può essere inserita in un float e senza usare il casting?
- perchè la differenza tra un double, un int e un float può essere inserita in un double senza usare il casting?