logo

Java-pakket

  1. Java-pakket
  2. Voorbeeld van pakket
  3. Toegang tot pakket
    1. Door pakketnaam te importeren.*
    2. Door pakketnaam.klassenaam te importeren
    3. Onder volledig gekwalificeerde naam
  4. Subpakket
  5. Class-bestand naar een andere map verzenden
  6. -klassepad-schakelaar
  7. 4 manieren om het klassenbestand of jar-bestand te laden
  8. Hoe twee openbare klassen in een pakket te plaatsen
  9. Statische import
  10. 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.

  1. importpakket.*;
  2. importpakket.klassenaam;
  3. 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