JAVA 包与包之间访问(package)

//仅作为学习笔记

一、包的用处

  • 对类文件进行分类管理。
  • 给类提供多层命名空间。
  • 写在程序文件的第一行。
  • 类名的全称的是  :包名.类名。
  • 包也是一种封装形式。

[java]  view plain  copy
  1. package cn.itstu;  
  2. class PackageDemo  
  3. {      
  4.     /* 
  5.     用javac -d . PackageDemo.java  在当前目录下自动生成包的文件夹 
  6.     【javac -d c:\ PackageDemo.java】在指定目录C盘下自动生成包的文件夹 
  7.     注意:运行.class的文件时正确的类名是:java cn.itstu.PackageDemo 
  8.     */  
  9.     public static void main(String args[])  
  10.     {  
  11.         System.out.println("hello package!!");  
  12.     }  
  13. }  

二、包与包之间的访问
[java]  view plain  copy
  1. package cn.itstu;  
  2. class PackageDemo  
  3. {      
  4.     /* 
  5.       将源文件编译打包到C:\myclass 文件夹下 
  6.     */  
  7.     public static void main(String args[])  
  8.     {     
  9.         /* cmd输入命令 
  10.          1.javac -d c:\myclass DemoA.java 
  11.          2.set classpath=c:\myclass 
  12.          3.javac -d c:\myclass PackageDemo.java 
  13.          4.java cn.itstu.PackageDemo 
  14.         */  
  15.         packa.DemoA d=new packa.DemoA();  
  16.         d.show();  
  17.   
  18.         //packb.DemoB b=new packb.DemoB();   
  19.         //b.method();  error 访问权限不够  
  20.     }  
  21. }  



[java]  view plain  copy
  1. package packa;  
  2. public class DemoA extends packb.DemoB //类的权限必须是public  
  3. {  
  4.       
  5.         public void show()//方法的权限也必须是public  
  6.         {  
  7.             System.out.println("demoa show run");  
  8.             method();  
  9.         }  
  10.       
  11. }  

[java]  view plain  copy
  1. package packb;  
  2. public class DemoB   
  3. {  
  4.   /* public */ protected void method()  
  5.     {  
  6.        System.out.println("demob method run");  
  7.     }  
  8.   
  9.     /*当method方法被public修饰,可以被其子类DemoA访问, 
  10.     也可以被其他包的类访问,但是当method方法被protected 
  11.     修饰,method方法只能被其子类访问。 
  12.     */  
  13. }  
结论:
  1. 包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
  2. 不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
  3. 包与包之间可以使用的权限只有两种,public  protected。
               public       protected      default         private
同一类中    OK             OK                OK                 OK
同一包中    OK             OK                OK                 NO
子类            OK             OK                NO                 NO
其他类中    OK             NO                NO                 NO

三、导包 import
通过import我们可以简化类名的书写。
包名我们一般用url,因为url具有唯一性。如: package com.qq.demo;
 导包:import com.qq.demo.*;  //*是通配符,表示导入com.qq.demo包下的所有类,开发中推荐使用导入具体类名,需要哪个类导入哪个,可以节省内存开销,如:
import com.qq.demo.ClassA;

注意:我们导入两个包 import packa.*;   import packb.*;  如果这两个包中有相同的类classA存在,我们在使用类的时候必须指明使用哪个包下的该类
如  :packa.ClassA  a=new packa.ClassA();
       packb.ClassA  b=new packb.ClassA();


四、jar包

  • Java的压缩包
  • 方便项目的携带。
  • 方便于使用,只要在classpath设置jar路径即可。
  • 数据库驱动,SSH框架等都是以jar包体现的。
通过jar.exe工具对jar的操作。
• 创建jar包           jar  -cvf  mypack.jar  packa packb
• 查看jar包           jar  -tvf  mypack.jar   [>定向文件]               如:jar  -tvf  mypack.jar  >c:\1.txt
• 解压缩               jar  -xvf  mypack.jar
• 自定义jar包的清单文件         jar –cvfm  mypack.jar  mf.txt  packa packb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值