[Java] Wie Dateien includen?

dabu

Well-known member
ID: 11566
L
20 April 2006
7.229
407
Ich versuche gerade etwas Java zu lernen, allerdings habe ich gleich am Anfang ein großes Problem. Ich habe zwei Klassen in zwei Dateien:

Code:
public class MainKlasse {
  public static void main (String[] args) {
    System.out.println("inhalt 1...");
  }
}

Code:
public class RdmKlasse {
  public static void main (String[] args) {
    System.out.println("inhalt 2...");
  }
}


Jetzt will ich in der ersten Datei die RdmKlasse verwenden. Zum Aufruf muss ich doch das verwenden:
Code:
    RdmKlasse obj = new RdmKlasse();
    obj.method();

Aber wie erkläre ich der ersten Datei, dass die Infos in einer anderen Datei stehen? Oder gibt es sogar eine ganz andere Möglichkeit?

Ich habe schon im Internet nach einer Lösung gesucht, aber irgendwie nichts gefunden :-? .
 
Strichpunkt nicht vergessen

edit: wenn die beiden Klassen im selben Package sind brauchst du weder ein import noch irgend etwas anderes, dann musst du aber acht geben dass nicht beide methoden main heißen
 
Strichpunkt nicht vergessen

edit: wenn die beiden Klassen im selben Package sind brauchst du weder ein import noch irgend etwas anderes, dann musst du aber acht geben dass nicht beide methoden main heißen

neija wenn man auf Methoden anderer Klassen zugreift, welchen Sinn sollte es da haben auf die Main-Methode zuzugreifen? außer das es vllt sagar gar nicht geht (nicht ausprobiert)
 
Ich glaube, Tam ging es nur um die Benennung. Aber dabei spielt es ja keine Rolle, ob zwei main-Methoden da sind, weil sie in unterschiedlichen Klassen liegen. Beim Programmaufruf mit "java Klasse" wird Klasse.main als Einstiegspunkt gewählt, wenn du ein executable jar draus machst, musst du den Einstiegspunkt angeben.
 
Nochmal eine dumme Frage von mir :oops:. Hat zwar nichts mehr mit Dateien includen zu tun, aber da es immer noch um Java geht, nutze ich den Thread hier nochmal.

Zu meinem Prob: Ich erstelle ein Array mit Hundenamen. Doch wenn ich das Programm ausführe, dann gibt es ein Problem bei der Stelle, die ich fett markiert habe. Ich will an der Stelle einen neuen Hund "anlegen". Das Objekt soll den Namen aus dem Array haben, aber irgendwie funktioniert das nicht, wie ich mir das gedacht habe. Wie macht man das denn in Java?
Code:
public class Programm
{

  public static void main(String args[])
  {

     String[] hunde = {"Bello", "Aladin", "Marco", "Ecco", "Gaddy", "Lesso", "Nicki"}; 

     for(int zahl=0; zahl<7; zahl++)
     {
         Dog [B]hunde[zahl][/B] = new Dog(hunde[zahl]);
     }  

  }

}
 
in Java sind Arrays fest typisiert, d.h. du kannst nur genau einen Datentyp darin speichern, da du vorher schon festgelegt hast, das dort nur Strings reingehören kannst du an der stelle keinen komplexen Datentyp (Objekt der Klasse Dog) speichern.
Außerdem ist es auch nicht möglich in Java einfach ein weiteres Element an das Ende zu schreiben, da die Anzahl der Elemente beim erstellen festgelegt wird (in deinem Beispiel 7)

Abhilfe sollte dir die Klasse ArrayList bringen, die beide "Probleme" behebt (es sind ja eigentlich keine Probleme, sondern falsche Anwendung).
 
Abhilfe sollte dir die Klasse ArrayList bringen, die beide "Probleme" behebt (es sind ja eigentlich keine Probleme, sondern falsche Anwendung).

jepp eine ArrayList ist scho was feines nur in dem Zusammenhang auch bescheiden. Du musst immer das zurückgegebene irgendwie hincasten und da kannst du wenn du 1 Element vergisst (zu löschen oder ähnliches) schöne Probleme bekommen.

Warum nicht einfach ein 2 Array wenn du das 1 nicht mehr brauchst räumts der Abfalleimer der JVM scho auf.
 
da er aber das Array auch erweitern will, hat er immernoch das 1. Problem
Aber das casten finde ich gar net so nervig, gehört eben dazu wenn ich verschiedene Sachen speicher
 
Ich mag mich irren, aber das Casten kann man doch auch seit Java 5.0 (oder 1.5 - wie auch immer) umgehen, indem man die Arraylist gleich auf einen speziellen Typen hin anlegt:
Code:
ArrayList<MyOwnType> myList = new ArrayList();
Oder ging das nur mit Vector? :think:

[edit]

Upps, nicht sorgsam genug gelesen. Ging ja um ein etwas anders gelagertes Problem.