logo

Java пакет

  1. Java пакет
  2. Пример за опаковка
  3. Пакет за достъп
    1. Чрез име на пакет за импортиране.*
    2. Чрез import packagename.classname
    3. С пълно квалифицирано име
  4. Подпакет
  5. Изпращане на файл с клас в друга директория
  6. -classpath превключвател
  7. 4 начина за зареждане на class файл или jar файл
  8. Как да поставите два публични класа в пакет
  9. Статично импортиране
  10. Клас на опаковката

А java пакет е група от подобни типове класове, интерфейси и под-пакети.

Пакетът в java може да бъде категоризиран в две форми, вграден пакет и дефиниран от потребителя пакет.

Има много вградени пакети като java, lang, awt, javax, swing, net, io, util, sql и др.

Тук ще имаме подробно обучение за създаване и използване на дефинирани от потребителя пакети.

linux команди създават папка

Предимство на пакета Java

1) Пакетът Java се използва за категоризиране на класовете и интерфейсите, така че да могат лесно да се поддържат.

2) Пакетът Java осигурява защита на достъпа.

3) Пакетът Java премахва сблъсъка при именуване.


Прост пример за java пакет

The пакетна ключова дума се използва за създаване на пакет в java.

 //save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } } 

Как да компилирам java пакет

Ако не използвате IDE, трябва да следвате синтаксис дадено по-долу:

 javac -d directory javafilename 

За пример

 javac -d . Simple.java 

Превключвателят -d указва дестинацията, където да поставите генерирания клас файл. Можете да използвате всяко име на директория като /home (в случай на Linux), d:/abc (в случай на windows) и т.н. Ако искате да запазите пакета в същата директория, можете да използвате . (точка).


Как да стартирате пакетна програма java

Трябва да използвате напълно квалифицирано име, напр. mypack.Simple и т.н. за стартиране на класа.


За компилиране: javac -d. Simple.java
Да бягам: java mypack.Simple
 Output:Welcome to package 
-d е превключвател, който казва на компилатора къде да постави файла на класа, т.е. той представлява местоназначението. . представлява текущата папка.

Как да получите достъп до пакет от друг пакет?

Има три начина за достъп до пакета извън пакета.

  1. пакет за импортиране.*;
  2. import package.classname;
  3. напълно квалифицирано име.

1) Използване на име на пакет.*

Ако използвате package.* тогава всички класове и интерфейси на този пакет ще бъдат достъпни, но не и подпакетите.

Ключовата дума import се използва, за да направи класовете и интерфейса на друг пакет достъпни за текущия пакет.

Пример за пакет, който импортира името на пакета.*

 //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) Използване на packagename.classname

Ако импортирате package.classname, само декларираният клас на този пакет ще бъде достъпен.

Пример за пакет чрез import package.classname

 //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) Използване на пълно квалифицирано име

Ако използвате напълно квалифицирано име, само декларираният клас на този пакет ще бъде достъпен. Сега няма нужда от внос. Но трябва да използвате напълно квалифицирано име всеки път, когато осъществявате достъп до класа или интерфейса.

Обикновено се използва, когато два пакета имат едно и също име на клас, напр. Пакетите java.util и java.sql съдържат клас Date.

Пример за пакет чрез пълно квалифицирано име за импортиране

 //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 

Забележка: Ако импортирате пакет, подпакетите няма да бъдат импортирани.

Ако импортирате пакет, всички класове и интерфейс на този пакет ще бъдат импортирани, с изключение на класовете и интерфейсите на подпакетите. Следователно трябва да импортирате и подпакета.


Забележка: Последователността на програмата трябва да бъде пакет, след това импортиране и след това клас.


Подпакет в java

Пакет вътре в пакета се нарича подпакет . Трябва да се създаде за допълнително категоризиране на пакета .

Да вземем пример, Sun Microsystem е дефинирала пакет с име java, който съдържа много класове като System, String, Reader, Writer, Socket и т.н. Тези класове представляват определена група, напр. Класовете Reader и Writer са за входно/изходни операции, класовете Socket и ServerSocket са за работа в мрежа и т.н. и т.н. И така, Sun е подкатегоризирал пакета java в подпакети като lang, net, io и т.н. и е поставил свързаните с Input/Output класове в io пакет, класове Server и ServerSocket в net пакети и т.н.

Стандартът за дефиниране на пакет е domain.company.package, напр. com.javatpoint.bean или org.sssit.dao.

Пример за подпакет

 package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } } 
За компилиране: javac -d. Simple.java
Да бягам: java com.javatpoint.core.Simple
 Output:Hello subpackage 

Как да изпратите файла на класа в друга директория или устройство?

Има сценарий, искам да поставя файла с клас на изходния файл на A.java в папката с класове на c: устройство. Например:

 //save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } } 

За компилиране:

e:sources> javac -d c:classes Simple.java

Да бягам:

За да стартирате тази програма от директория e:source, трябва да зададете classpath на директорията, където се намира файлът на класа.
e:sources> set classpath=c:classes;.;
e:sources> java mypack.Simple

Друг начин да стартирате тази програма чрез ключ -classpath на java:

Ключът -classpath може да се използва с javac и java tool.

За да стартирате тази програма от директория e:source, можете да използвате превключвателя -classpath на java, който казва къде да търсите клас файл. Например:

меню за настройки на android

e:sources> java -classpath c:classes mypack.Simple

 Output:Welcome to package 

Начини за зареждане на клас файлове или jar файлове

Има два начина за зареждане на клас файловете временен и постоянен.
  • Временно
    • Чрез задаване на classpath в командния ред
    • Превключвател чрез -classpath
  • Постоянно
    • Чрез задаване на classpath в променливите на средата
    • Чрез създаване на jar файла, който съдържа всички клас файлове и копиране на jar файла в папката jre/lib/ext.

Правило: Може да има само един публичен клас в изходния файл на Java и той трябва да бъде записан с името на публичния клас.

 //save as C.java otherwise Compilte Time Error class A{} class B{} public class C{} 

Как да поставим два публични класа в пакет?

Ако искате да поставите два публични класа в пакет, имайте два java изходни файла, съдържащи един публичен клас, но запазете името на пакета същото. Например:
 //save as A.java package javatpoint; public class A{} 
 //save as B.java package javatpoint; public class B{} 

Какво представлява функцията за статичен импорт на Java5?

Щракнете върху функцията за статично импортиране на Java5.

Какво ще кажете за класа на пакета?

Щракнете за клас пакет