Was versteht man unter Java einen Package ?

Status
Nicht offen für weitere Antworten.

math.iso@live.de

Aktives Mitglied
Hmm ja ich würde gern wissen ,wass ihr java-programmieren unter package versteht???

Ich hab keine Ahnung ...


Wenn ich eine programme habe und sagen wir ,das programm sieht so aus :

Code:
package fussball.do;

... // der rest des programms ist mir egal

Was macht der Compiler ,wenn er dieses befehl liest ?

er kann diese klasse fussball.do nicht importieren ,da der befehl import heißt..

??

naja bin ratlos ,ich höffe ihr könnt mir beispiele oder tipp ,bzw erklärung geben :)
 

math.iso@live.de

Aktives Mitglied
@wildcard: Zitat :Das ist eine Namespace Deklaration.
Die Klasse wird in den Namespace (Package) fussball.do definiert:

Wie kann ich Namespace deklaration verstehen ,was deklariere ich denn ????

Kannst du mir anhand eines Beispiel es zeigen ,???


Code:
package sinnlos;

class Doenergut {....


...
...

.. }

was machst das programm jetzt mit diesen package ??

oder wird die klasse doenergut in package keineahnung zusammengefasst ,zusammengefügt bzw hinzugefügt ????
 

Wildcard

Top Contributor
Das Package ist als Teil das Names zu sehen. Ohne eine Namespace/Package Präfix könnte es zB nur eine einzige Klasse mit dem Namen 'List' geben, es gibt aber zB eine java.util.List und eine java.awt.List. Die Klasse heißt also nicht List, sondern package.name.List
 

math.iso@live.de

Aktives Mitglied
ich will doch nur wissen was das Befehl bei java " package name.List" macht,was der Sinn des Programms ist oder was er ausführt...

Als welches Teil des Namen zu sehen ..?

Wenn ich eine klasse habe sagen wir Doener und das package fussball.tor ,wird die klasse doener da rein integiert in die package fussball.tor ???
 

Reeny

Aktives Mitglied
Die Klassen werden in Packages zusammen gefasst. Das muss nicht sein, ist aber besser so.

Es fördert erstens die Übersicht: Wenn du z.B. 100 Klassen (oder auch nur 20 Klassen) hast, ist es sinnvoller, diese in Packages zusammen zu packen. Jedes Package ist ja auch ein eigenes Verzeichnis.

Beispiel:
Code:
de.deinprogramm.gui
 - ProgramWindow.java
 - SettingsDialog.java
 - ProgressBarDialog.java
de.deinprogramm.util
 - Converter.java
 - LoginHandler.java
de.deinprogramm.exception
 - LoginException.java
de.deinprogramm
 - Main.java

Zweitens kann man auch so den Zugriff auf Klassen oder Funktionen package-gesteuert definieren. So kann man zum Beispiel sagen, dass eine bestimmte Klasse nur von anderen Klassen benutzt werden können, die innerhalb des selben Packages liegen.
 

math.iso@live.de

Aktives Mitglied
@reny:danke renny für deine schöne erläuterung ,aber ich hab 0% den sinn deines Programm verstanden ..aber es ist mein fehler ,ich hätte vorher sagen soll ,dass ich ein gerade beim erlernen der java-grundlagen bin :)...naja


Also package zusammenfassung von klassen richtig?

wenn ich ein programm habe wie z.bsp :

Code:
package cool.fool;

classe doenergut { ..

..
}

class donerschlecht {..


..}

heißt dass dieses Programm die 2 klassen jetzt zu cool.fool zusammen fasst :)?
(an java-profis ,ich will nur den Prinzip verstehen :) )
 

HoaX

Top Contributor
für dich mal bildlich: package == verzeichnisbaum, klassenname == datei

hast du also
Code:
package mein.package.testprogramm;

