> skjønner ikke hva som er feil med denne klassen. trenger hjelp
Her deklarerer du to private variabler:
private String art;
private int prodar;
Og her prøver du å lese dem:
System.out.println ( "Denne stolen er produsert i"
+ rullestol1.prodar
+ " og er "
+ rullestol1.art );
System.out.println ( "Denne stolen er produsert i"
+ rullestol2.prodar
+ " og er "
+ rullestol2.art );
Prøv i stedet med:
public String art;
public int prodar;
Du bør også endre navn på rutinen fra:
public void Skrivtype ( String newValue )
Til:
public void art ( String newValue )
Da vil programmet både kunne kompileres og kjøres ;-)
--
Rune H. Johansen, 22253241, 95939001, http://rhj.info/
Generellt er det god praksis å ha variable i en klasse private.
> Du bør også endre navn på rutinen fra:
>
> public void Skrivtype ( String newValue )
>
> Til:
>
> public void art ( String newValue )
>
> Da vil programmet både kunne kompileres og kjøres ;-)
>
Det er vanlig i objektorientert programmering å bruke metoder for å
hente ut og sette private variable. Vanlig navngivning i Java er da
henholdsvis getVariabelnavn() og setVariabelnavn, altså i ditt tilefelle
for variabelen art (tilsvarende for prodar):
public void setArt(String newValue) {
art = newValue;
}
public String getArt() {
return art;
}
Da setter du verdier slik:
rullestol1.setArt("Elektrisk");
Og får utskriften slik:
System.out.println("........"+rullestol1.getArt());
Ikke gi opp ;)
> Generellt er det god praksis å ha variable i en klasse private.
Enig!
> Det er vanlig i objektorientert programmering å bruke metoder for å
> hente ut og sette private variable. ...
Enig!
> System.out.println("........"+rullestol1.getArt());
Eventuelt i stedet for å hente ut all informasjon fra utsiden:
System.out.println ( rullestol1.Informasjon() );
Eller:
rullestol1.SkrivInformasjon ( System.out );
På den måten kan kan slippe masse get-rutiner. Men om det er smart, avhenger av
så mye.
> Ikke gi opp ;)
Enig :-)
Og, dersom man ønsker å skrive ut all informasjonen i objektet, kan man
lage en metode "public String toString()" som muliggjør bruk av
objektreferanse direkte i println - "System.out.println(rullestol1);"
God praksis å ha med en slik metode i alle objekter og spesielt nyttig i
dataobjekter.
=)