zoukankan      html  css  js  c++  java
  • Java package和import语句

    Java中的package和import语句


    • 如果你想让其他人访问你的类,你一定要把你写的类放到正确的子目录下。
    • 在Java里,对于位于包中的类是这样管理的:
    • Java编译器把包对应于文件系统的目录管理,package语句中用 "."来指明包(目录)的层次。比如:
    package com.sxt;
        //该文件中所有的类位于.comsxt目录下
    
    • 两个小程序来验证这个过程
    //先定义一个类Cat
    package com.bjsxt.java140;
    
    public class Cat
    {
        
    }
    
    • 现在我们新建一个类用来使用这个Cat类
    public class Dog
    {
        public static void main(String args[])
        {
            Cat c = new Cat();
        }
    }
    
    • 在编译Dog.java时会发现:如果Cat.class不在规定的目录下。编译器会报错:确认Cat这个累是否在正确的目录下。

    • 我们把Cat.class放到package语句规定的目录下:编译器还是会报相同的错误,因为从JDK1.5之后有可能Cat的源文件也会产生影响,我们把Cat.java删掉。

    • 删掉源文件之后我们再次编译:编译器还是会报错:不能解析Cat这个符号。因为我们语句中写的是Cat c = new Cat();

    • 这代表Cat是一个裸体类,我们要把他的名字写全:com.bjsxt.java140.Cat c = new com.bjsxt.java140.Cat;

    • 这样子就可以通过编译啦!

    • 总结一下:package写在第一句,编译出来的class文件必须在正确的目录下(和包的层次完全一致),在另外一个文件中使用时名字要写全。

    • 但是话说回来:我们每次使用Cat这个类时都要写那么长一句话会不会很繁琐?

    • 解决方法:我们可以在程序开始前用import语句来引入这个类

    import com.bjsxt.java140.Cat;    //引入之前写过的Cat类
    public class Dog
    {
        public static void main(String args[])
        {
            Cat c = new Cat();       //编译器就会认识这个类啦
        }
    }
    
    • 还可以写成
    import com.bjsxt.java140.*;     //代表把这个目录下的类全部引入
    
  • 相关阅读:
    编译原理笔记 2
    编译原理笔记 1
    初步学习计算机图形学 [闫令琪]
    复杂 Web 前端的设计
    使用 GitHub Actions 部署 .Net 5 程序
    ES 2020 Optional Chain (可选链)
    2020 Web 前端学习记录
    WPF TreeView 支持多选
    linux (CentOS 7)报错:yum 命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”
    node.js 报错
  • 原文地址:https://www.cnblogs.com/031602523liu/p/7830234.html
Copyright © 2011-2022 走看看