public class Main {
...

dann ist das quasi eine datei "Main" im verzeichnis "mein\package\testprogramm"

sinn ist dass der code logisch aufgeteilt ist. es gibt z.B. die klasse "List" sowohl im package "java.awt" als auch in "java.util". erstes ist eine grafische Listenkomponente, das andere eine Collection-Interface.

heißt dass dieses Programm die 2 klassen jetzt zu cool.fool zusammen fasst icon_smile.gif?
er fast sie nicht "zu" cool.fool zusammen, sonder "in". es gibt dann die sowohl die klasse cool.fool.doenergut als auch cool.fool.doenerschlecht.

btw: bei klassenamen schreibt man gemäß konverntion den ersten buchstaben groß, bei packages klein.
 

Tobias

Top Contributor
Klasse 1:
Code:
package java.util;

public class List {
}

Klasse 2:
Code:
package java.awt;

public class List {
}

Klasse 1 heißt vollständig java.util.List. Weil das aber zuviel Schreibaufwand ist, kürzt man das ab, indem man in der ersten Zeile den qualifizierenden (sozusagen vervollständigenden) Namensbestandteil angibt und in der eigentlichen class-Definition nur den kurzen Namen (sprich den Trivialnamen).

Dadurch können die beiden oben gezeigten Klassen parallel existieren, obwohl ihre Trivialnamen gleich sind. Der Compiler unterscheidet die beiden Klassen anhand ihrs qualifizierten Namens. Um als Verwender einer solchen Klasse wiederum nur den Trivialnamen benutzen zu müssen, gibt es die Anweisung "import", mit deren Hilfe man den Compiler anweisen kann aus den gegebenen qualifizierenden Namensbestandteilen und dem im Quelltext stehenden, nicht identifizierten Trivialnamen solange qualifizierte Klassennamen zusammenzubauen, bis er eine Klasse gefunden hat.

Diese Beschreibung ist zwar nicht wissenschaftlich korrekt, aber für den Anfang wohl ausreichend.

mpG
Tobias
 

math.iso@live.de

Aktives Mitglied
so ich hab ein klein programmen geschrieben und hab diese Datei compiliert C:\Java\Programme\moi\secret.java


Code:
package moi.hard;

public class Secret{
public static void main (String[]arg){

int a;
int b;
}

}

jetzt würde ich gern wissen was das programm gemacht hat , ich hab auch ein verzeichnis
C:\Java\Programme\moi\hard angelegt ; warum wird das package angegeben ?

:( ..?

ich könnte dieses programm auch ohne package laufen lassen ,wo ist der sinn von package ?

ist der sinn von package dass ich datein importieren kann?
 

Ark

Top Contributor
Wie soll sich denn die JRE die Klassen zusammenkratzen? Ohne Pakete geht's nur schlecht für den Programmierer, da man so weltweit(!) sicherstellen müsste, dass nur eine einzige Klasse "Test" heißt usw., damit es nicht zu Konflikten kommt. Auf der anderen Seite kann es aber nicht sein, dass die JRE alle Festplatten auf den Kopf stellen muss, um die passende Klasse zu finden. Wo soll sie denn suchen? Für jede Klasse einzeln der JRE mitteilen, in welchem Verzeichnis genau sich jetzt eine Klasse befindet, ist zu aufwendig (die Klassen können nämlich weit verstreut in verschiedensten Verzeichnissen liegen).

Also macht man einen Kompromiss: Man teilt der JRE nur mit, wo sie mit Suchen anfangen soll (diese Orte stehen in CLASSPATH), aber wie genau es dann weitergeht, wird durch package mitgeteilt.

Ark
 
B

Beni

Gast
Packages haben eigentlich nur einen einzigen Zweck: den Quellcode übersichtlich zu organisieren.
Sie haben null und garkeinen Einfluss die Funktionsweise des Programmes.

Ein Vergleich: wenn ein Objekt ein Haus ist, und eine Klasse der Bauplan, dann ist das Package der Ordner in dem der Architekt seine Papiere aufbewahrt.

Wieso man packages anschreiben muss? Da gibt es verschiedene Erklärungen:
1. Der Name einer Klasse ist "package.name.Klasse", wenn man nur eine Datei besitzt (z.B. aus dem Internet runterlädt) sollte man so wenigstens den echten Klassennamen rausfinden.
2. Es macht klar welches Verzeichnis das Projektverzeichnis ist. Wenn der Packagename "x.y" lautet, dann ist das Projektverzeichnis dasjenige Verzeichnis in dem "x" ist.
 

coffeecup

Aktives Mitglied
Der Sinn is kurz gesagt, dass du dadurch uf alle Methoden Variablen usw. zB. aus ner anderen Klasse aufgerufen werden können, solange sie im Selben Package sind......

Das is zwar nur ein achtel der ganzen Wahrheit;-)
aber naja
 

math.iso@live.de

Aktives Mitglied
sagen wir :


ich hab im Verzeichnis "Neu/Teila" eine klasse namens Teila

und nun mach ich ein Programm im Ordner Neu und sagen wir ,die klasse soll Neu heißen
kann ich jetzt diese klasse durch den unten angegeben code abrufen :)..?
:


