Miten saan class tiedoston toiseen classiin. Sillä tavalla kuin importit. Eli mun pitäis saaha jeah.classi oh.classiin "importtaukseen".
Jos tajusitte, nouvokaa xD
EDIT: Keksin paremman selityksen tähän.
Kuvitellaan se class tiedosto Ceen .h tiedostona. ja silleen niinku ceessä #include <munh.h> javalle
Javassa kaikki samassa paketissa olevat luokat näkevät toisensa. Olettaen, että et ole käyttänyt paketteja, pitäisi "oh" ja "jeah" näkyä suoraan toisilleen ja niitä voisi käyttää suoraan.
Luokalle voi määritellä tietyn paketin aloittamalla koodi seuraavalla tavallla.
package foo.bar; public class Oh {...
Muissa luokissa voidaan sitten tämä luokka importata
import foo.bar.Oh; tai kaikki paketin tiedostot import foo.bar.*;
Kannattaa muistaa, että java pakottaa ohjelmoijan sijoittamaan koodit ja classit pakettien mukaiseen hakemistorakenteeseen. Eli käännöksen aikana Oh.java pitää löytyä classpath:in jostain alihakemistosta "foo/bar/Oh.java" ja samoin ajon aikana class vastaavasta alihakemistosta.
Nyt ku pääsin kokeilee taas javaa, nii toi ei auttan... Se oh. class alkaa näin
private class munclass extends Thread
1) Kannattaa nimetä luokat isolla alkukirjaimella.
2) Luokat järjestellään erilaisiin alihakemistoihin, yhteen hakemistoon aina läheisesti toisiinsä liittyvät luokat. Tällainen hakemisto on nimeltään package, suomeksi paketti.
3) Käytetään luokissa package-määritystä kertomaan missä hakemistossa luokan pitäisi olla.
4) Kun luokat on käännetty esim johonkin classes-hakemistoon ja sinne on syntynyt se sama hakemistorakenne niin annetaan ohjelman käynnistyksessä javalle parametri -cp classes.
Mulla on muclass2 (mihin importataan) funktioita joita munclass käyttää. Se pitää saada importattua ilman kikkailua silloin kun ohjelma käynnistetään.
Jos sulla on ne luokat samassa folderissa niin sun ei tarvii importata mitään. Koska luokat "näkevät" toisensa.
maka78 kirjoitti:
Jos sulla on ne luokat samassa folderissa niin sun ei tarvii importata mitään. Koska luokat "näkevät" toisensa.
Eipä näy näkevän...
Hmm.. nyt tietysti kiinnostaa että Oletko nimennyt tiedostot oikein eli onko Luokan nimi sama kuin tiedoston nimi? esim.
public class MyClass{ //jotain toiminnallisuutta yms.... }
pitää olla MyClass.java ---> MyClass.class
p-p kirjoitti:
Mulla on muclass2 (mihin importataan) funktioita joita munclass käyttää. Se pitää saada importattua ilman kikkailua silloin kun ohjelma käynnistetään.
tiedäthän, että ennen kuin voit käyttää luokan metodeja sinun täytyy luoda luokasta olio/instanssi? (elleivät metodit sitten ole staattisia). Luokat löytävät toisensa jo pelkästään olemalla samassa kansiossa ilman paketointia, mikä ei kylläkään selkeyden vuoksi ole suotavaa..
Aihe on jo aika vanha, joten et voi enää vastata siihen.