------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
/**
之前没有定义包,是因为默认当前目录为包路径
包的基本使用:
1,
定义包用关键字package 包名都是小写字母组成 : package 包名;
包的作用:
1,对类进行分类管理。
2,对类提供了多层名称空间
包的体现形式就是文件夹
包名.类名 ,才是类的全名称
------------------------------------
*/
package nc.mypack;
class Demo48
{
public static void main(String[] args)
{
System.out.println(" ");
}
}
/**
----------------------------
假如Demo48.java放在F:\myjava下
创建nc.mypack包放在D:\package目录下(必须存在D:\package目录)步骤如下:
创建包
cmd ->
1 f:
2 cd myjava
3 javac -d D:\package Demo48.java
运行
1 d:
2 cd package
3 set classpath=d:\package
set classpath=.;%classpath%
4 java nc.mypack.Demo48
---------------------------------------
包与包之间的访问
1,被访问的包中的类以及类中的成员必须被public 修饰
2,当包与包之间的类存在着继承时,父类给不同包的子类提供了一个特殊的访问权限,
保护权限protected
3,不同包之间有两种权限可以用
public,protected(局限性,只给不同包的子类提供使用 )
public proteceted default(什么都不写的默认权限) private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类 ok ok
不同包中 ok
------------------------------------------
问题:有了包,类名变得很长,写起来非常麻烦。
解决办法:通过一个关键字来完成 import:导入
(不需要导包就用:包名.类名)
import的出现,是为了简化类名的书写。
----------------------
package mypack;
import packa.DemoA;//将packa包中的DemoA类导入此包中,在调用的时候不用写包名.类名
import packa.DemoB;
/*
如果用到一个包中的多个类,可以使用通配符:*
packa包中有多个类,都要导入,就可以用通配符:*
记住:实际开发中,建议,用到哪个类,就导入哪个类,尽量不用通配符*;
如果有多个类,也不用通配符,import 包.需要导入的类 挨个导入。
ctrl+shift+o 快捷导入所有的类,有多少个导入多少个,最好用什么导入什么
导入类的注意事项:
packa\DemoA.class
\abc\HaHa.class
import pack.*//表示将packa目录下当前所有class类。不包括子包abc中的HaHa.class
如果要用到HaHa.class
需要这样倒入:
import packa.abc.HaHa;导入abac子包中的HaHa类。
当两个不同的包中出现了同名的类时,一定要用包名进行区分。
使用时,一定要写全类名: 包名.类名
*/
import packa.*;
class Demo
{
public static void main(String[] args)
{
/*
DemoA类在packa包中,所以调用的时候要写包名.类名
packa.DemoA a=new packa.DemoA();
*/
DemoA a=new DemoA();//因为已经导入DemoA所属的包packa import packa.DemoA
a.show();
/**
//DemoB类在packa包中,所以调用的时候也要写包名.类名
packa.DemoB b=new packa.DemoB();
*/
//同上,已导入packa包 import packa.DemoB
DemoB b=new DemoB();
b.method();
}
}
// javac -d . packa DemoA.java //编译DemoA.java将class文件放入packa包中
// javac -d . packa DemoB.java //编译DemoB.java将class文件放入packa包中
// javac -d . mypack Demo.java //编译Demo.java将clss文件放入mypack包中
*/