- Java-pakket
- Voorbeeld van pakket
- Toegang tot pakket
- Subpakket
- Class-bestand naar een andere map verzenden
- -klassepad-schakelaar
- 4 manieren om het klassenbestand of jar-bestand te laden
- Hoe twee openbare klassen in een pakket te plaatsen
- Statische import
- Pakketklasse
A Java-pakket is een groep vergelijkbare typen klassen, interfaces en subpakketten.
Pakket in Java kan in twee vormen worden gecategoriseerd: ingebouwd pakket en door de gebruiker gedefinieerd pakket.
Er zijn veel ingebouwde pakketten zoals java, lang, awt, javax, swing, net, io, util, sql etc.
Hier zullen we gedetailleerd leren hoe u door de gebruiker gedefinieerde pakketten kunt maken en gebruiken.
numpige nullen
Voordeel van Java-pakket
1) Het Java-pakket wordt gebruikt om de klassen en interfaces te categoriseren, zodat ze gemakkelijk kunnen worden onderhouden.
2) Java-pakket biedt toegangsbeveiliging.
3) Java-pakket verwijdert naamconflicten.
Eenvoudig voorbeeld van een Java-pakket
De pakket trefwoord wordt gebruikt om een pakket in Java te maken.
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Hoe een Java-pakket te compileren
Als u geen IDE gebruikt, moet u de instructies volgen syntaxis onder aangegeven:
javac -d directory javafilename
Voor voorbeeld
javac -d . Simple.java
De schakeloptie -d specificeert de bestemming waar het gegenereerde klassenbestand moet worden geplaatst. U kunt elke mapnaam gebruiken, zoals /home (in het geval van Linux), d:/abc (in het geval van Windows) enz. Als u het pakket in dezelfde map wilt houden, kunt u . (punt).
Hoe een Java-pakketprogramma uit te voeren
U moet een volledig gekwalificeerde naam gebruiken, b.v. mypack.Simple enz. om de klasse uit te voeren.
Compileren: javac-d. Simpel.java |
Rennen: java mypack. Eenvoudig |
Output:Welcome to package
De -d is een schakelaar die de compiler vertelt waar het klassenbestand moet worden geplaatst, dat wil zeggen dat het de bestemming vertegenwoordigt. De . vertegenwoordigt de huidige map. |
Hoe krijg ik toegang tot een pakket vanuit een ander pakket?
Er zijn drie manieren om toegang te krijgen tot het pakket van buiten het pakket.
- importpakket.*;
- importpakket.klassenaam;
- volledig gekwalificeerde naam.
1) Pakketnaam gebruiken.*
Als u package.* gebruikt, zijn alle klassen en interfaces van dit pakket toegankelijk, maar geen subpakketten.
Het trefwoord import wordt gebruikt om de klassen en interface van een ander pakket toegankelijk te maken voor het huidige pakket.
Voorbeeld van een pakket dat de pakketnaam importeert.*
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
2) Gebruik pakketnaam.klassenaam
Als u package.classname importeert, zal alleen de gedeclareerde klasse van dit pakket toegankelijk zijn.
Voorbeeld van pakket door importpakket.klassenaam
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.A; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
3) Gebruik van een volledig gekwalificeerde naam
Als u een volledig gekwalificeerde naam gebruikt, is alleen de aangegeven klasse van dit pakket toegankelijk. Nu is importeren niet nodig. Maar u moet elke keer dat u toegang krijgt tot de klasse of interface een volledig gekwalificeerde naam gebruiken.
Het wordt over het algemeen gebruikt als twee pakketten dezelfde klassenaam hebben, b.v. de pakketten java.util en java.sql bevatten de klasse Date.
Voorbeeld van pakket per import, volledig gekwalificeerde naam
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; class B{ public static void main(String args[]){ pack.A obj = new pack.A();//using fully qualified name obj.msg(); } }
Output:Hello
Let op: Als u een pakket importeert, worden subpakketten niet geïmporteerd.
Als u een pakket importeert, worden alle klassen en interfaces van dat pakket geïmporteerd, met uitzondering van de klassen en interfaces van de subpakketten. Daarom moet u het subpakket ook importeren.
Opmerking: de volgorde van het programma moet eerst pakket zijn, import en dan klasse.
Subpakket in Java
Het pakket in het pakket wordt de subpakket . Het zou gecreëerd moeten worden om het pakket verder te categoriseren .
Laten we een voorbeeld nemen: Sun Microsystem heeft een pakket met de naam java gedefinieerd dat veel klassen bevat, zoals System, String, Reader, Writer, Socket enz. Deze klassen vertegenwoordigen een bepaalde groep, b.v. Reader- en Writer-klassen zijn voor invoer/uitvoer, Socket- en ServerSocket-klassen zijn voor netwerken enz. Dus heeft Sun het Java-pakket onderverdeeld in subpakketten zoals lang, net, io enz. en de aan Input/Output gerelateerde klassen in het io-pakket geplaatst, de Server- en ServerSocket-klassen in net-pakketten, enzovoort.
De standaard voor het definiëren van een pakket is domein.bedrijf.pakket, b.v. com.javatpoint.bean of org.sssit.dao.
Voorbeeld van subpakket
package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } }
Compileren: javac-d. Simpel.java |
Rennen: java com.javatpoint.core.Simple |
Output:Hello subpackage
Hoe stuur ik het klassenbestand naar een andere map of schijf?
Er is een scenario: ik wil het klassenbestand van het A.java-bronbestand in de klassenmap van c: station plaatsen. Bijvoorbeeld:
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
Compileren:
e:sources> javac -d c:classes Simple.java
Rennen:
Om dit programma vanuit de map e:source uit te voeren, moet u het klassenpad instellen van de map waar het klassenbestand zich bevindt. |
e:sources> set classpath=c:classes;.; |
e:sources> java mypack.Simple |
Een andere manier om dit programma uit te voeren via de -classpath-schakelaar van Java:
De schakelaar -classpath kan worden gebruikt met Java- en Java-tools.
Om dit programma vanuit de map e:source uit te voeren, kunt u de schakelaar -classpath van Java gebruiken die aangeeft waar u naar het klassenbestand moet zoeken. Bijvoorbeeld:
overwinteren dialect
e:sources> java -classpath c:classes mypack.Simple
Output:Welcome to package
Manieren om de klassenbestanden of jar-bestanden te laden
Er zijn twee manieren om de klassebestanden tijdelijk en permanent te laden. |
- Tijdelijk
- Door het klassenpad in te stellen in de opdrachtprompt
- Via -classpath-schakelaar
- Permanent
- Door het klassenpad in de omgevingsvariabelen in te stellen
- Door het jar-bestand te maken, dat alle klassenbestanden bevat, en het jar-bestand naar de map jre/lib/ext te kopiëren.
Regel: Er kan slechts één openbare klasse in een Java-bronbestand voorkomen en deze moet worden opgeslagen onder de openbare klassenaam.
//save as C.java otherwise Compilte Time Error class A{} class B{} public class C{}
Hoe plaats ik twee openbare klassen in een pakket?
Als u twee openbare klassen in een pakket wilt plaatsen, zorg dan dat u twee Java-bronbestanden heeft die één openbare klasse bevatten, maar houd de pakketnaam hetzelfde. Bijvoorbeeld: |
//save as A.java package javatpoint; public class A{}
//save as B.java package javatpoint; public class B{}
Wat is de statische importfunctie van Java5?
Klik op de statische importfunctie van Java5. |
Hoe zit het met de pakketklasse?
Klik voor Pakketklasse |