main metoden

Post on 07-Jan-2016

48 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

main metoden. public static void main(String[] args){ } Inni denne metoden skjer alt! Det kan bare finnes en main metode per program. Den kan ligge i hvilkensomhelst klasse. Men for å kjøre programmet må man kjøre den filen main metoden ligger i. eksempel:. - PowerPoint PPT Presentation

TRANSCRIPT

main metoden

public static void main(String[] args){}

Inni denne metoden skjer alt! Det kan bare finnes en main metode per

program. Den kan ligge i hvilkensomhelst klasse. Men for å kjøre programmet må man

kjøre den filen main metoden ligger i.

eksempel:

public class Person{private String navn;public Person(String nyttNavn){

navn = nyttNavn;}public static void main(String[] args){

Person per = new Person(”Per”);}

}

public class Bil{private Person eier;private String bilmerke;

public Bil(Person nyEier,String nyttBilmerke){eier = nyEier;bilmerke = nyttBilmerke;}

public static void main(String[] args){Person personMedBil = new Person(”Per”);Bil raserbil = new

Bil(personMedBil,”volvo”);}}

Og så...

Først må filene lagres som henholdsvis: Person.java og Bil.java

Deretter må begge filene kompileres med komandoen javac Person.java/Bil.java

Og så for å kjøre programmet skriver man java filnavn. Man kan enten skrive java Bil eller java Person.

Spørsmål 1

Hvordan kjører man et program? Hva skjer i praksis når man kjører et

program? Kan det være mainmetoder i alle klasser? Har det noe å si hvor man legger

mainmetoden? Hvorfor har dere ikke brukt mainmetoden i

BlueJ?

Arv: public class Kjoretoy{

protected int antallHjul;protected String farge;

public void sprayLakker(String nyFarge){farge = nyFarge;

}}

public class Bil extends Kjoretoy{private String bilmerke;private int gir;

public Bil(String nyFarge){antallHjul = 4;gir = 0; //Setter bilen i frifarge = nyFarge;

}public void gir(int nyttGir){

gir = nyttGir;}

}

public class Sykkel extends Kjoretoy{private String sykkelType;private int fart;

public Sykkel(String nySykkelType){antallHjul = 2;fart = 0;farge = ”lilla”;sykkelType = nySykkelType;

}public void trakk(){

fart++;}

}

Teoretiske betraktninger om arv Man oppnår arv ved å skrive extends

Klassenavn mellom klassenavnet og krøllparantesen som starter klassen.eks: public class Sykkel extends Kjoretoy{

Klassen som det arves fra kalles super klassen.

Klassen som arver kalles subklassen. Alle public og protected variabler og metoder

arves. Private variabler og metoder arves ikke.

Eksempel mainmetode i Sykkelklassen

public static void main(String[] args){Sykkel minNyeSykkel = new Sykkel(”DBS”);minNyeSykkel.sprayLakker(”Blå”);minNyeSykkel.trakk();

} mainmetode i bilklassen

public static void main(String[] args){Bil gammelBil = new Bil(”grønn”);gammelBil.sprayLakker(”Gul”);gammelBil.gir(2);

}

AksessermetoderTilgjengelig for

Synlig?

public protected package private

samme klasse

klasse i samme pakke

Subklasse i annen pakke

Ikke subklasse i annen pakke

Spørsmål 2: Kan en metode arve en annen metode? Kan en klasse arve en annen klasse? Hvordan uttrykker du at en klasse skal

arve en annen? Hva kan en klasse arve fra en annen

klasse? Hvordan kan du bestemme hva en

klasse arver? Hva er hensikten med arv?

UML - Unified Modeling Language En måte å beskrive programmet ditt på. Kan både beskrive klassene dine ... og vise hvordan forskjellige instanser

virker sammen 10 - 20 forskjellige diagram 2 viktige for oss:

– Klassediagram– Sekvensdiagram

Klassediagram

Bil

eier : Personbilmerke : StringantallHjul : int

Bil(nyEier : Person, nyttBilmerke : String)hentAntallHjul() : intmain(String[] args)

Kjoretoy

antallHjul : intfarge : String

sprayLakker(nyFarge : String)

Bil

bilmerke : Stringgir : int

Bil(nyFarge : String)gir(nyttGir : int)

Sykkel

sykkelType : Stringfart : int

Sykkel(nySykkeltype : String)trakk()

SekvensdiagramminNyeSykkel :

Sykkel

Sykkel(String)

sprayLakker(String)

trakk( )

petter : Person denNyeSykkelenMin : Sykkel

denGamleBilen : Bil

Person(String)

Sykkel(String)sprayLakker(String)

Bil(String)

Spørsmål 3:

Hva er hensikten med UML? Hva beskriver et klassediagram? Hva beskriver et sekvensdiagram? Hvordan uttrykkes arv mellom klasser i

UML?

Javadoc

En måte å dokumentere koden på. API genereres automatisk. Begynner alltid med /** Har faste felt som:

– @autor ditt navn– @version feks v1.0– @param argumentnavn beskrivelse– @return beskrivelse

Generelt om dokumentasjon

Ingen vil skrive det. Alle ønsker å ha det. Alle sier at det ikke er nødvendig. Når du tar frem kode du selv har laget

for 1 år siden, så får ofte utsagnet: Alltid dokumenter kode en helt annen betydning.

Spørsmål 4:

Hvor skriver man dokumentasjon? Hva er hensikten med dokumentasjon? Når er dokumentasjon nødvendig? Hva har dokumentasjon til felles med

innkapslling? Hva er javadoc?

Generelle tips til øving 3 Ta det med ro! (Øvingen er ikke så omfattende

som det kan virke ved første øyekast.) Lag alle klassene uten innhold først. Fyll på

med metoder og variabler etter som du trenger det.

Alt som skjer skjer pga mainmetoden. Bruk System.out.println(); hvis du er usikker på

hva som skjer. Bruk kompeleringsfeil siden. Den kan spare

deg for mange timer foran pcen!

top related