/**
 * Luennolla 22 syyskuuta 2000 kirjoitettua esimerkkikoodia. 
 * Javan perusteita. 
 */
public class Hello // Javassa kaikki koodi on jossakin luokassa
{
    // Tama oli muutujien alustuksen testausta varten. 
    static int testi;

    /** 
     * Tassa on n.s. dokumentointikommentti. 
     */
    public static void main(String[] args)
    {
	// Muuttujia voi maaritella tassa tai myohemminkin metodi koodissa
	int koko = 34, j, k = 23, i;
	String s = "jokin teksti";
	int[] kokotaulu; // kokonaislukutaulukkomuuttuja, mutta joka ei 
	                 // viela viittaa mihinkaan
	String[][] sdim = new String[4][5]; // kaksiulotteinen taulukko

	// Esimerkki if-rakenteesta
	if ( koko > 30 ) {
	    System.out.println("Onpa iso");
	    System.out.println("Töttöröö");			
	}
	else 
	    System.out.println("Onpa pieni");

	// Esimerkki toistosta for-lauseella
	s = "jokin muu teksti";
	s = "Hello world" + k;
	for ( i = 0 ; i < 10 ; i++ ) {
	    System.out.println(s);
	}

	// luodaan kokonaislukutaulukko ja viitataan siihen sopivalla 
	// muuttujalla. 
	kokotaulu = new int[10]; 

	// Alustetaan taulukko ja kirjoitetaan ulos sen sisältö
	for ( i = 0 ; i < kokotaulu.length ; i++ ) {
	    kokotaulu[i] = i + 1;
	}		
	for ( i = 0 ; i < kokotaulu.length ; i++ ) {
	    System.out.println(kokotaulu[i]);
	}		

	// Esimerkki kaksiulotteisesta taulukosta ja sen läpikäymisestä. 
	// Tästä tulee hassua outputtia, eli koko kasa "nulleja"
	for ( i = 0 ; i < sdim.length ; i++ ) {
	    for ( j = 0 ; j < sdim[0].length ; j++ ) {
		System.out.println(sdim[i][j]);
	    }		
	}		

	// Toinen esimerkki kaksi-ulotteisesta taulukosta, eli 
	// kaikilla riveillä ei välttämättä ole yhtä monta saraketta 
	// koska kaksiulotteinen taulukko on oikeastaan taulukkojen 
	// taulukko. 
	// Homma tulostaa pelkkiä nollia. 
	int[][] itab;
	itab = new int[4][];
	itab[0] = new int[6];
	itab[1] = new int[10];
	itab[2] = new int[3];
	itab[3] = new int[15];
	for ( i = 0 ; i < itab.length ; i++ ) {
	    for ( j = 0 ; j < itab[i].length ; j++ ) {
		System.out.println(itab[i][j]);
	    }		
	}		

	// Oman luokan käyttö, muutaman olion luonti ja metodien 
	// kutsuminen. 
	Rectangle r1 = new Rectangle(10, 35);
	Rectangle r2 = new Rectangle();
	Rectangle r3 = new Rectangle();

	r1.setXLocation(15);
	r2.setXLocation(6);
	r3.setXLocation(24);
    }
}

