class und main Methode

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Code:
 */      class Tierarztverwaltung
{ 
String Vorname;
String Nachname;
int alter;
int Gehalt;
}

class hund  
{
String Hundename;
String Hundevorname;
int Hundealter;
   
}
public class Hund {

    public static void main (String[]args){

// Hund anlegen
    

  hund a = new hund();
  a.Hundename ="Bello";
  a.Hundevorname = "Rico";
  a.Hundealter= 5;

  Tierarztverwaltung M = new Tierarztverwaltung();
  M.Vorname="Stephan";
  M.Nachname="Mia";
  M.alter=21;
  M.Gehalt=1500;
  
    System.out.println(M.Vorname);
 
    System.out.println(M.Nachname);
  }
}





Hallo, ich bin es nochmal!
Ich nimm mir diesen Thread wirklich zu Herzen und ich hoffe es ist keiner böse, wenn ich als Anfänger fragen stelle. Ich setze mich vorab mit den Problemen lange auseinander. Aber komme zu keiner Lösung.

Warum funktioniert der code nicht?
Ich verstehe nicht, wie ich klassen in zwei verschieden Files eintragen soll!

Die Main Methode und die class sections einzelnd. Doch meine Java Umgebung zeigt mir dann ein Fehler. Was stimmt also nicht?
 

Spin

Top Contributor
run:
Exception in thread "main" java.lang.NoClassDefFoundError: spin/hund (wrong name: spin/Hund)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at spin.Hund.main(Hund.java:33)
Java Result: 1


Das mache ich gerne.


Irgendwie kann er die Klasse nicht laden !
 

Loki

Aktives Mitglied
Bin mir nicht ganz sicher, ob du sowas meinst - ist ein biss. spät für mein Hirn. Aber ich würde das so lösen.
Im Prinzip 2 Klassen in zwei Dateien, eine Hund, eine Tierverwaltung Klasse.
Code:
Tierverwaltung.java
class Tierarztverwaltung
{
String Vorname;
String Nachname;
int alter;
int Gehalt;
}

Code:
Hund.java
class Hund
{
String Hundename;
String Hundevorname;
int Hundealter;


public static void main (String[]args){

// Hund anlegen
Hund a = new Hund();
a.Hundename ="Bello";
a.Hundevorname = "Rico";
a.Hundealter= 5;

Tierarztverwaltung M = new Tierarztverwaltung();
M.Vorname="Stephan";
M.Nachname="Mia";
M.alter=21;
M.Gehalt=1500;

System.out.println(M.Vorname);
System.out.println(M.Nachname);
}
}

Evtl liegt dein Fehler an der Gross- & Kleinschreibung. Generell sollten Klassenname immer mit einen Großbuchstaben beginnen. Dateiname ist dabei immer gleich der Klassenname+".java".
 

Spin

Top Contributor
Super, dankeschön. Jetzt, weiß ich wie ich es machen muss. für jede class-section eine eigene Datei anlegen und die main Methode auch in eine extra....


So gehts erstmal, aber vielleicht kennt noch jemand eine bessere Möglichkeit

Und meine Java-Umgebung kamm mit "hund" und"Hund" nicht klar. Es lag wohl doch an der Groß und Kleinschreibweise.

Danke
 
G

Gast

Gast
Java ist case-sensitive, also hund und Hund ist ein Unterschied.

Ich würde mich noch angewöhnen, den Code sauber zu formatieren (Einrückungen!!!). Das macht das lesen erheblich leichter.
 

Schwups

Mitglied
Spin hat gesagt.:
Super, dankeschön. Jetzt, weiß ich wie ich es machen muss. für jede class-section eine eigene Datei anlegen und die main Methode auch in eine extra....

Die "class-section" kannst du auch einfach "Klasse" nennen. Eine Datei kann problemlos mehrere Klassen besitzen, allerdings kann nur eine davon "public" sein, sprich von aussen ansprechbar. Die Datei muss dann so heißen wie die "public"-Klasse.

Du solltest ausserdem die Java Code-Konventionen einhalten, sprich Klassen beginnen immer mit einem Großbuchstaben, Variable mit einem Kleinbuchstaben:

Code:
Tierarztverwaltung m = new Tierarztverwaltung();
// nicht: M
// noch besser: benutze sprechende Namen: Tierarztverwaltung meineTierarztverwaltung = ...

Als nächstes:

Wenn du einem Feld keinen Zugriffsbezeichner mitgibst, ist das Feld automatisch package-private, sprich von jeder Klasse aus demselben Package erreichbar:

Code:
class Hund {
   String hundename; // nicht: Hundename
}

Das Feld "hundename" kann nun von jeder Klasse aus demselben Package direkt angesprochen werden. Klassen aus einem anderen Package können auf das Feld überhaupt nicht zugreifen. Der Standard ist allerdings, die Felder privat zu machen und nur über (öffentliche) Zugriffsmethoden zu verändern (dies sorgt für die Kapselung, eines der Grundprinzipien von OO):

Code:
class Hund {
   private String hundename; 

   void setHundename(String hundename) {
      this.hundename = hundename;
   }
}

In diesem Fall würde ein "public" vor dem Methodennamen keinen Sinn machen, da die Klasse Hund ohnehin nur aus demselben Package angesprochen werden kann.

Ich würde dir als Anfänger zu folgendem raten:

a) Mache alle deine Klassen public (sprich, schreibe in eine Datei genau eine Klasse).
b) Mache deine Felder privat und statte sie mit public "setter"-Methoden aus.
c) Schreibe deine main-Methode in eine separate Klasse, bspw. in eine Klasse namens "Starter":

Code:
public class Starter {
   public static void main(String[] args) {
      Hund meinHund = new Hund();
      meinHund.setHundename("Bello");
      meinHund.setHundevorname("Rico");
      meinHund.setHundealter(5);

      Tierarztverwaltung meineVerwaltung = new Tierarztverwaltung();
      // usw.
   }
}

So entfernst du aus der Klasse Hund den main-Teil und machst sie damit wiederverwendbar(er). Durch die public setter-Methoden steuerst du den Zugriff auf die Klasse und versiehst sie mit einer sauberen Schnittstelle.

Später kannst du dann fortgeschrittene Methoden verwenden, wie bspw. innere Klassen, aber für den Anfang sollten die beschriebenen Schritte dir zu sauberem Code verhelfen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
P Compiler-Fehler Could not load or find main class fehler Java Basics - Anfänger-Themen 15
P Compiler-Fehler could not find or load main class Java Basics - Anfänger-Themen 5
C class in main aufrufen (SWT Oberfläche) Java Basics - Anfänger-Themen 5
B OOP If und else in Main class einbinden Java Basics - Anfänger-Themen 9
E Could not find the main class! Java Basics - Anfänger-Themen 11
Prodriver22 Erste Schritte "Could not find Main Class" Problem Java Basics - Anfänger-Themen 17
K main-Exception in Array class Java Basics - Anfänger-Themen 5
J Compiler-Fehler Main-Class nicht gefunden? Java Basics - Anfänger-Themen 14
M Netbeans Listener - Anonymous, inner class, main class? Java Basics - Anfänger-Themen 4
B JAR Could not find main class Java Basics - Anfänger-Themen 13
Q Could not find main class: XXX.main. Programm will exit Java Basics - Anfänger-Themen 4
R Could not find the main class: Java Basics - Anfänger-Themen 12
A Findet Main class nicht Java Basics - Anfänger-Themen 12
C Eclipse JAR Export could not find main class Java Basics - Anfänger-Themen 13
S OOP "Could not find the main class" Java Basics - Anfänger-Themen 10
D Could not find main class Java Basics - Anfänger-Themen 3
E Netbeans, "class does not have a main method" Java Basics - Anfänger-Themen 8
C Could not find the main class. Java Basics - Anfänger-Themen 14
B Could not find the main class. program will exit Java Basics - Anfänger-Themen 11
T could not be find the main class Java Basics - Anfänger-Themen 3
M Main Class Not Found... Java Basics - Anfänger-Themen 11
P Hello World-Programm: XPSP3 mit Java 1.6.0_16: Could not find main class Hello.java Java Basics - Anfänger-Themen 11
S Wozu dient die Main Class? Java Basics - Anfänger-Themen 3
S Runnable jar "Could not find main class" Java Basics - Anfänger-Themen 8
O Problem mit jar "Could not find main class" Java Basics - Anfänger-Themen 9
M Could not find the main class. --> Und was mach ich jetzt Java Basics - Anfänger-Themen 6
B could not find the main class Java Basics - Anfänger-Themen 8
A Ausführbare jar-Datei erstellen (mit Eclipse) - main-class? Java Basics - Anfänger-Themen 4
M Wieso finden andere nicht die main .class Java Basics - Anfänger-Themen 20
H JAR findet die main-class nicht Java Basics - Anfänger-Themen 9
H fehler in der main class? Java Basics - Anfänger-Themen 4
P could not find the main class (Eclipse) Java Basics - Anfänger-Themen 2
J Java Anwendung starten ""faild to load main class Java Basics - Anfänger-Themen 15
H Could not find the main Class, program will exit Java Basics - Anfänger-Themen 2
T Failed to load Main-Class manifest attribute from U.U.jar Java Basics - Anfänger-Themen 3
J main-class in Manifest.mf erzeugen Java Basics - Anfänger-Themen 3
M main class? Java Basics - Anfänger-Themen 9
I Could not find the main class. Program will exit! Java Basics - Anfänger-Themen 3
T IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Java Basics - Anfänger-Themen 4
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
123456789sssssaaaa Java Wrapper Class Java Basics - Anfänger-Themen 13
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
G Could not initialize class “NoClassDefFoundError" Java Basics - Anfänger-Themen 2
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
H .jar unterschied .class Java Basics - Anfänger-Themen 3
J class version 52 und 56 Java Basics - Anfänger-Themen 6
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
N Fehlende .class Datei Java Basics - Anfänger-Themen 4
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
W Externe class in Eclipse importieren Java Basics - Anfänger-Themen 0
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
L jar, class, java und wieder zurück Java Basics - Anfänger-Themen 8
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
L Classpath Zwei Bibliotheken enthalten gleiche .class Datei Java Basics - Anfänger-Themen 6
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
wilmaed protected class Java Basics - Anfänger-Themen 0
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
N class in class Java Basics - Anfänger-Themen 13
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
M Scanner class Java Basics - Anfänger-Themen 6
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben