// 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"); } }