# .Java Import



## TheShow (15. Nov 2011)

Hallo, ich habe eine Frage zum Import einer .java datei in eine andere, .java datei. Da die Größere Datei (ich nenne sie ab jetzt java1.java) eine "Abstract Class" ist, funzt mein eigener .java (die werde ich java2.java nennen) Quelltext in der java2.java nicht. somit will ich die java2.java importieren und dann den String den ich in java2.java gesetzt habe in java1.java verwenden geht das?


----------



## Michael... (15. Nov 2011)

Importiert werden Klassen. Ansonsten verstehe ich nur Bahnhof. Was funktioniert nicht und was hast Du vor?
Kannst ja mal Code posten und erläutern was Du erwartest, was da passieren soll.


----------



## Fab1 (15. Nov 2011)

Dann bin ich wenigstens nicht der einzige der den Post durchgelesen hatte und nicht mehr weiter wusste :bahnhof:

Eventuell kannst du dir das ja mal durchgelesen Java ist auch eine Insel – 3.5 Import und Pakete oder das hier Importieren von Paketen und Klassen


----------



## TheShow (16. Nov 2011)

Ganz einfach. Ich will eine .java datei in eine andere .java datei importieren und es so machen das ich den string den ich in der datei die ich importieren will nutzen kann.


----------



## Crian (16. Nov 2011)

Klingt so als würdest du gern einen "static import" durchführen.


----------



## TheShow (16. Nov 2011)

TheShow hat gesagt.:


> Ganz einfach. Ich will eine .java datei in eine andere .java datei importieren und es so machen das ich den string den ich in der datei die ich importieren will nutzen kann.


Nagut ich verbessere mich: import von .class dateien in .class dateien und strings der importierten Datei nutzen


----------



## Gast2 (16. Nov 2011)

Ne, das klingt eher danach als willst du ein Objekt Klasse java1 in der Klasse java2 nutzen willst.
Und es klingt sehr stark danach, dass du dir nochmal die Grundlagen anschauen willst


----------



## TheShow (16. Nov 2011)

EikeB hat gesagt.:


> Ne, das klingt eher danach als willst du ein Objekt Klasse java1 in der Klasse java2 nutzen willst.
> Und es klingt sehr stark danach, dass du dir nochmal die Grundlagen anschauen willst


Ich bin halt ein Anfänger, OK?


----------



## Xeonkryptos (16. Nov 2011)

Gehen wir davon aus du hast Klasse1.class und Klasse2.class, die beide im selben Package (klassenPackage) liegen. Dann sieht der import so aus:

```
import klassenPackage.Klasse1;
```

Und nutzen kannst du dann den String so, wenn der String jetzt mal s heißt und static ist!!: 
	
	
	
	





```
Klasse1.s;
```


----------



## Gast2 (16. Nov 2011)

Aber es bringt doch nichts Fragen zu stellen wenn du nicht mal genau beschreiben kannst was du überhaupt willst. So rätseln hier doch nur alle rum.
Poste entweder Code wo man dein Problem erkennen kann oder ne Frage die eindeutig formuliert ist.


----------



## TheShow (16. Nov 2011)

EikeB hat gesagt.:


> Poste entweder Code wo man dein Problem erkennen kann oder ne Frage die eindeutig formuliert ist.


Also, der Code ist erstens 1731 Zeilen lang, und zweitens: ich will einen String der in einer Klasse ist in einer anderen Klasse benutzen.


----------



## Xeonkryptos (16. Nov 2011)

TheShow hat gesagt.:


> Also, der Code ist erstens 1731 Zeilen lang



Dann kürzt man den Code auf die wichtigen Stellen herunter oder schreibt einen  Pseudocode! Außerdem klingt das nicht danach, dass die 1731 Zeilen selbst geschrieben wurden, weil das zum Basiswissen der Programmierung gehört!


----------



## Gast2 (16. Nov 2011)

> Also, der Code ist erstens 1731 Zeilen lang


Hast du den Code geschrieben? Wenn ja, dann solltest du in der Lage sein dein Problem richtig zu schildern.



> und zweitens: ich will einen String der in einer Klasse ist in einer anderen Klasse benutzen


Was ist das denn für ein String?
Ist das ne statische Konstante? Dann reicht z.b. nen statischer import oder ein Import wie Xeonkryptos ihn gezeigt hat.
Ist das ne Instanzvariable? Dann brauchst du in der zweiten Klasse eine Referenz auf die erste.
Willst du den Rückgabewert einer Methode nutzen? Dann brauchst du auch eine Referenz auf der du die Methode aufrufen kannst.
Ist das ne Variable innerhalb einer Methode? Dann kommst du da nicht ran weil die nur innerhalb der Methode gültig ist.
Ist das ...


----------



## Michael... (16. Nov 2011)

Nach den bisherigen Aussagen würde ich das mal deuten als:
Du willst aus einem durch eine Klasse definierten Objekt auf eine Klassenvariable einer zweiten Klasse oder auf die Instanzvariable eines durch diese Klasse definierten Objekts zu greifen.