Code:
package neu.teila

class Teila{
...
...
...
...
...
..
..
..
}

ehmm eine andere frage ,könnte mir jemand ein einfaches beispiel programm machen ,wo ich ungefähr den sinn daran sehen :) ,mir kommt es vor als hätte ich das ding nicht verstanden :)
 
B

Beni

Gast
math.iso@live.de hat gesagt.:
einfaches beispiel programm...
Unmöglich, der Sinn von Packages erschliesst sich erst mit grossen Programmen. Man kann nicht anhand von drei Comics erklären, für was man ein Büchergestell benötigt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
F Versteht das jemand? -Java Java Basics - Anfänger-Themen 6
M Wo den Ordner javafx-sdk-21.0.2 unter Linux ablegen? Java Basics - Anfänger-Themen 5
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
nbergmann Umgebungsvariablen einstellen unter Windows 7 klappt nicht Java Basics - Anfänger-Themen 2
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
thor_norsk Datentypen unter Java Java Basics - Anfänger-Themen 3
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
M Speichern unter. Java Basics - Anfänger-Themen 11
L Linux Befehle unter Windows in Eclipse ausführen Java Basics - Anfänger-Themen 3
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
E Knoten eines Baumes unter Bedinung zählen Java Basics - Anfänger-Themen 2
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
F Console command unter Linux Java Basics - Anfänger-Themen 7
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
G Erste Schritte Unter Mac "Path" anpassen .bash_profile? Java Basics - Anfänger-Themen 5
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
J Ordner unter Windows Verstecken Java Basics - Anfänger-Themen 2
F Erste Schritte Unter Windows programmieren und dann auf Linux laufen lassen Java Basics - Anfänger-Themen 4
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
W Datei wird aus resources unter Windows nicht kopiert Java Basics - Anfänger-Themen 1
S Datei einlesen - Dateipfad unter Linux anpassen Java Basics - Anfänger-Themen 12
A Java IDE unter 400mb?? Java Basics - Anfänger-Themen 3
M JSF Projekt erstellen unter Eclipse Java Basics - Anfänger-Themen 7
A .jar unter Linux nutzen Java Basics - Anfänger-Themen 2
G Java unter Mac = schlecht | Windows = gut? Java Basics - Anfänger-Themen 14
M datei startet unter windows 7 nicht Java Basics - Anfänger-Themen 12
N .jar läuft nicht unter Windows 7 Starter Java Basics - Anfänger-Themen 4
F Exportieren als ausführbare Jar-Datei unter Ubuntu nicht möglich Java Basics - Anfänger-Themen 17
M in jTable schreiben unter Bedingung Java Basics - Anfänger-Themen 3
FrozeTee .java Dateien unter Windows 7 werden nicht angezeigt Java Basics - Anfänger-Themen 7
J Erste Schritte Speichern / Speichern unter / title Frame Java Basics - Anfänger-Themen 5
S Erste Schritte import für andere Klassenfiles verfügbar machen? (Java unter Eclipse) Java Basics - Anfänger-Themen 8
A Probleme mit JAR-Datei-Erstellung unter Eclipse Java Basics - Anfänger-Themen 23
S Umgebungsvariablen unter Windows XP Java Basics - Anfänger-Themen 6
S Classpath Libraries werden unter Linux nicht erkannt Java Basics - Anfänger-Themen 5
H speichern unter (JFileChooser) Java Basics - Anfänger-Themen 2
B Javadoc-Befehl unter Ubuntu Java Basics - Anfänger-Themen 2
Z Umgebungsvariable PATH-Umgebungsvariable unter Windows 7 Java Basics - Anfänger-Themen 27
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
Z [TrayIcon] Transparent unter Linux Java Basics - Anfänger-Themen 10
L Farbe unter Cursor bestimmen Java Basics - Anfänger-Themen 5
D Pfadangabe unter windows Java Basics - Anfänger-Themen 7
K kan 64Bit Version unter Win7Pro64 nicht installieren Java Basics - Anfänger-Themen 12
J File unter Linux Java Basics - Anfänger-Themen 8
J JDK installieren JRE unter Windows7 64bit Java Basics - Anfänger-Themen 8
C Mehrere Zeilen unter ~.showMessageDialog Java Basics - Anfänger-Themen 12
F getProperty() unter 64bit Java Basics - Anfänger-Themen 2
J Erstellte .jar unter 32 bit funktioniert nicht bei 64 bit Java Basics - Anfänger-Themen 4
G jar unter MeeGo installieren Java Basics - Anfänger-Themen 3
VfL_Freak Applikation läuft nicht unter Windows7 "platform not supported" Java Basics - Anfänger-Themen 15
R Programm gibt keine Reaktion unter Eclipse auf Mac Java Basics - Anfänger-Themen 13
I Java Programm unter Linux ausführen Java Basics - Anfänger-Themen 2
J Java Tool unter Windows ausführen Java Basics - Anfänger-Themen 8
H archive vergleichbarer Paramter unter Tag Object mit Parameter codetype="application/java-vm" Java Basics - Anfänger-Themen 3
C Windows Java unter Unix Java Basics - Anfänger-Themen 2
M Importieren von "IO.class" unter Eclipse Java Basics - Anfänger-Themen 4
G Problem mit einem Programm unter Win7 Java Basics - Anfänger-Themen 2
M Problem mit relativen Pfad unter Linux Java Basics - Anfänger-Themen 5
J Classpath bestimmen, unter Windows 7 Java Basics - Anfänger-Themen 2
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
L Lucene Classpath unter linux setzen Java Basics - Anfänger-Themen 8
M Icons etc. werden unter Linux nicht gefunden Java Basics - Anfänger-Themen 6
C setResizable(false) unter NetBeans Java Basics - Anfänger-Themen 3
M Java einrichten unter Windows 7 Java Basics - Anfänger-Themen 12
C Wav-Sound nur unter Window Java Basics - Anfänger-Themen 5
B Classpath setzen - UNTER MAC OS X Java Basics - Anfänger-Themen 2
A 2 Monitore unter Java Java Basics - Anfänger-Themen 2
Y BufferdImage schreiben, unter Vista gehts, unter Ubuntu nicht... Java Basics - Anfänger-Themen 9
U Speichern unter button programmieren Java Basics - Anfänger-Themen 12
T Einfache Textausgabe .java unter OS X Java Basics - Anfänger-Themen 13
K Terminal Befehl mit Java unter Mac ausführen Java Basics - Anfänger-Themen 18
R .jar läuft nicht unter Linux Java Basics - Anfänger-Themen 11
D Class not found fehler beim ausführen unter konsole : / Java Basics - Anfänger-Themen 2
B Java Datei unter Solaris kompilieren Java Basics - Anfänger-Themen 2
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
C Windows Look and Feel unter Linux Java Basics - Anfänger-Themen 10
K Export Eclipse-Project unter MAC OS X Java Basics - Anfänger-Themen 2
F jar Datei unter Vista 64 bit Java Basics - Anfänger-Themen 2
schroedi JAVA_HOME setzen unter Debian Java Basics - Anfänger-Themen 8
J Eine JAR unter Linux starten ... Java Basics - Anfänger-Themen 15
Q Wie öffne ich einen "Speichern unter" - Dialog? Java Basics - Anfänger-Themen 2
J Software problem unter VISTA Java Basics - Anfänger-Themen 3
M Was kann man unter implementieren so verstehen? Java Basics - Anfänger-Themen 11
B Einrichtung / Installation unter Linux Java Basics - Anfänger-Themen 4
S Shell Script ausführen unter Java Java Basics - Anfänger-Themen 5
M JVLC unter Windows [geloest] Java Basics - Anfänger-Themen 5
M Problem mit Java unter Vista 64 Java Basics - Anfänger-Themen 4
M alle Zahlen unter 50, die wo gteilt durch 2 Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben