Erste Schritte Pakete und Klassen

JMarkus

Mitglied
Hallo liebe Community,

ich habe vor einiger Zeit begonnen mich intensiv mit der Java-Programmierung zu befassen. Mittlerweile habe ich etliche Bücher durch und wollte endlich mein erstes richtiges Projekt beginnen (nicht nur Übungsaufgaben).

Jedoch stellen sich mir nun Praxis-Fragen, die in sämtlichen Büchern nicht behandelt wurden. Ich hoffe Ihr könnt mir hier weiterhelfen, da es mir wahrscheinlich einfach an Erfahrung fehlt.

1. Es gibt ja Namenskonventionen für Packages. Diese sind mir auch bekannt. Nur frage ich mich, welche Packages erstellt man "standardmäßig"? Klar hängt es von dem jeweiligen Programm ab aber es muss doch trotzdem eine Art "Standard" geben. Habe mir schon einige Programme aus dem "Codeschnippsel-Thread" angeschaut aber irgendwie macht es jeder anders... core, main, gui, ui, dao, data, ...

2. Wenn ich eine Anwendung mit grafischer Oberfläche erstellen möchte, was ist dann die Startklasse/Hauptklasse? Macht man das so:
Java:
public class Hauptfenster extends javax.swing.JFrame {
public static void main(String args[]) { ....
oder so:
Java:
public class Programm {
public static void main(String[] args) {
Hauptfenster.main(args); ....
Vielen Dank schon mal für eure Antworten.
 
Zuletzt bearbeitet:

strußi

Top Contributor
Frage 1:
aber irgendwie macht es jeder anders
abhängig vom Programmumfang bzw. Klassen die in einem Paket landen würden überlege ich mir auch, ob es einzelne module sein können, die ich nach belieben auswechseln können möchte.

Frage 2: persönlich bevorzuge ich die alternative "oder so" da ich noch weiter Programmteile laden kann z. B. DB-Connection.
 

Java20134

Bekanntes Mitglied
Zu ersten Frage. Da gibt es auch keine richtige regel. Es kommst wie du es schon gesagt hast, darauf an was du machst. Sinnvoll würde ich aber main oder core zum Beispiel finden, da man dort sofort sieht, wo die main-Methode zum Beispiel vorhanden ist oder was das ganze Programm grundlegend ausmacht.

Zu der zweiten Frage. Ich benutze persönlich die erste Methode. Da ich das ganze dann einfach nur doppelt gemobblet finde und wenn du dich dann in den späteren Jahren mal mit z.B. DB-Connection beschäftigst kannst du immer noch diese andere Methode angucken.
 

JMarkus

Mitglied
Zu 1.: Ich dachte halt, dass es einen Satz an Paketen gibt (z. B. die oben genannten) aus welchem man sich je nachdem, welche Komponenten ein Programm hat, die passenden heraussucht. Also wenn ich z. B. eine reine Konsolenanwendung habe, brauche ich natürlich kein package "gui". Wenn ich hingegen eine Webanwendung erstellen möchte, sollten z. B. packages "client", "server" oder so genutzt werden?! "core" bzw. "main" sind wohl immer sinnvoll.

Zu 2. Da gehen die Meinungen ja schon auseinander. Ich habe auch nur gelesen, dass es eben beide Möglichkeiten gibt aber nicht, welches die Vor-/Nachteile der einen oder anderen sind bzw. wann man welche Methode einsetzt. In der 2. Variante hätte ich ja in einer Anwendung mehrere main-Methoden. Ist das überhaupt "sauber"? Eine DB-Connection kann ich doch auch in der ersten Variante aufbauen. Wie sieht es aus, wenn ich Programmeinstellungen (Preferences-API) laden will. Eigent sich da eine der beiden Varianten besser für?
 
Zuletzt bearbeitet:

Tobse

Top Contributor
Zu 1.: Ich dachte halt, dass es einen Satz an Paketen gibt (z. B. die oben genannten) aus welchem man sich je nachdem, welche Komponenten ein Programm hat, die passenden heraussucht. Also wenn ich z. B. eine reine Konsolenanwendung habe, brauche ich natürlich kein package "gui". Wenn ich hingegen eine Webanwendung erstellen möchte, sollten z. B. packages "client", "server" oder so genutzt werden?! "core" bzw. "main" sind wohl immer sinnvoll.

Doch, das macht sinn. Allerdings nicht als "core" oder "server" Package, sondern immer auf dein Programm benannt (z.B. org.javaforum.main oder com.apache.commons).

Zu 2. Da gehen die Meinungen ja schon auseinander. Ich habe auch nur gelesen, dass es eben beide Möglichkeiten gibt aber nicht, welches die Vor-/Nachteile der einen oder anderen sind bzw. wann man welche Methode einsetzt. In der 2. Variante hätte ich ja in einer Anwendung mehrere main-Methoden. Ist das überhaupt "sauber"? Eine DB-Connection kann ich doch auch in der ersten Variante aufbauen. Wie sieht es aus, wenn ich Programmeinstellungen (Preferences-API) laden will. Eigent sich da eine der beiden Varianten besser für?
Das kommt immer sehr auf deine Anwendungsarchitektur an und ist ein Individuelles Problem, finde ich. Ich bevorzuge allerdings auch die 1. Methode.
 

JMarkus

Mitglied
zur 1. Frage
Also ich habe mir jetzt ersteinmal 4 Pakete angelegt:
- core: für die eigentlichen Funktionen des Programms
- gui: für die ganze Oberflächendinge
- util: für die Hilfsklasse (meist static)
- data: für sämtliche Dateien (Bilder, Icons, etc.)

Daran sieht man jedenfalls, dass es durchaus einen völlig programmunabhängigen Standardsatz an Paketen geben kann. Dachte halt, so etwas haben sich schon andere vor mir ausgedacht...

zur 2. Frage

Ich habe mich jetzt auch für die 2. Variante entschieden. Ist doch irgendwie objektorientierter, da man ja noch viele andere Dinge zum Programmstart erledigen muss (z. B. Voreinstellungen laden, DB-Connection herstellen, GUI aufbauen, etc.). Das wird besser zentral gesteuert und nicht in der Klasse, die die GUI aufbaut.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6
J Subklasse soll alle Klassen/Pakete der Superklasse importieren Java Basics - Anfänger-Themen 3
Z Klassen, Pakete und Verzeichnisse Java Basics - Anfänger-Themen 8
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
S Pakete in BlueJ Java Basics - Anfänger-Themen 5
M Imports einzeln oder direkt komplette Pakete .*? Java Basics - Anfänger-Themen 26
D OOP Pakete Import Java Basics - Anfänger-Themen 15
J Pakete Java Basics - Anfänger-Themen 45
J VoiceChat Hilfe - Empfangene Pakete abspielen Java Basics - Anfänger-Themen 6
A Hinzufügen neuer Pakete Java Basics - Anfänger-Themen 5
M Eigene Pakete in Eclipse erstellen Java Basics - Anfänger-Themen 5
P Pakete kompilieren.... Java Basics - Anfänger-Themen 2
B Wie kann ich eigene Pakete nutzen? Java Basics - Anfänger-Themen 10
M Neue Pakete implementieren Java Basics - Anfänger-Themen 5
G Kann keine Pakete runterladen! Java Basics - Anfänger-Themen 3
S Wie .jar - Pakete nutzen? Java Basics - Anfänger-Themen 3
G importieren von pakete Java Basics - Anfänger-Themen 11
N Porblem mit dem Importieren eigener Pakete Java Basics - Anfänger-Themen 4
M Pakete Java Basics - Anfänger-Themen 4
T Pakete und "-cp_ funktionieren net zusammen Java Basics - Anfänger-Themen 2
S Import Pakete oder auflösen . .*, bringt das was? Java Basics - Anfänger-Themen 5
P Problem: Kann keine externen Pakete importieren Java Basics - Anfänger-Themen 11
N Java2me Pakete importieren Java Basics - Anfänger-Themen 2
P Was sind Pakete? Java Basics - Anfänger-Themen 6
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
V_Fynn03 Klassen Überweisungen tätigen und einzahlen mit 2 Klassen Java Basics - Anfänger-Themen 1
W Abarbeitungsreihenfolge Anonyme Klassen Java Basics - Anfänger-Themen 2
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
E Klassen implementieren Java Basics - Anfänger-Themen 94
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben