• java中的import和package机制


    最近学了点java基础,在遇到import和package部分时看了几遍视频,还是有点糊涂,今天亲自做了一下实验,恍然大悟,下面分享给大家:

    java的package的作用类似于c++的namespace的作用,防止名字相同的类产生冲突,这不是我们想要的。看一下package的使用。

    我在路径为E:\java\testpackage\下写一个cat.java文件如下:

    package com.cxue;
    public class Cat {
    
    
    }

    编译通过下面我们在相同的目录下写一个Dog类来掉用Cat类如下:

    public class Dog {
      public static void main(String[] args) {
      
        Cat c = new Cat();
      }
        
    }

    我们编译出现了下面的错误:

    虽然我们把两个类放到了一起但不能直接访问了,为什么呢,就像两个不错的哥们,之前没有package的时候相当于”默认是可以在一起混的“,要打算用他的东西,直接用new做一个就行了,用了package就不一样了,打上标签,就像我们现实生活中毕业了,各分两地,再没有任何通信方式的情况下我们只能去他指定的城市去找他(尽管我们在一个城市,因为我们“没有联系”不知道,就像我们现在这种情况在一个相同的文件夹下,即使在一起),告诉他我要用一下你的某些东西,我们才能new制作一个才行呀。

    看样子我只能给放到标签的位置(当前目录com下cxue里),我们在进行编译

    还是出了问题,这是因为我们在使用Cat类时还采用原来的方式,打上标签了就要换种方式,就像我要找到哥们必须要比之前在一起时费点事,我改变为下面的方式:

    public class Dog {
      public static void main(String[] args) {
      
        com.cxue.Cat c = new com.cxue.Cat();
      }
        
    }

    编译通过如下:

    但这样太麻烦了,不如我们提前告诉人家一声,以后就直接用,顺其自然import排上用场了。

    再次修改代码如下:

    import com.cxue.*;
    public class Dog {
      public static void main(String[] args) {
      
        Cat c = new Cat();
      }
        
    }

    编译通过。

    完毕:

  • 相关阅读:
    [LeetCode] Word Break 解题思路
    [LeetCode] Longest Valid Parentheses 解题思路
    [LeetCode] Largest Rectangle in Histogram 解题思路
    新博客
    正在学习的Angularjs包裹的插件
    Markdown
    Markdown 基础
    Angular docs
    npm-link
    webpack-hot-middleware 用于 livereload
  • 原文地址:https://www.cnblogs.com/onlycxue/p/3020729.html
Copyright © 2020-2023  润新知