HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia, johon on koodattu ohjelman logiikka Ohjelman logiikka mainissa: Jos main-metodissa ei luoda ohjelma-luokkaa, kaikki ohjelman metodit ovat luokkametodeita eli staattisia metodeita. Kaikki ohjelman attribuutit ovat myös luokka-attribuutteja eli staattisia attribuutteja Jos main-metodissa luodaan ohjelma-luokka, ohjelman metodit voivat olla oliometodeita tai luokkametodeita Ohjelman attribuutit voivat olla olioattribuutteja tai luokkaattribuutteja
HAAGA-HELIA OHJELMOINTI 2(5) Esim., jossa main-metodissa on logiikka ja kaikki attribuutit ja metodit ovat luokkakohtaisia: public class TiliSovellus { private static Tili tili = null; private static Scanner input =null; public static void main(string[] args) { int valinta = -1; input = new Scanner(System.in); // Luodaan aluksi tili teetili(); do { System.out.println("\n1. Otto"); System.out.println("2. Pano"); System.out.println("3. Tilin tiedot"); System.out.println("4. Näytä korko"); System.out.println("5. Muuta korko"); System.out.println("0. Lopetus"); System.out.print("Anna valintasi (0-5): "); valinta = input.nextint(); switch (valinta) { case 1: teeotto(); case 2: teepano(); case 3: naytatili(); case 4: naytakorko(); case 5: muutakorko(); case 0: default: System.out.println("Virheellinen valinta"); while (valinta!= 0);
HAAGA-HELIA OHJELMOINTI 3(5) // Metodia käytetään tilin tekemiseen private static void teetili() { System.out.print("Anna tilinnumero: "); String numero = input.nextline(); System.out.print("Anna alkusaldo: "); double saldo = input.nextdouble(); // Käytetään Tili-luokan parametrillisella konstruktorilla tili = new Tili(numero, saldo); private static void teeotto() { System.out.print("Oton määrä: "); if (tili.otto(maara)) { System.out.println("Tilin saldo oton jälkeen " + else { System.out.println("Tilillä ei ole katetta"); private static void teepano() { System.out.print("Panon määrä: "); tili.pano(maara); System.out.println("Tilin saldo panon jälkeen " + private static void naytatili() { // Näytetään tiedot Tili-luokan get-metodeilla System.out.println("Tilinumero: " + tili.getnumero()); System.out.println("Saldo: " + private static void naytakorko() { System.out.println("Korkoprosentti on " + Tili.getKorkoprosentti()); private static void muutakorko() { System.out.print("Uusi korkoprosentti: "); double korkoprosentti = input.nextdouble(); // Tili, koska setkorkoprosentti on staattinen metodi Tili.setKorkoprosentti(korkoprosentti);
HAAGA-HELIA OHJELMOINTI 4(5) Esim., jossa main-metodissa luodaan ohjelmaolio ja kutsutaan sen metodia, johon on koodattu ohjelman logiikka: import java.util.scanner; public class TiliSovellus2 { private Tili tili ; private Scanner input ; public TiliSovellus2() { // oletusmuodostin input = new Scanner(System.in); tili =teetili(); public static void main(string [] args){ TiliSovellus2 ohj = new TiliSovellus2(); ohj.aja(); public void aja() { int valinta = -1; do { System.out.println("\n1. Otto"); System.out.println("2. Pano"); System.out.println("3. Tilin tiedot"); System.out.println("4. Näytä korko"); System.out.println("5. Muuta korko"); System.out.println("0. Lopetus"); System.out.print("Anna valintasi (0-5): "); valinta = input.nextint(); switch (valinta) { case 1: teeotto(); case 2: teepano(); case 3: naytatili(); case 4: naytakorko(); case 5: muutakorko(); case 0: default: while (valinta!= 0); System.out.println("Virheellinen valinta");
HAAGA-HELIA OHJELMOINTI 5(5) // Metodia käytetään tilin tekemiseen private Tili teetili() { System.out.print("Anna tilinnumero: "); String numero = input.nextline(); System.out.print("Anna alkusaldo: "); double saldo = input.nextdouble(); // luodaan Tili-olio käyttäen parametrillista muodostinta Tili tili = new Tili(numero, saldo); return tili; private void teeotto() { System.out.print("Oton määrä: "); if (tili.otto(maara)) { System.out.println("Tilin saldo oton jälkeen " + else { System.out.println("Tilillä ei ole katetta"); private void teepano() { System.out.print("Panon määrä: "); tili.pano(maara); System.out.println("Tilin saldo panon jälkeen " + private void naytatili() { // Näytetään tiedot Tili-luokan get-metodeilla System.out.println("Tilinumero: " + tili.getnumero()); System.out.println("Saldo: " + private void naytakorko() { System.out.println("Korkoprosentti on " + Tili.getKorkoprosentti());