Java Klassen

derendgegner

Mitglied
Hallo, ich habe ein kleines Programm geschrieben (in Netbeans), das ausschließlich eine

Java:
class A 
          { 
            public static void main(String[] args)
          {...}
          }
enthält und wenn ich "run File" klicke einwandfrei läuft.

Ich würde dieses Programm jedoch gerne in die main Methode einer anderen (leeren) Klasse, in einer anderen Datei, schieben. So habe ich es versucht:

Java:
public class B
                   { 
                     public static void main(String[] args) 
                        { 
                              class A
                                        {
                                          void A()  
                                              {...}
                                           }}
Also ich habe "public static void main(String[] args)" in "void A()" umbenannt, da man in einer Unterklasse keine Main Methode ausführen kann. Und dann die ganze Klasse A in die Main Methode der Klasse B geschoben. Die Klasse B ist, bis auf die Klasse A nach wie vor leer.
Wenn ich das Programm jetzt jedoch ausführen will, passiert genau nichts...
einzige Ausgabe:
Code:
BUILD SUCCESSFUL (total time: 1 second)
Was übersehe ich?

MfG
 
Zuletzt bearbeitet von einem Moderator:
Hi, also ich Programmiere in Netbeans

Habe im project "XYZ" unter "<default Packages>"
3 Dateien:
Java:
public class Bsp1_XYZ_2  {
     public static void main(String[] args) {}}

und
Java:
public class Person {

        String name;
        int alter;

        Person(String n, int a)
        {
     name = n;
     alter = a;
        }


        void ausgebename(){

        System.out.println(name);
    }
        void ausgabealter ()
                {System.out.println(alter);
}


}

und
Java:
import java.util.*;




class Lehrveranstaltung
        {

      String lv_name;
        int kennnummer;
        int institutsnummer;

       Lehrveranstaltung(String lvname, int kennnr, int instnr)

       {lv_name=lvname; kennnummer=kennnr; institutsnummer=instnr;}
     

        public static void main(String[] args) {

            Person Person1 = new Person("Hans",15);
            Person Person2 = new Person("Max",14);
            Person Person3 = new Person("Daniel",13);

            ArrayList<Person> Liste = new ArrayList<Person>();
            Liste.add(Person1);
            Liste.add(Person2);
            Liste.add(Person3);



            boolean neuPersonStart = true;
            int zaehler = 1;
          

            {
                while (neuPersonStart)


            {
                 Scanner sc = new Scanner(System.in);
              

                 System.out.println("Wenn Sie eine  Person hinzufuegen moechten, geben Sie ja, ansonsten eine beliebige Taste ein.");
                String antwort = sc.nextLine();


               if (antwort.equals("ja"))
               { neuPersonStart = true;
                    System.out.println("Wie heisst die Person die Sie hinzufuegen moechten?");
                 String name = sc.nextLine();
                 System.out.println("Wie alt ist "+name+"?");
                 int alter = sc.nextInt();
                 Person Neu = new Person (name,alter);
                 Liste.add(Neu);
               zaehler= zaehler+1;
               }

                 else {neuPersonStart=false;
                 
                }}}


            int ausgeber = 0;
            boolean ausgabeStart = true;
            
                     while (ausgabeStart)
                     {
                    if (ausgeber-zaehler<2) {
                   

                 Liste.get(ausgeber).ausgebename();
                 Liste.get(ausgeber).ausgabealter();
                 ausgeber=ausgeber+1;
                
                 }
 else {ausgabeStart=false;}

        }}
}

Wenn ich jetzt bei "Lehrveranstaltung" auf "Run File" klicke, funktioniert das Programm einwandfrei. Ich muss jedoch alle 3 Klassen in die erste Datei bekommen. Wenn ich die gesamte Klasse "Person" und "Lehrveranstaltung" in die Main Methode von Bsp2_XYZ_2 schiebe, passiert beim ausführen des Programmes nichts mehr. BUILD SUCCESSFUL (total time: 0 seconds)
Schon mal jetzt vielen Dank!

MfG
 
Macht ja auch Sinn. Die Main von "Bsp1_XYZ_2" ist ja auch leer.
Warum willst du überhaupt die Klassen in die Main-Methode setzen? Bzw. überhaupt in eine Datei.
 
Macht ja auch Sinn. Die Main von "Bsp1_XYZ_2" ist ja auch leer.
Warum willst du überhaupt die Klassen in die Main-Methode setzen? Bzw. überhaupt in eine Datei.

Nachdem ich die beiden Klassen hineinkopiert habe nicht mehr.
Ich muss eine Datei namens "Bsp1_XYZ_2" abgeben, die die Klassen Person und Lehrveranstaltung (mit den obigen Inhalten) enthält.

Vielen Dank für die Hilfe, vor allem um die Zeit.

MfG
 
Naja, die Main hat dann zwar 2 Klassen, aber die macht dennoch nichts... Die ruft ja nicht automatisch irgendeine andere main, irgendeiner Klasse auf...
Mach lieber sowas wie:
Java:
public class Bsp1_XYZ_2 {
  class Person {
  }
  Bsp1_XYZ_2() {
    //machirgendwas
  }
  public static void main(String[] args) {
    new Bsp1_XYZ_2();
  }
}

P.S. Sicher, dass du keine zip oder jar Datei abgeben musst? :bahnhof:
 
Was passiert, wenn du aus Lehrveranstaltung die main rausnimmst und in deine "Über"-Klasse sowas wie

Java:
public class XYZ {
..main () {

Person person1 = new Person(Param.....);
Lehrveranstaltung lv1 = new Lerhveranstaltung(Param ...);

person1.methode();
usw.


}
 
Habe es geschafft. Die Lösung war sehr simpel,
einfach die main Methide in der Lehrveranstaltung belassen und die Bsp2_XYZ_2 komplett leer lassen.

Java:
import java.util.*;
public class Bsp2_XYZ_2 {}
class Person {...}
class Lehrveranstaltung 
{
public static void main(String[] args) {...}
}

Vielen Dank euch beiden für die Hilfe.

MfG
 
Das ist Gewurschtel!
Im übrigen funktioniert deine Klasse nur, wenn du sie als Lehrveranstaltung.java speicherst. Die Zeile mit der Bsp-Klasse kannst du so auch weglassen.
 

Zurück
Oben