java IDEA中包的使用 详解

举报
Cyan_RA9 发表于 2023/04/03 16:38:57 2023/04/03
【摘要】 关于IDEA中包的使用,新手向。

目录

 

前言 : 

一、什么是包?

二、包的作用 : 

三、IDEA创建包演示 : 

四、包的语法格式 : 

五、包的应用 : 

六、java中常用的包:

七、如何导入包?

        方式一 : 

        方式二 : 

八、注意事项 : 


前言 : 

        相信常用IDEA或者IDEA community来写java的小伙伴儿,对于package包肯定是不陌生了。所以,这篇博客主要是面向一些刚刚使用IDEA(比如说初学java)的人(即新手向)。

一、什么是包?

        所谓包,说白了就是文件夹或者目录,当我们创建了许多类时,就需要包来归类,可以将功能相似或相关的类放在同一包下,不同包下的类可以重名。所以,包的本质其实就是用以区别不同类的文件夹或目录。如下GIF图所示,在IDEA中创建的包,都可以在硬盘中找到对应的文件夹。

image.png

二、包的作用 : 

        1.可以对类进行分门别类的管理,把功能相似或相关联的类或接口放在同一包下,方便查看和使用。(其实java自带的许多类已经做了分包处理,如下GIF图所示 : )

image.png

        2.区别相同名字的类,同名的两个类可以放在不同的包下。当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。(如下GIF图所示,在不同包下创建了同名的Student类,但并没有引起报错。)

image.png

        3.限制访问权限,java默认的访问权限是在本包下,用到其他包下的类需要导包。 

三、IDEA创建包演示 : 

    image.png

        如上图所示,我们需要双击想创建新包的地方,依次点击new,Package,然后输入包名即可,创建多级包需要用" . "来隔开,需要注意的是,IDEA默认并不能直接创建显式的多级包,什么意思呢,如果你直接在空包下创建一个新包,两个包就会“叠”起来,如下图所示:

image.png

        而我们自然是希望达到这样的效果。       image.png

         这时,我们只需要先在test包下创建一个类,随便你怎么建,只要test包下不是空的了,你再去创建多级包就可以显式呈现出来。如下GIF图所示 : 

image.png

四、包的语法格式 : 

package 包名        ;

(多级包之间用. 隔开)

        事实上,当你创建一个包时,IDEA会自动将该语句写好。eg : 

image.png

五、包的应用 : 

         在同一个测试类中,可以用包名来区分两个同名但不同的类,有两种解决方案 : 

        1.两个类都不引入,都加前缀包名以作区分。

        2.引入其中一个类,另一个类加前缀包名以作区分。注意 : 不能同时引入两个类。  

        该解决方法同样适用于自定义类与java自带类出现重名的情况

六、java中常用的包:

1.java.lang包,lang包是java的一个基本包,应用很广,java默认引入,不需要再手动引入。

2.java.util包,util包是系统提供的工具包,含有许多常用的工具类,比如Scanner类,List类等等。

3.java.net包,net包是指网络包,主要用于网络开发。

4.java.awt包,awt包用于java的界面开发,如GUI相关。

5.java.io包,io包囊括了与javaIO流相关的许多类。

七、如何导入包?

        方式一 :

        import 包名.类名;        

        这是最常用的形式,表示只引入该包下的该类

        方式二 : 

        import 包名.*;        

        这中形式可以将某一个包下的全部类都引入,使用频率较低。

        当需要引入的类超过3~5种,且都是同一包下类时可以考虑使用此方式以使代码简洁,比如IO流相关,up在一篇讲解IO流基础的博文里,有一个代码演示便用了此方式。

八、注意事项 : 

        1.package关键字的作用是声明当前类所在的包,因此一个类中最多只有一个package语句,且必须放在类的最顶端

package knowledge.succeed;
import java.util.Scanner;
import java.io.*;
    //演示类,暂且无实际意义
public class Hua extends Child{
    public Hua() {
        super();
    }
    public Hua(String name, int age) {
        super(name, age);
        System.out.println("这是Hua类的有参构造");
    }
    public void hua() {
        System.out.println("花开花败总归尘。");
    }
}

image.gif

        例如以上代码,若将package语句放在了导包语句的下面,会报错,如下图所示。

image.png

        2.import关键字指令,要放在包声明后,类定义前。导包语句可以有多句且无顺序要求。如上面代码中,可以先引入Scanner类,亦可以先导入io包。

System.out.println("END---------------------------------------------------------------");

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。