Gå til innhold

bruke klasser og funksjoner i andre filer


Anbefalte innlegg

Videoannonse
Annonse
Gjest Sletet+adslkfjv

i andre klasser mener du vel?

 

du kan jo prøve med klassenavn og funksjonen du skal ha tak i.

 

f.eks hvis du har en klasse doStuff med en funksjon regnutdette.

 

så henter du regnutdette med

doStuff.regnutdette();

 

bruker du foresten eclipse?

Lenke til kommentar
i andre klasser mener du vel?

 

du kan jo prøve med klassenavn og funksjonen du skal ha tak i.

 

f.eks hvis du har en klasse doStuff med en funksjon regnutdette.

 

så henter du regnutdette med

doStuff.regnutdette();

 

bruker du foresten eclipse?

bruker jBuilder 2005 Foundation.

 

Holder på med et program hvor jeg har tenkt til å skille alt i to filer; den ene filen skal ta seg av GUI (inkludert menyer og slikt) mens den andre filen tar seg av alt som skjer i bakgrunnen.

 

Hvis jeg feks har oppe en side med noen tekstfelt og trykker på "Lagre" i menyen er det en metode i den andre filen som tar seg av oppdatering av databasen...

Lenke til kommentar

Bare å lage et nytt objekt av den andre klasse:

Klasse1 a = new Klasse1() ;

 

også kalle metodene i klasse1

a.metode() ;

 

Hvis du skal ha en metode som skal lagre informasjonen fra et tekstfelt kan du kanskje gjøre noe slikt:

a.lagre(tekstfelt.getText()) ;

Lenke til kommentar

Vanligvis har man en klasse per fil, hvor "filnavn" = "klasse-navn".java. Jav har heller ingen funksjoner, bare klasse-metoder. Dvs., at man aksesserer alle metoden gjennom en instans av klassen, eller direkte med klassen selv (hvis metoden er definert som static).

 

Så, hvis filene ligger i samme pakke, og samme dir, samt at begge er kompilert, saa instansierer du enkelt og greit (som logindude sier) et objekt av den ene klassen i den andre klassen, og du har tilgang til alle public, protected og default (ingen synlighets deklarasjon) metoder.

Lenke til kommentar

Må vel også sette public rettighet på metodene du skal bruke, men det har du sikkert gjort.

PS: Mulig logindude bare formulerte seg litt feil, men du kan (som regel) ikke kalle metoden direkte fra klassen. Du må først opprette et objekt av klassen, og deretter kalle metoden fra objektet, som TeddyErt sa

Lenke til kommentar

anbefaler å lage ei java fil pr klasse du skal lage, blir _mye_ mer oversiktlig på den måten.

 

Når du skal kalle metoder har du 2 muligheter, statisk og objektsmetode. Ved kall på en statisk metode (også kalt klassemetode) skriver du "Klassenavn.metodenavn()" og ved kall på en objektsmetode skriver du "Objektnavn.metodenavn()".

 

Ved bruk av statisk metode må den være definert public om den ligger i en annen klasse, og den må kalles på en statisk måte. Objektsmetoder må også være public om de skal kalles fra en annen klasse, og de må kalles på av et instansiert objetk (objektsnavn = new Klassenavn(); )

Lenke til kommentar

Litt tilleggsinformasjon:

Java foelger dessuten en pakkestruktur for aa finne ut hvor filene ligger. Pakkestrukturen er hierarkisk bygd opp, tilnaermet identisk med filstrukturen hvor java-filene ligger (inner-class er et unntak).

 

Hvis du f.eks. har

classpath=%classpath%;/java

Saa vil /java/minpackage/Test.java se slik ut:

package minpackage;

public class Test {
// innhold
}

For aa aksessere denne fra /java/TestMain.java:

import minpackage.Test // Viktig!

public class TestMain {
   public static void main(String[] args) {
         Test test = new Test();
   }
}

/java/minpackage/endaenpackage/HeiaKlasse.java ser da slik ut:

 

package minpackage.endaenpackage;

public class HeiaKlasse {
// innhold
}

osv.

 

Klasser som tilhoerer samme package trenger ingen import for aa aksessere hverandre.

 

Dessuten, hvis du har:

classpath=%classpath%;/java;/ekstern/java

Saa vil /java/minpackage/EnKlasse.java og /ekstern/java/minpackage/EndaEnKlasse.java tilhoere samme package hvis de begge har package minpackage deklarert i begynnelsen av filen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...