第一 包
一、包概述:
java中的包就相当于系统中的文件夹。
当我们需要将各个类分门别类的存放的时候,或者含有不同功能的相同类名的时候,需要用到包(package)。包可以将相关的类放在一起,并可以将两个或多个相同文件名的文件放在不同包中。
二、包的作用:
1、为避免多个类重名的情况,如果出现两个相同名字的类,可通过包将两者区分,从而避免冲突
2、对类文件进行分类管理,可以将相关的一些类放在同一个包中。
3、给类提供多层命名空间
三、规则:
1、写在程序的第一行,因为是包下的类,先有包了,才能将类放进去。
2、类名的全称:包名.类名
3、包是一种封装形式,是java封装性的体现。
四、包与包之间的访问:
1、要访问其他包中的类,需要定义类名的全名:包名.类名
2、如果包不再当前目录下,需要设置classpath,告知虚拟机包的执行路径
3、有了包,范围变大,一个包中的类要被访问,必须有足够大的权限。
注:
a.包与包间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
b.不同包中的子类还可直接访问父类中被protected权限修饰的成员。包与包间可使用的权限有两种:public和protected。
c.其中protected只用于覆盖。
package packa;
public class DemoA //extends packb.DemoB
{
public void show()
{
System.out.println("demoa show run");
}
}
package packb;
public class DemoB
{
protected /*保护*/ void method()
{
System.out.println("demoB method run");
}
}
package packb.haha.hehe.heihei;
public class DemoC
{
public void method(){}
}
五、Java中各个主要包的作用(javax开头的都是扩展包)
java.util是JAVA的utility工具包,包含一些使用工具类,如定义系统特性、使用与日期日历相关的函数等的类
java.lang是JAVA的language核心语言包;如String、Math、Integer、System、Thread,提供常用的功能。特殊之处是不需要导入,是作为默认导入的包。
java.awt是JAVA的abstractwindow toolkit,抽象窗口工具包;包含了构成抽象窗口共具体的多个类,这些类用于构建和管理应用程序的图形用户(GUI)。
java.applet是创建APPLET的必须包;包含applet运行时所需要的一些类。
java.net是JAVA有关网络操作的包。
java.io是JAVA的输入输出流的包。
java.sql是JAVA的数据库操作包。
javax.swing是新的界面包。
第二 导入
1、为了简化类名的书写,使用import导入
如:import packa.packb.packc.*; 是将包packa下的包packb下的包packc下的所有类导入进来。
注:如果需要packb下还有类需要导入,则还需在导入,
如: import packa.packb.*;
2、注意事项:
a.两个包中有相同类名文件,当再统一类中创建对象时,需要加上包名.类名创建。
b.建议定义包名不要重复,可以使用URL来定义,因为URL是唯一的。
如:www.itcast.com---->package cn.itcast.Demo以及cn.itcast.Test
packa.DemoA d = new packa.DemoA();
package pack;
import packa.*;
class JarDemo
{
public static void main(String[] args)
{
DemoA a = new DemoA();
a.show();
System.out.println("Hello jar pack!");
}
}