前面几节学习了JAVA的抽象接口多态内部类以及异常,接下来继续学习有关类的内容,
我们日常生活中如果有两个相同文件名的文件在同一个文件夹,我们会怎么做,
是不是会在文件夹下再见两个文件夹,把这两个相同文件名放进去。
那么包的作用也是这样,对类文件进行分类管理;给类提供多层命名空间;
写在程序文件的第一行;类名的全称是包名.类名;包也是一种封装形式。
1、包与包之间访问
之前类名名字多个单词首字母大写,包名名字所有字母小写。现在
类名全称为包名.类名
DemoA.java
package demoa;
class DemoA
{
void show()
{
System.out.println("demoa run");
}
}
PackageDemo.java
package Pack;
class PackageDemo
{
public static void main(String[] args)
{
DemoA d=new DemoA();
d.show();
}
}
错误原因:类名写错。因为类名的全名是:包名.类名。
class PackageDemo
{
public static void main(String[] args)
{
demoa.DemoA d=new demoa.DemoA();
d.show();
}
}
错误原因:packa包不在当前目录下
需要设置classpath,告诉jvm去哪里找指定的packa包。
然后
错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。
需要在DemoA类前加public
然后
错误原因:类公有后,被访问的成员也要公有才可以被访问。
然后
成功了。
总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种,public protected。
public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok 不同包的子类不行
不同包中 ok
类名前面加了公有以后,类名必须和java文件名保持一致。
注意:一个java文件内不可出现两个以上的公有类或者接口。
2、导入import
为了简化类名的书写,使用一个关键字,import。
import导入的是包中的类。
建议,不要写通配符*,需要用到包中的哪个类,就倒入哪个类。
eclipse,package不用你写,import也不用你写,全都是自动给你写好。按一个快捷键全都进来了。
建议定义包名不要重复,可以使用Url来完成定义,url是唯一的。