zoukankan      html  css  js  c++  java
  • 对程序进行package封装

    一、package包

        格式:package 代码必须写在源代码文件的第一句, 约定俗成使用公司域名的倒写,之后再加其他。
            for example: package cn.chuanzhiboke.test1;

        注意: 如果你的一个Java文件放在了包中,其编译的.class文件就必须放在正确的路径下面(就是其包名对应的目录路径),而且如果在其他类中要调用这个类
            就要在类名前加上其包名。

    二、import语句

        格式: 在源文件中放在 package 语句的下面, 格式实例:
          import cn.chuanzhiboke.test1.**class 表示引入包内的 **class文件。
          import cn.chuanzhiboke.test1.* 表示引入包内的所有的class文件。

        作用:在一个文件中引入了某个包过后,其它包中的程序再要调用这个包中的类文件时,不用在类名前加上包名。


        示例:
        文件1: package cn.chuanzhibike.test1;
            public class Cat
            {

            }

        文件2: //import cn.chuanzhiboke.test1.Cat.class ;
            public class Dog
            {
              public static void main(String []args)
              {
                cn.chuanzhiboke.test1.Cat c = new cn.chuanzhiboke.test1.Cat();
                // Cat c = new Cat();
              }
            }

        其中, 文件1中的.class文件必须放在cn/chuanzhiboke/test1目录下,
          而且其要被调用的类文件必须是 public权限的(其中要被调用的方法也必须是public的)。

        而cn的父目录要在classpath环境变量下, 如果想要直接运行Cat.class文件, 在dos命令行中输入包名加类名。
            D:java>java   cn/chuanzhiboke/test1/Cat

        总结: 如果将一个类放在包中,第一句必须写package,编译文件放于正确的路径下:与包名一直的文件夹路径下。
            另一个包中的类如果要调用这个类就必须将包名写全,或者导入包名。

        但是:   访问同一个包中的类不用引入,
            class文件的最上层包的父目录必须在classpath下。
            执行一个class需要写全名。


    三、jar包:

        JDK中会提供许多包:安装目录下/jre/lib/rt.jar
          其中有许多包:
          而在Java.lang中的包使用时无需引入, 其他包使用之前也要引入。

        自己创建jar包: 在包名的父目录下使用 jar 命令。
          >jar -cvf test.jar 文件名、文件夹名(可写多个)
          >jar -cvf test.jar . 表示将该目录下的所有文件压缩进包中。

        可以将jar包名存进 classpath 目录下,就可以直接

    四、StaticImport 静态导入。

           jdk1.5 出现的新特性。


          为了能够使用其他的包中的类,我们可以导入这个类:
            如: import java.util.*; :导入了java.util包中的所有类。

          接触相同的原理,我们要使用其他的类中的静态成员时,可以静态导入这个类中的静态成员。
            如: import static java.util.Collections.* ; :导入了Collections中的所有静态成员。
               import static java.util.Arrays.*; :导入了Arrays中所有的静态成员。
               import static Java.lang.System.*: : 导入了System中的所有静态成员。

          好处: 再使用上述类中的导入后,使用这些类的静态成员时可以不用写类名

            如: Collections.sort(List<T> list) 可以写为: sort(List<T> list);
               Arrays.deepEequals(O[] o1, O[] o2); 可以写为 : deepEquals(O[] o1, O[] o2);
               System.out.println(); 可以写为: out.println();

          注意: 前面学过,在包导入中,如果两个包中有相同名字的类,实例化该类的时候,必须指明包名。
              同理,在类的静态导入之后,如果方法或成员重名时,应当指明方法所属的对象或者类名,
              否则,系统按照就近原则查找。

  • 相关阅读:
    48、C++ Primer 4th 笔记,句柄类,继承,虚函数等的一个综合例子(未完)
    79、在linux的man手册当中,man(1)是什么意思?
    ASP.NET2.0 ObjectDataSource的使用详解(1)
    ndts 一个使用不多重要命令
    ASP.NET2.0 ObjectDataSource的使用详解(2)
    使用自定义参数
    一步一步学习ObjectDataSource--(3)
    ASP.NET2.0快速入门--绑定到对象板(后来才发现,忘了)
    关于URL路径的基本使用
    ASP.NET2.0 快速入门 使用主题对站点进行自定义
  • 原文地址:https://www.cnblogs.com/soficircle/p/6636652.html
Copyright © 2011-2022 走看看