/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problem med definition af klasser
Fra : Ryan Kristensen


Dato : 15-12-04 19:20

Hej.

Jeg forsøger at lære java og har brugt bogen "Objektorienteret
programmering i java" af Jacob Nordfalk.
Jeg har dog et problem med et kapitel (kap. 4 - kan findes online <url:
http://javabog.dk/OOP/kapitel4.html>) der omhandler definition af klasser.
Eksemplet i bogen er:
public class Boks
{
double længde;
double bredde;
double højde;

double volumen()
{
double vol;
vol = længde*bredde*højde;
return vol;
}
}

Og så skulle man kunne bruge klassen vha.:
public class BenytBoks
{
public static void main(String[] arg)
{
double rumfang;

Boks boksobjekt;
boksobjekt = new Boks();
boksobjekt.længde= 12.3;
boksobjekt.bredde= 2.22;
boksobjekt.højde = 6.18;
rumfang = boksobjekt.volumen();
System.out.println("Boksens volume: "+ rumfang);
}
}

Hvad jeg så ikke helt forstår er, hvordan skal de to funktioner hænge
sammen?
Skal det gemmes i hver sin fil (Boks.java og BenytBoks.java) eller hvad?
Jeg bruger NetBeans IDE3.6, som kommer med fejlmeldingen i filen
BenytBoks.java ved "Boks boksobjekt;"
cannot resolve symbol
symbol : class Boks
location : class BenytBoks

Er der nogen der kan uddybe, hvordan man får det til at virke?

--
Ryan Kristensen

 
 
Peter Kjellerup Rasm~ (15-12-2004)
Kommentar
Fra : Peter Kjellerup Rasm~


Dato : 15-12-04 20:02

Ryan Kristensen wrote:
> Hej.
>
> Jeg forsøger at lære java og har brugt bogen "Objektorienteret
> programmering i java" af Jacob Nordfalk.
> Jeg har dog et problem med et kapitel (kap. 4 - kan findes online <url:
> http://javabog.dk/OOP/kapitel4.html>) der omhandler definition af klasser.
> Eksemplet i bogen er:
> public class Boks
> {
> double længde;
> double bredde;
> double højde;
>
> double volumen()
> {
> double vol;
> vol = længde*bredde*højde;
> return vol;
> }
> }
>
> Og så skulle man kunne bruge klassen vha.:
> public class BenytBoks
> {
> public static void main(String[] arg)
> {
> double rumfang;
>
> Boks boksobjekt;
> boksobjekt = new Boks();
> boksobjekt.længde= 12.3;
> boksobjekt.bredde= 2.22;
> boksobjekt.højde = 6.18;
> rumfang = boksobjekt.volumen();
> System.out.println("Boksens volume: "+ rumfang);
> }
> }
>
> Hvad jeg så ikke helt forstår er, hvordan skal de to funktioner hænge
> sammen?
> Skal det gemmes i hver sin fil (Boks.java og BenytBoks.java) eller hvad?
Ja det burde virke. Du kan alternativt også flytte main metoden ind i
boks klassen.
Jeg bruger ikke selv netbeans men du burde kunne kompilere dem ved dit
eget forslag. Alternativt så prøv at kompilere dem med javac fra
kommandolinien. Så kan du køre det med java Boks hvis du putter main ind
i boks eller java BenytBoks hvis du bibeholder din struktur ovenover.

> Jeg bruger NetBeans IDE3.6, som kommer med fejlmeldingen i filen
> BenytBoks.java ved "Boks boksobjekt;"
> cannot resolve symbol
> symbol : class Boks
> location : class BenytBoks
Det compileren siger her er at den ikke kan finde Boks klassen i
BenytBoks klassen.

mvh
Peter


Bertel Lund Hansen (15-12-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 15-12-04 20:10

Ryan Kristensen skrev:

>Hvad jeg så ikke helt forstår er, hvordan skal de to funktioner hænge
>sammen?
>Skal det gemmes i hver sin fil (Boks.java og BenytBoks.java) eller hvad?

Ja, når en klasse erklæres public, skal den have sin egen fil, og
filen skal hedde det samme som klassen.

Alternativt kan du fjerne public fra Boks-klassen og kalde filen
BenytBoks.java. Så kan det stå i én fil. Ændringen har ingen
konsekvens for eksemplet, men betyder at kun klassen BenytBoks
har adgang til Boks-klassen.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Ryan Kristensen (15-12-2004)
Kommentar
Fra : Ryan Kristensen


Dato : 15-12-04 23:45

On Wed, 15 Dec 2004 20:09:40 +0100, Bertel Lund Hansen
<nospamius@lundhansen.dk> wrote:

> Alternativt kan du fjerne public fra Boks-klassen og kalde filen
> BenytBoks.java. Så kan det stå i én fil. Ændringen har ingen
> konsekvens for eksemplet, men betyder at kun klassen BenytBoks
> har adgang til Boks-klassen.

Jeg siger mange tak til jer begge, så ser det ud til, at jeg kan komme
videre med bogen.

--
Ryan Kristensen

Ryan Kristensen (22-12-2004)
Kommentar
Fra : Ryan Kristensen


Dato : 22-12-04 13:36

On Wed, 15 Dec 2004 19:19:37 +0100, Ryan Kristensen
<ryankristensen@hotmail.com> wrote:

> Hvad jeg så ikke helt forstår er, hvordan skal de to funktioner hænge
> sammen?
> Skal det gemmes i hver sin fil (Boks.java og BenytBoks.java) eller hvad?
> Jeg bruger NetBeans IDE3.6, [SNIP]

Så fandt jeg frem til det egentlige problem. Tilsyneladende ville NetBeans
ikke compile koden ordentligt - og den fjernede muligheden for at compile
via en dos-promt.
Efter at jeg afinstallerede NetBeans og geninstallerede J2SE kan jeg
compile på "normal" vis, og så virker det hele som det skal.
Så må jeg bruge notepad og undvære farvemarkeringen af koden.

--
Ryan Kristensen

Bertel Lund Hansen (22-12-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 22-12-04 14:37

Ryan Kristensen skrev:

>Så må jeg bruge notepad og undvære farvemarkeringen af koden.

Brug JCreator i stedet. Det er en smaddergod, lille editor der
kan det mest nødvendige og i hvert fald langt mere end Notepad
kan.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

RpR (23-12-2004)
Kommentar
Fra : RpR


Dato : 23-12-04 11:05

> Brug JCreator i stedet. Det er en smaddergod, lille editor der
> kan det mest nødvendige og i hvert fald langt mere end Notepad
> kan.

www.jcreator.com

Nogle uddannelsessteder har iøvrigt en aftale med Borland der kan sikre dig
JBuilder som ligeledes er et glimrende værktøj. Den laver godt nok noget
overflødigt kode, men det er primært i GUI klasserne, så det er ikke ret
kritisk.

--

- RpR
http://www.MopedGallery.dk
http://www.photoblog.dk



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste