Avatar billede havmaage Juniormester
08. juli 2002 - 21:45 Der er 14 kommentarer og
1 løsning

flere klasse i en javafil

Hej!
Jeg har en java fil

skriv.java
public class skriv {
       
        public void getnavn(String navn) {
            System.out.println(navn);
    }

public class adresse {
        public void getadr(String adr) {
                System.out.println(adr);
    }
}

}



Så har jeg en anden java fil.

public class skriv {
       
        public void getnavn(String navn) {
            System.out.println(navn);
    }

public class adresse {
        public void getadr(String adr) {
                System.out.println(adr);
    }
}

}

Mit spørgsmål er, om det er muligt at have flere klasser inde i en java fil. Jeg har hørt udtrykket innerclasses, men hvordan skal det laves-
Avatar billede olly Nybegynder
08. juli 2002 - 21:53 #1
Avatar billede stigc Nybegynder
08. juli 2002 - 21:55 #2
Læg dem i samme fil, så skal du bare se.
Altså lige efter hianden som du har skrevet det her.
Avatar billede olly Nybegynder
08. juli 2002 - 21:55 #3
Ups

public class skriv {
       
    public void getnavn(String navn)
    {
            System.out.println(navn);
    }

    class adresse
    {
        public void getadr(String adr)
        {
                System.out.println(adr);
        }
    }
}

Sådan med dine klasser
Avatar billede stigc Nybegynder
08. juli 2002 - 21:56 #4
"nested classes" er vist ikke det du søger..
Avatar billede olly Nybegynder
08. juli 2002 - 22:00 #5
Stigc....

Bare lige så du ved det:

"A static nested class is called just that: a static nested class. A nonstatic nested class is called an inner class."

;)
Avatar billede havmaage Juniormester
08. juli 2002 - 22:00 #6
ok, nu kompiler skriv.java fint, men når jeg prøver at kalde dem fra main

class simse {
   
       
        public static void main(String[] args) {

                skriv s = new skriv();
                s.getnavn("Simse Jespersen");
                adresse a = new adresse();
                a.getadr("Vestergade 6b 2 tv");
               
    }       

}

For jeg følgende fejl besked

location: class simse
                adresse a = new adresse();
                    ^
C:\Program Files\Xinox Software\JCreator Pro\MyProjects\simse.java:8: cannot resolve symbol
symbol  : class adresse 
location: class simse
                adresse a = new adresse();
                                    ^
2 errors

Process completed.



Er det måden jeg kalder adresse klassen på, det virker ok, hvis jeg bare kalder skriv klassen.
Avatar billede olly Nybegynder
08. juli 2002 - 22:06 #7
class simse {
   
       
        public static void main(String[] args) {

                skriv s = new skriv();
                s.getnavn("Simse Jespersen");
                skriv.adresse a = new skriv.adresse();
                a.getadr("Vestergade 6b 2 tv");
               
    }       

}

Skal se sådan ud når du kalder en innerclass da den er en del af skriv...
Avatar billede olly Nybegynder
08. juli 2002 - 22:07 #8
Se evt hvordan dine classfiler ser ud... Derved kan du sen den ligger inde i skriv
Avatar billede havmaage Juniormester
08. juli 2002 - 22:14 #9
sjovt nok, brokker den sig stadig :-)

class simse {
   
       
        public static void main(String[] args) {

                skriv s = new skriv();
                s.getnavn("Simse Jespersen\n");
                skriv.adresse a = new skriv.adresse();
                a.getadr("Vestergade 6b 2 tv\n");
               
    }       

}


C:\Program Files\Xinox Software\JCreator Pro\MyProjects\simse.java:8: not an enclosing class: skriv
                skriv.adresse a = new skriv.adresse();
                                      ^
1 error

Process completed.


Den kan på en eller anden måde ikke lide = new skriv.adresse();
Avatar billede olly Nybegynder
08. juli 2002 - 22:27 #10
Tester lige selv!
Avatar billede olly Nybegynder
08. juli 2002 - 22:49 #12
Ser ud til at været et normalt problem... Hmmm
Avatar billede olly Nybegynder
08. juli 2002 - 22:50 #13
Kan godt løse den, da jeg ikke kunne finde det på google... Men så er det ikke en innerclass, men en nested class, da adresse bliver static

class skriv
{
       
    public void getnavn(String navn)
    {
            System.out.println(navn);
    }

    static class adresse
    {
        public void getadr(String adr)
        {
                System.out.println(adr);
        }
    }
}
Avatar billede havmaage Juniormester
08. juli 2002 - 23:00 #14
Mange tak for hjælpen! Mener du at det er dårlig praktis at bruge innerclass. Som du nok har forstået er jeg totalt ny i java og leger lidt med dets forskellige mulighede.
Avatar billede olly Nybegynder
08. juli 2002 - 23:06 #15
Jeg vil sige det sådan at jeg nok ville vælge at finde en anden måde at gøre det på... Så det mener jeg vist :)

Troede bare det kunne lade sig gøre. Men har også kun 2 års erfaring... Man skal jo lære...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester