《黑马程序员》java笔记->【03.3.0】包的基本使用

------- <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包中

*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值