关键词搜索

源码搜索 ×
×

(Java)包的概念及使用

发布2020-01-15浏览2099次

详情内容

一、包的基本概念

当有多个开发人员共同开发同一个项目,肯定会出现类名称相同的情况,这样一来就会比较麻烦
在这里插入图片描述
此时可以利用 package 关键字来解决此问题。

package 是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入 package 关键字即可:

package 包名称.子包名称
    package org.lxh.test;
    class Demo{
        public String getInfo(){
            return "Hello World !!!";
        }
    }
    public class Test{
        public static void main(String[] args) {
            System.out.println(new Demo().getInfo());
        }
    }
    
    
      2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    此时编译时需要加上相应参数:
    在这里插入图片描述

    -d --- 表示生成目录,生成的目录以 package 的定义为准
    . --- 表示在当前所在文件夹中生成
    
      2

    在这里插入图片描述
    执行完以上命令后,会自动生成相应的文件夹(包),之后再执行类时就必须输入完整的“包.类名称”,执行语法:
    在这里插入图片描述
    程序的运行结果与之前并没有什么不同,加入包只是让类的管理更加方便

    二、import 语句

    如果几个类存放在不同的包中,在使用类时就必须通过 import 语句导入,
    import 的语法格式:

    import 包名称.子包名称.类名称;//手工导入所需要的类
    import 包名称.子包名称.*;//由JVM自动加载所需要的类
    
      2

    定义 org.lxh.test 目录下的 Demo1.java
    在这里插入图片描述
    此处的 Demo1 必须设置为 public,这样 Test 才能对其进行访问,也就是说如果一个类要被外包访问,则此类一定要定义成 public class

    import org.lxh.test.Demo1;//引用 Demo1 类
    
    public class Test{
        public static void main(String[] args) {
            System.out.println(new Demo1().getInfo());
        }
    }
    
    
      2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果在一个类中导入一个包中多个类时,一个个地导入会比较麻烦,可以使用导入“*” 的方式由 JVM 根据需要自己加载的类。

    import org.lxh.test.*
    

      但是当一个程序中同时导入了两个包的同名类,使用时就必须明确地写出完整的“包.类名称”

      import org.lxh.demo.a.*;//包中存在Demo类
      import org.lxh.demo.c.*;//包中存在Demo类
      public class Test{
      	public static void main(String[] args){
      		org.lxh.demo.a.Demo d = new org.lxh.demo.a.Demo();
      		System.out.println(d.getInfo());
      	}
      }
      
        2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      三、系统常见包

      在这里插入图片描述
      在这里插入图片描述

      四、Java 新特性 – 静态导入

      如果一个类中的方法全部是使用 static 声明的静态方法,则在导入时就可以直接使用 import static 的方式导入:

      import static..*
      

        定义一个类,全部由静态方法组成:

        package org.lxh.test;
        
        public class Demo1{
            public static  int add(int i,int j){
                return i+j;
            }
            public static int sub(int i,int j){
                return i-j;
            }
            public static int mul(int i,int j){
                return i*j;
            }
        }
        
          2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13

        使用静态导入:

        import static org.lxh.test.Demo1.*;//静态导入
        
        public class Test{
            public static void main(String[] args) {
                System.out.println("3+3 = " + add(3,3));
                System.out.println("3-3 = " + sub(3,3));
            }
        }
        
          2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8

        由于程序中使用了静态导入,所以Demo1 类中的所有静态方法可以直接在 Test 类中使用,而 不需要使用 “类.静态方法()” 的形式使用

        相关技术文章

        点击QQ咨询
        开通会员
        返回顶部
        ×
        微信扫码支付
        微信扫码支付
        确定支付下载
        请使用微信描二维码支付
        ×

        提示信息

        ×

        选择支付方式

        • 微信支付
        • 支付宝付款
        确定支付下载