您的位置:首页 > 职场人生

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

2014-01-14 10:34 92 查看
----------------------
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();
 }
}



 
比如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();
 }
}

 

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 >定向文件

                       


 

    解压缩

                jar -xvf mypack.jar

    自定义jar包的清单文件

                jar -cvfm mypack.jar mf.txt packa packb

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

详细请查看:http://edu.csdn.net
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: