Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano sistemi operativi diversi. Ciò che rende un programma Java indipendente dal tipo di computer sul quale viene eseguito è la virtual machine, ovvero un interprete del linguaggio che si inserisce fra il programma e il sistema operativo e traduce le istruzioni Java in comandi comprensibili dal sistema operativo stesso. Java è un linguaggio ad oggetti: un oggetto (o classe) è definito dagli attributi (le variabili) e dai metodi (le funzioni che agiscono sui dati dell'oggetto). Se l'oggetto è una motocicletta, un attributo è l'acceleratore e un metodo è "accelera"; se l'oggetto è un triangolo, gli attributi sono i lati e un metodo è "calcola l'area". Per scrivere un programma Java, è sufficiente installare sul proprio computer un "SDK", ovvero un "Software Development Kit" Per compilare un programma Java si usa il comando javac <nomeclasse>.java: questo comando produce <nomeclasse>.class, che è il bytecode della classe, ovvero il formato comprensibile alla Java Virtual Machine. Per eseguire un programma Java si usa il comando java <nomeclasse>: questo comando fa partire la virtual machine che eseguirà il metodo main della classe <nomeclasse>.
Esercizi Java Esercizio N.1 // salvare con il nome della classe e l'estensione java: somma.java //javac somma.java per la compilazione //java somma per l'esecuzione class somma int x=15; int y=15; int s=x+y; System.out.println("Buon giorno ragazzi della IVB Oggi si inizia con Java...\n"); System.out.println (x + "+" + y + "=" + s) ; class somma2 static int somma(int a,int b) return a+b; int x=15; int y=15; System.out.println (x + "+" + y + "=" + somma(x,y)) ; Esercizio N.2 //java fattoriale 5 esegue il fattoriale di 5 class fattoriale static int fattoriale (int num) int p=1; for(int i=1;i<=num;i++) p= p * i; return p; // Inizio del programma. int x; x = Integer.valueOf(args[0]).intValue (); System.out.println (x + "! = " + fattoriale (x));
Esercizio N.3 public class fattoriale2 public static long fattoriale(int n ) if( n <= 1 ) // base case return 1; else return n * fattoriale( n - 1 ); // Simple test program public static void main( String [ ] args ) for( int i = 1; i <= 10; i++ ) System.out.println( fattoriale( i ) ); Esercizio N.4 /* Programma che determina i numeri primi e non primi tra 1 e 100 */ class primi static boolean primo (int num) if(num==1) return true; for(int j=2;j<num;j++) if(num%j==0) return false; return true; for(int i=1;i<=100;i++) if (primo (i)) System.out.println (i + " numero primo"); else System.out.println (i + " --------------- numero non primo"); //
Esercizio N. 5 class paridispari public static void main(string[]args) int n=integer.valueof(args[0]).intvalue(); if(pari(n)) System.out.println("il numero "+n+" e' pari"); else System.out.println("Il numero "+n+" e' dispari"); static boolean pari(int num) if(num%2==0) return true; return false; public class triangolo double l1, l2, l3; // I tre lati public double calcolaperimetro() return l1+l2+l3; si compila ma non si può eseguire (manca il main()) public class Prova // costruisco l'oggetto t di tipo Triangolo triangolo t = new Triangolo (); // assegno i valori ai lati t.l1 = 12.5; t.l2 = 8; t.l3 = 10; // uso una variabile per memorizzare il perimetro double per= t.calcolaperimetro(); // stampo il perimetro System.out.println (per);
public class Cerchio double raggio; final double pigreco=3.141519; public double Diametro() return raggio*2; public double Circonferenza() return 2*pigreco*raggio; public double Area() return pigreco*raggio*raggio; public class Prova2 // costruisco l'oggetto c istanziando la classe Cerchio Cerchio c = new Cerchio(); // assegno il valore al raggio double r=double.valueof(args[0]).doublevalue(); c.raggio=r; double d= c.diametro(); double p= (Math.round(c.Circonferenza()*100))/100; double a= c.area(); System.out.println ("Esercizio del 30.9.2011\n"); System.out.println ("raggio=\t\t"+r); System.out.println ("diametro=\t"+d); System.out.println ("circonferenza=\t"+p); System.out.println ("area=\t\t"+a);
public class Cerchio double raggio; final double pigreco=3.141519; public Cerchio() public Cerchio(double raggio) this.raggio=raggio; public double Diametro() return raggio*2; public double Circonferenza() return 2*pigreco*raggio; public double Area() return pigreco*raggio*raggio; public class Cilindro extends Cerchio double altezza; public Cilindro(double raggio,double altezza) super(raggio); this.altezza=altezza; public double Volume() return Area()*altezza; public class Prova3 double r=100; double h=10; Cerchio c = new Cerchio(r); Cilindro ci=new Cilindro(r,h); double d= c.diametro(); double p= (double)math.round(c.circonferenza()*100)/100; double a= (double)math.round(c.area()*100)/100; double v=(double)math.round(ci.volume()*100)/100; System.out.println ("Esercizio del 30.9.2011\n"); System.out.println ("raggio=\t\t"+r); System.out.println ("diametro=\t\t"+d); System.out.println ("circonferenza=\t\t"+p); System.out.println ("area=\t\t"+a); System.out.println("\n\nvolume del cilindro: "+v);
public class Cono extends Cerchio public Cono(double raggio,double altezza) super(raggio); this.altezza=altezza; public double Volume() return (Area()*altezza)/3; public class Cono extends Cilindro public Cono (double raggio,double altezza) super(raggio,altezza); public double Volume() return super.volume()/3; //overridding public class Prova4 double r=100; double h=10; Cilindro ci=new Cilindro(r,h); double a=ci.area(); double v=ci.volume(); System.out.println("\nArea di base del cilindro: "+a); System.out.println("\nVolume del cilindro: "+v); Cono co=new Cono(r,h); a=co.area(); v=co.volume(); System.out.println("\nArea di base del cono: "+a); System.out.println("\nVolume del cono= "+v);
public class Stampamesi public static void main(string[] args) String[] mesi=new String[13]; //String[] mesi="","gen","feb"; mesi[1]="gen"; mesi[2]="febbraio"; for(int i=1;i<=2;i++) System.out.println("\nMese "+i+": "+mesi[i]); public class AreaRettangolo public static void main(string[] args) int base; // base del rettangolo int altezza; // altezza del rettangolo int area; // area del rettangolo base = 7; altezza = 9; area = base * altezza; System.out.println(); System.out.print("\n"); System.out.println("\nL'area del rettangolo di base " + base + " e di altezza " + altezza); System.out.println("vale " + area + "\n\n\n\n"); // fine metodo main // fine classe AreaRettangolo
public class AreaRettangolo public static void main(string[] args) int base; // base del rettangolo int altezza; // altezza del rettangolo int area; // area del rettangolo base = 7; altezza = 9; area = base * altezza; System.out.println(); System.out.print("\n"); System.out.println("\nL'area del rettangolo di base " + base + " e di altezza " + altezza); System.out.println("vale " + area + "\n\n\n\n"); // fine metodo main // fine classe AreaRettangolo public class Stringhe public static void main(string[] a) String messaggio; messaggio = "Roma, una bellissima capitale"; int lunghezzamessaggio = messaggio.length(); char primalettera = messaggio.charat(0); char ultimalettera = messaggio.charat(lunghezzamessaggio - 1); String prime4lettere = messaggio.substring(0,4); System.out.println("Messaggio: " + messaggio); System.out.println("Esso e' composto da " + lunghezzamessaggio + " caratteri"); System.out.println("Il primo carattere e': \'" + primalettera + "\', l'ultimo carattere e': \'" + ultimalettera + "\'"); System.out.println("La sottostringa dei primi 4 caratteri e': \"" + prime4lettere + "\""); System.out.println("Messaggio tutto in maiuscole: "); String messaggiomaiuscolo; messaggiomaiuscolo = messaggio.touppercase(); System.out.println(messaggioMaiuscolo); // fine metodo main() // fine classe Stringhe