黑马程序员---包(package)笔记

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

 包(package)

对类文件进行分类管理。

给类提供多层命名空间。

写在程序文件的第一行。

类名的全称是 包名.类名。

包也是一种封装形式。

package packa; import packb.*;

class Demo1 {  public static void main(String[] args)  {   System.out.println("my class Demo1");   ShowDemo s = new ShowDemo();   s.show();  } }

package packb;

public class ShowDemo {  public void show()  {   System.out.println("ShowDemo run");  } }

E:\java1201>javac -d d:\myclass ShowDemo.java

E:\java1201>javac -d d:\myclass Demo1.java

E:\java1201>set classpath=d:\myclass

E:\java1201>java packa.Demo1

 

classpath

给jvm提供的一个环境变量。

指定类或者包所在的路径。

classpath变量值的最后有分号与无分号的区别。

思考:在开发时,分号是否需要呢?

 

包之间的访问

被访问的包中的类权限必须是public的。

类中的成员权限:public或者protected

protected是为其他包中的子类提供的一种权限

例程

 

四种权限

                public        protected        default(默认权限)    private

同一类中     ok                ok                    ok                             ok

同一包中     ok                ok                    ok

子类            ok                ok                  

不同包中     ok

 

package packc;

public class FuDemo {  protected void func()  {   System.out.println("Fushow func run");  } }

package packb; import packc.*;

public class ShowDemo extends FuDemo {  public void show()  {   System.out.println("ShowDemo run");   func();  } }

package packa; import packb.*;

class Demo1 {  public static void main(String[] args)  {   System.out.println("my class Demo1");   ShowDemo s = new ShowDemo();   s.show();  } }

  
  
包(package) - 油菜花 - 油菜地
 
比如packb中有两类,要在packa中全都建立对象访问,这两个类都需要public修饰,这时候是不行的。类前面加了public以后,类名必须与.java文件名保持一致。所以一个.java文件中不能存在两个或两个以上public类或者接口。需要在packb中分别存放成两个.java文件。

package packc;

public class FuDemo {  protected void func()  {   System.out.println("Fushow func run");  } }

package packb; import packc.*;

public class ShowDemo extends FuDemo {  public void show()  {   System.out.println("ShowDemo run");   func();  } }

package packb;

public class DemoC {  public void method()  {   System.out.println("DemoC");  } }

package packa; import packb.*;

class Demo1 {  public static void main(String[] args)  {   System.out.println("my class Demo1");   ShowDemo s = new ShowDemo();   s.show();   DemoC c = new DemoC();   c.method();

 } }

      
      
包(package) - 油菜花 - 油菜地
 

import

简化类名。

一个程序文件中只有一个package,可以有多个import。

用来导包中的类,不导入包中的包。

通常写import mypack.Demo;

而不写import mypack.*;为什么?

建议不要让包名重复,建议用URL来定义,因为URL是唯一的:

        package cn.itcast.demo

        package cn.itcast.test

        ......

 

Jar包

Java的压缩包

    方便项目的携带。

    方便于使用,只要在classpath设置jar路径即可。

            set classpath=d:\myclass\mypack.jar

            java packa.Demo1

    数据库驱动,SSH框架等都是以jar包体现的。

 

Jar包的操作

通过jar.exe工具对jar的操作。

    创建jar包

                jar -cvf mypack.jar packa packb

    查看jar包

                jar -tvf mypack.jar >定向文件

                        黑马程序员_包(package)笔记 - 油菜花 - 油菜地

 

    解压缩

                jar -xvf mypack.jar

    自定义jar包的清单文件

                jar -cvfm mypack.jar mf.txt packa packb

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值