Edit
包_package
1.对类文件进行分类管理
2.给类提供多层命名空间
3.写在程序文件的第一行
4.类名的全称是:包名.类名
5.包也是一种封装形式
编译和运行
编译 : javac -d e:\java PackageDemo.java
运行 : java pack.PackageDemo
Tips
- 1.在一个包中调用另一个包的类时 : 包名.类名
- 2.在编译时,一定注意classpath的路径,用set classpath
- 3.一个包中的类被另一个包访问时,必须这个包中的类为public,并且类中的方法也必须为public
- 4.不同包中的子类可以直接访问父类中被protected修饰的成员
- 5.包与包之间使用的权限修饰符只有两种:public,protected
权限修饰符
不同情况下 | public | protected | default | private |
同一个类中 |
ok |
ok |
ok |
ok |
同一个包中 |
ok |
ok |
ok |
no |
子类 |
ok |
ok |
no |
no |
不同包中 |
ok |
no |
no |
no |
注意
- 1.如果父类的方法是protected,子类要覆盖这个方法,该方法的修饰符必须是public或者protected,也就是说权限要大于或者等于父类中方法的权限
- 2.一个java文件不能出现两个共有类或者接口,所以就弄成一个包中的两个不同的类文件
- 3.如果包中还有包:package packa.packb,相当于packa中还有packb
import
- 为了简化类名的书写,可以用到import,比如:import packa.packb.Demo
- 在下面类中的编程就直接用Demo d = new Demo()
- 比如:import packa.packb.* //导入packb当前目录下的所有类文件
- 在定义包名时,为了不让包名重复,可以使用url在完成定义,url是唯一的
PackageDemo
package pack;
class PackageDemo
{
public static void main(String[] args)
{
packa.DemoA d = new packa.DemoA();
d.show();
}
}
DemoA
package packa;
public class DemoA extends packb.DemoB
{
public void show()
{
System.out.println("hello demoa");
method();
}
}
DemoB
package packb;
public class DemoB
{
protected void method()
{
System.out.println("method run");
}
}
@%2802.%u8D44%u6599%29%5B%u9762%u5411%u5BF9%u8C61%2C%20%u5305%20%2Cpackage%2C%20import%2C160817%5D%0A%23%23%23%20%u5305_package%0A%3E1.%u5BF9%u7C7B%u6587%u4EF6%u8FDB%u884C%u5206%u7C7B%u7BA1%u7406%0A2.%u7ED9%u7C7B%u63D0%u4F9B%u591A%u5C42%u547D%u540D%u7A7A%u95F4%0A3.%u5199%u5728%u7A0B%u5E8F%u6587%u4EF6%u7684%u7B2C%u4E00%u884C%0A4.%u7C7B%u540D%u7684%u5168%u79F0%u662F%3A%u5305%u540D.%u7C7B%u540D%0A5.%u5305%u4E5F%u662F%u4E00%u79CD%u5C01%u88C5%u5F62%u5F0F%0A%0A**%u7F16%u8BD1%u548C%u8FD0%u884C**%0A%3E%u7F16%u8BD1%20%3A%20javac%20-d%20e%3A%5Cjava%20PackageDemo.java%0A%3E%u8FD0%u884C%20%3A%20java%20pack.PackageDemo%0A%0A**Tips**%0A%3E-%201.%u5728%u4E00%u4E2A%u5305%u4E2D%u8C03%u7528%u53E6%u4E00%u4E2A%u5305%u7684%u7C7B%u65F6%20%3A%20%u5305%u540D.%u7C7B%u540D%0A%3E-%202.%u5728%u7F16%u8BD1%u65F6%2C%u4E00%u5B9A%u6CE8%u610Fclasspath%u7684%u8DEF%u5F84%2C%u7528set%20classpath%0A%3E-%203.%u4E00%u4E2A%u5305%u4E2D%u7684%u7C7B%u88AB%u53E6%u4E00%u4E2A%u5305%u8BBF%u95EE%u65F6%2C%u5FC5%u987B%u8FD9%u4E2A%u5305%u4E2D%u7684%u7C7B%u4E3Apublic%2C%u5E76%u4E14%u7C7B%u4E2D%u7684%u65B9%u6CD5%u4E5F%u5FC5%u987B%u4E3Apublic%0A%3E-%204.%u4E0D%u540C%u5305%u4E2D%u7684%u5B50%u7C7B%u53EF%u4EE5%u76F4%u63A5%u8BBF%u95EE%u7236%u7C7B%u4E2D%u88ABprotected%u4FEE%u9970%u7684%u6210%u5458%0A%3E-%205.%u5305%u4E0E%u5305%u4E4B%u95F4%u4F7F%u7528%u7684%u6743%u9650%u4FEE%u9970%u7B26%u53EA%u6709%u4E24%u79CD%3Apublic%2Cprotected%0A%0A**%u6743%u9650%u4FEE%u9970%u7B26**%0A%0A%7C%20%u4E0D%u540C%u60C5%u51B5%u4E0B%20%20%7C%20public%20%20%20%7C%20protected%7C%20%20default%20%7C%20%20private%20%20%20%7C%0A%7C%20%3A--------%20%7C%20--------%3A%7C%20%3A------%3A%20%7C%0A%7C%20%u540C%u4E00%u4E2A%u7C7B%u4E2D%20%20%7C%20%20%20ok%20%7C%20%20ok%7Cok%7Cok%7C%0A%7C%20%u540C%u4E00%u4E2A%u5305%u4E2D%20%20%7C%20%20%20ok%20%7C%20ok%20%20%7Cok%7Cno%7C%0A%7C%20%20%20%20%u5B50%u7C7B%20%20%20%20%7C%20%20%20ok%20%7C%20%20ok%20%7Cno%7Cno%7C%0A%7C%20%u4E0D%u540C%u5305%u4E2D%20%20%20%20%7C%20%20%20ok%20%7C%20%20no%20%7Cno%7Cno%7C%0A%0A**%u6CE8%u610F**%0A%3E-%201.%u5982%u679C%u7236%u7C7B%u7684%u65B9%u6CD5%u662Fprotected%2C%u5B50%u7C7B%u8981%u8986%u76D6%u8FD9%u4E2A%u65B9%u6CD5%2C%u8BE5%u65B9%u6CD5%u7684%u4FEE%u9970%u7B26%u5FC5%u987B%u662Fpublic%u6216%u8005protected%2C%u4E5F%u5C31%u662F%u8BF4%u6743%u9650%u8981%u5927%u4E8E%u6216%u8005%u7B49%u4E8E%u7236%u7C7B%u4E2D%u65B9%u6CD5%u7684%u6743%u9650%0A%3E-%202.%u4E00%u4E2Ajava%u6587%u4EF6%u4E0D%u80FD%u51FA%u73B0%u4E24%u4E2A%u5171%u6709%u7C7B%u6216%u8005%u63A5%u53E3%2C%u6240%u4EE5%u5C31%u5F04%u6210%u4E00%u4E2A%u5305%u4E2D%u7684%u4E24%u4E2A%u4E0D%u540C%u7684%u7C7B%u6587%u4EF6%0A%3E-%203.%u5982%u679C%u5305%u4E2D%u8FD8%u6709%u5305%3Apackage%20packa.packb%2C%u76F8%u5F53%u4E8Epacka%u4E2D%u8FD8%u6709packb%0A%0A**import**%0A%3E-%20%u4E3A%u4E86%u7B80%u5316%u7C7B%u540D%u7684%u4E66%u5199%2C%u53EF%u4EE5%u7528%u5230import%2C%u6BD4%u5982%3Aimport%20packa.packb.Demo%0A%3E-%20%u5728%u4E0B%u9762%u7C7B%u4E2D%u7684%u7F16%u7A0B%u5C31%u76F4%u63A5%u7528Demo%20d%20%3D%20new%20Demo%28%29%0A%3E-%20%u6BD4%u5982%3Aimport%20packa.packb.*%20%20%20//%u5BFC%u5165packb%u5F53%u524D%u76EE%u5F55%u4E0B%u7684%u6240%u6709%u7C7B%u6587%u4EF6%0A%3E-%20%u5728%u5B9A%u4E49%u5305%u540D%u65F6%2C%u4E3A%u4E86%u4E0D%u8BA9%u5305%u540D%u91CD%u590D%2C%u53EF%u4EE5%u4F7F%u7528url%u5728%u5B8C%u6210%u5B9A%u4E49%2Curl%u662F%u552F%u4E00%u7684%0A%0A**PackageDemo**%0A%60%60%60java%20%0Apackage%20pack%3B%0Aclass%20PackageDemo%20%0A%7B%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20%0A%09%7B%0A%09%09packa.DemoA%20d%20%3D%20new%20packa.DemoA%28%29%3B%0A%09%09d.show%28%29%3B%0A%09%7D%0A%7D%0A%0A%60%60%60%0A**DemoA**%0A%60%60%60java%0Apackage%20packa%3B%0Apublic%20class%20DemoA%20extends%20packb.DemoB%0A%7B%0A%09public%20void%20show%28%29%0A%09%7B%0A%09%09System.out.println%28%22hello%20demoa%22%29%3B%0A%09%09method%28%29%3B%0A%09%7D%0A%0A%7D%0A%0A%60%60%60%0A**DemoB**%0A%60%60%60java%0Apackage%20packb%3B%0Apublic%20class%20DemoB%20%0A%7B%0A%09protected%20void%20method%28%29%0A%09%7B%0A%09%09System.out.println%28%22method%20run%22%29%3B%0A%09%7D%0A%7D%0A%0A%60%60%60%0A