Занятие 5. Пакеты Java
Файл Base.java
package p1; class Inp1{ public void f() { Base b = new Base(); // b.priv = 1; // priv has private access in p1.Base b.pack = 1; b.prot = 1; b.publ = 1; } } public class Base{ private int priv = 0; int pack = 0; protected int prot = 0; public int publ = 0; } class Derivedp1 extends Base{ public void f(Base a) { // a.priv = 1; // priv has private access in p1.Base a.pack = 1; a.prot = 1; a.publ = 1; // priv = 1; // priv has private access in p1.Base pack = 1; prot = 1; publ = 1; } }
Файл Inp2.java
package p2; import p1.Base; class Inp2{ public static void main(String[] args){ Base b = new Base(); // b.priv = 1; // priv has private access in p1.Base // b.pack = 1; // pack is not public in p1.Base; // cannot be accessed from outside package // b.prot = 1; // prot has protected access in p1.Base b.publ = 1; } } class Derivedp2 extends Base{ public void f(Base a){ // a.priv = 1; // priv has private access in p1.Base // a.pack = 1; // pack is not public in p1.Base; cannot // be accessed from outside package // a.prot = 1; // prot has protected access in p1.Base a.publ = 1; // priv = 1; // priv has private access in p1.Base // pack = 1; // pack is not public in p1.Base; cannot // be accessed from outside package prot = 1; publ = 1; super.prot = 1; } }
Ручное размещение пакетов по файлам
1. Папка для приложения
c:\2kurs\exampl-05
2. Создать в папке
c:\2kurs\exampl-05
файлы
Base.java
Inp2.java
3. Создать в папке
c:\2kurs\exampl-05
пустую папку
classes
4. Создать в папке
c:\2kurs\exampl-05\classes
пустые папки
p1
p2
5. Перенести файл
Base.java
в папку
c:\2kurs\exampl-05\classes\p1
6. Откомпилировать
Base.java
перейдя в папку
c:\2kurs\exampl-05\classes\p1
7. Перенести файл
Inp2.java
в папку
c:\2kurs\exampl-05\classes\p2
8. Сделать текущей папку
c:\2kurs\exampl-05\classes
9. Откомпилировать
c:\2kurs\exampl-05\classes>javac p2\Inp2.java
10. Запуск
java p2.Inp2
Автоматическое размещение пакетов по файлам при компиляции
1. Папка для приложения
c:\2kurs\exampl-06
2. Создать в папке
c:\2kurs\exampl-06
файлы
Base.java
Inp2.java
папку classes
3. Выполнить компиляцию
javac -d classes Base.java
Результат?
4. Выполнить компиляцию
javac -classpath classes -d classes Inp2.java
Результат?
5. Сделать текущей папку
c:\2kurs\exampl-06\classes
6. Запуск
java p2.Inp2
Командный файл
1. Папка для приложения
c:\2kurs\exampl-06-1
2. Создать в папке
c:\2kurs\exampl-06-1
файлы
Base.java
Inp2.java
3. Создать в папке
c:\2kurs\exampl-06-1
файл
javastart.cmd
4. Запустить файл
javastart.cmd
Файл javastart.cmd
md classes javac -d classes Base.java javac -classpath classes -d classes Inp2.java cd classes java p2.Inp2