20. marts 2005 - 15:11Der er
17 kommentarer og 1 løsning
Import af class filer
Jeg har en række spørgsmål omkring ovenstående:
1. Hvis jeg har lavet en Test.class fil, og nu gerne vil kunne starte den fra en Test2.java fil, hvad skal jeg så skrive i den fil? Jeg bruger Eclipse til det, og de 2 filer ligger i samme mappe, i den package, der hedder (default package) i Eclipse.
2. Hvis jeg starter mit Java program fra en konsol (Xterm, DOS osv.), og jeg i det program har en linje, der skal starte en ny, anden konsol, kan jeg så angive på en eller anden måde, at resten af programmet skal udføres i denne anden konsol, således at alt output havner i den, og ikke i den konsol, jeg startede mit Java program i?
3. I Visual Basic kan man definere sine egne brugerdefinered typer, som f.eks. således.
Type Test Dim Tekst as String End Type
Dim Hello as Test
Og så kan man få fat i Tekst, ved at skrive Hello.Tekst. Kan man gøre noget lignende i Java, men i en og samme Java fil, altså så jeg ikke behøver at importere classes?
F.eks. have en metode TestMethod() der hører med til et eller anden objekt, som også indeholder variable, og så altså oprette en ny instans af det objekt, andetsteds i den samme fil? Pyha, jeg håber, det giver mening...
1. Jeg får nu at vide, når jeg skriver Test(); (altså navnet på min class fil), i min Test2.java fil, at metoden er udefineret for typen Test. Uden () får jeg en syntax error...damn, jeg føler mig n00b lige nu :(
2. Godt nok, jeg dropper den ide så...så meget er jeg heller ikke inde i Xterm til at kunne det *g*
3. Så hvis jeg laver en class der hedder A f.eks., hvor der bl.a. er en metode der hedder Skriv, vil jeg så i en anden class B, kunne referere til den metode ved at skrive A.Skriv()? Det er nemlig det, der er min hensigt :)
1. Jamen, problemet er at det netop ikke er en metode, det er min class fil, som jeg vil starte, den har kun en main metode.
3. Hmm, jeg er ikke sikker på at man kan dette, men hvis jeg f.eks. ønsker at lave en Farve class. Den har 3 byte, Rød, Blå og Grøn, og så er det min mening, at man kan bruge den f.eks. ved at skrive Farve.Rød, hvorefter man selvfølgelig får værdien for rød tilbage, eller man kan skrive Farve, og så får man en Color tilbage. Men hvis Farve SKAL være en class (det ved jeg så ikke, om det skal være?), kan det så overhovedet lade sig gøre?
Og ja, jeg ved godt, der allerede findes en farve funktion i Java, dette er blot et tænkt eksempel ;)
1. Nej, åbenbart ikke, jeg får i hvert fald at vide, at den metode ikke er defineret, men det er jo i virkeligheden min class fil :(
public class Test { public static void main(String[] args) { Test2(); } }
public class Test2 { public static void main(String[] args) throws IOException { //Kode } }
3. Jow...men mit problem gik mere på selve Farve delen, da jeg så gerne ville have, at den så var af typen Color, men jeg er ikke sikker på om man kan det med en class, ej heller på om der er andre måder at gøre det ønskede på?
Ja, men som jeg skrev før, så er det her bare et tænkt eksempel for at belyse, hvor det er jeg vil hen :)
Men nej, de 3 farver skal være bytes, så de kan få en værdi mellem 0 og 255. Det har jeg sådan set ingen problemer med. Mit problem ligger i, at jeg gerne vil have Farve til at være af typen Color. F.eks. (igen, det er et tænkt eksempel, no bitching ;) kunne man ved at skrive Farve(255,0,0) sætte Rød til 255, og Blå og Grøn til 0, og samtidig ville Farve (som netop skal være af typen Color), blive sat til at være den røde farve, så du f.eks. kunne skrive Farve i stedet for Color.red. Problemet er så at jeg, hvis jeg skriver Farve, gerne vil have Color farven returneret, altså rød, men jeg vil også kunne referere til en af grundfarverne ved at skrive Farve.Blå f.eks.
Alt dette er jeg vant til at lave i Visual Basic, jeg har bare INGEN anelse om hvorvidt det kan lade sig gøre med Java :)
Hmm, nej, for jeg vil også gerne kunne gøre det med f.eks. en byte...det handler egentlig bare om at lave en variabel af en eller anden type (byte, string o.l.), som så har undertyper :)
Damn, hvorfor er det så svært at formulere ens tanker? *g*
Det er egentlig heller ikke selve typen, jeg mener, men variablen, der skal have undervariabler, men det kan man så ikke, hvis variablen er af en simpel type, hører jeg dig sige?
Hmm...det er lige gået op for mig, at det med class måske godt kan bruges i mit tilfælde, såfremt jeg bare skriver det lidt om, kan jeg netop godt bruge extends :) Jeg prøver lige at kigge på det i morgen, og virker det, skal jeg nok dele point ud :)
Yes! Det er endelig lykkedes mig at få det til at virke præcist, som jeg ville have det :D
I stedet for at lave typer har jeg bare, inspireret af dine forslag, og en af mine bøger, lavet mine typer som constructor classes, med metoder, som så er mine typer, som jeg kan kalde på. At der skal () med, er heldigvis en lille bagatel i forhold til det, jeg havde i tankerne :)
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.