Allerdings hat meine Deutung erst einmal garnichts mit imports zu tun.


----------



## TheShow (16. Nov 2011)

Nagut. Also:
[Java=1] 
import java.awt.*;
import java.io.File;
import ttextt.java;
import java.io.PrintStream;
import net.minecraft.src.*;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.*;
import org.lwjgl.opengl.*;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.util.glu.GLU;
[/code]
meine class ist ttextt.java
[JAVA=1381]
private void preloadWorld(String s)
    {

        System.out.println(ttextt.ttexttch);



        if(loadingScreen != null)
        {
            loadingScreen.printText(s);
            loadingScreen.displayLoadingString("Terrain wird gebaut...");
        }
        char c = '\200';
        if(playerController.func_35643_e())
        {
            c = '@';
        }
        int i = 0;
        int j = (c * 2) / 16 + 1;
        j *= j;
        net.minecraft.src.IChunkProvider ichunkprovider = theWorld.getIChunkProvider();
        ChunkCoordinates chunkcoordinates = theWorld.getSpawnPoint();
        if(thePlayer != null)
        {
            chunkcoordinates.posX = (int)thePlayer.posX;
            chunkcoordinates.posZ = (int)thePlayer.posZ;
        }
        if(ichunkprovider instanceof ChunkProviderLoadOrGenerate)
        {
            ChunkProviderLoadOrGenerate chunkproviderloadorgenerate = (ChunkProviderLoadOrGenerate)ichunkprovider;
            chunkproviderloadorgenerate.setCurrentChunkOver(chunkcoordinates.posX >> 4, chunkcoordinates.posZ >> 4);
        }
        for(int k = -c; k <= c; k += 16)
        {
            for(int l = -c; l <= c; l += 16)
            {
                if(loadingScreen != null)
                {
                    loadingScreen.setLoadingProgress((i++ * 100) / j);
                }
                theWorld.getBlockId(chunkcoordinates.posX + k, 64, chunkcoordinates.posZ + l);
                if(playerController.func_35643_e())
                {
                    continue;
                }
                while(theWorld.updatingLighting()) ;
            }

        }

        if(!playerController.func_35643_e())
        {
            if(loadingScreen != null)
            {
                loadingScreen.displayLoadingString("Simuliert Welt");
            }
            char c1 = '\u07D0';
            theWorld.dropOldChunks();
        }
    }
[/code]
Das ist die Textstelle wo Mein text eingefügt ist. Ganz oben, direkt unter "private void preloadWorld(String s)" Mein String heist ttexttch und ist in der ttextt.java.


----------



## TheShow (16. Nov 2011)

Was ist das denn für ein String?
Ist das ne statische Konstante? Dann reicht z.b. nen statischer import oder ein Import wie Xeonkryptos ihn gezeigt hat.
Ist das ne Instanzvariable? Dann brauchst du in der zweiten Klasse eine Referenz auf die erste.
Willst du den Rückgabewert einer Methode nutzen? Dann brauchst du auch eine Referenz auf der du die Methode aufrufen kannst.
Ist das ne Variable innerhalb einer Methode? Dann kommst du da nicht ran weil die nur innerhalb der Methode gültig ist.
Ist das ...[/QUOTE]
Das ist der einfachste String den es gibt. Einfacher Text. also BSP:

```
String ttexttch = "HIER STEHT MEIN TEXT"
```


----------



## Michael... (16. Nov 2011)

wie ist 
	
	
	
	





```
ttexttch
```
 in der 
	
	
	
	





```
ttextt
```
 - Klasse (bitte sich mal die Java Coding Conventions zu Herzen nehmen) deklariert. Vermutlich nicht als Klassenvariable sondern als Instanzvariable. In diesem Fall benötigt Deine Klasse ein Objekt vom Typ ttextt über das sie auf den String zugreifen kann. Überlicherweise implementiert man dies über get-Methoden.


----------



## Gast2 (16. Nov 2011)

Du willst also einen Minecraft Mod schreiben und kennst dich nicht mit Java aus? Dann lern bitte erstmal die Grundlagen. Korrigiere mich bitte wenn ich mich irre.


```
ttextt.ttexttch
```
Da wird angenommen, dass ttexttch eine statische Variable der Klasse ttextt ist (Klassen schreibt man groß!). Ist die Variable denn statisch?


```
import ttextt.java;
```
Der Import ist falsch. Du gibst hier keine Dateinamen sondern Klassen an. Du importierst hier die Klasse java aus dem package ttextt.
Das bestätigt meine Vermutung von oben


----------



## Michael... (16. Nov 2011)

TheShow hat gesagt.:


> Das ist der einfachste String den es gibt. Einfacher Text. also BSP:
> 
> ```
> String ttexttch = "HIER STEHT MEIN TEXT"
> ```


Das hilft uns nicht weiter. Daran kann kein Programmier etwas hinsichtlich des möglichen Zugriffs erkennen.


----------



## TheShow (16. Nov 2011)

Ach schon gut. Ich befolge mal den Rat den mir ein paar andere Benutzer gegeben haben und mach noch ein paar Tutorials und so^^


----------

