// Jeg har endret litt p? programmene vi skrev i timen // s? det blir litt tydeligere i etterkant hva det var vi drev med class Hovedprogram { public static void main(String[] args){ // Vise bruk av static metoder (ogs? kalt klassemetoder) Klasse1.skrivUtTeller(); // Oppretter Klasse1-objekter (ogs? kalt instanser av type Klasse1) Klasse1 objekt1 = new Klasse1("Sivert"); Klasse1 obj2 = new Klasse1(); // Viser hvordan en referanse ser ut, egentlig bare en minneadresse Klasse1 objekt3 = new Klasse1(); System.out.println("objekt3 sin adresse: " + objekt3); // Viser at den statiske teller-variabelen i Klasse1 har endret seg // og at den kan aksesseres b?de statisk (gjennom en statisk metode i Klasse1) // og via alle Klasse1-objekter Klasse1.skrivUtTeller(); objekt1.lesTeller(); // Eksempler p? hvorfor vi spesifiserer public og private //System.out.println(objekt1.navn); // Dette g?r ikke fordi objekt1.navn er private System.out.println("objekt1 etternavn: " + objekt1.etternavn); objekt1.etternavn = "Madsen"; System.out.println("objekt1 etternavn: " + objekt1.etternavn); // Alt dette g?r fordi objekt1.etternavn er public. // Det ser lettvint og beleilig ut, men det er ikke bra fordi det bryter // med innkapslingsprinsippet // Viser at metoder som ikke er statiske m? kalles p? et // eksisterende objekt (en instans av et objekt) // nonStaticWhatever(); // Dette g?r ikke uten et objekt av typen Hovedprogram staticWhatever(); } public static void staticWhatever(){ System.out.println("StaticWhatever kjoerer"); } public void nonStaticWhatever(){ System.out.println("nonStaticWhatever kjoerer"); } }