『JavaSE』包

本篇博客主要介绍Java的包的相关知识。包的导入、包的创建和包权限等。


包(package)是组织类的一种方式
包的作用

  • 把具有一定关联的类,放到同一个目录中。更好的组织代码
  • 同名类放到不同的包中,包就起到了类似于C++中命名空间的作用

导入包中的类


  • Java中已经提供了很多现成的类供我们使用。例如:
    在这里插入图片描述
    在这里插入图片描述
    可以看到我们可以使用java.util.Arrays这样的方式来使用java.util包中的Arrays类,但是这种写法比较麻烦
  • 我们还可以使用import语句来导入包
    在这里插入图片描述
    在这里插入图片描述
  • 如果想要使用java.util包中类,我们可以使用import java.util.*
    在这里插入图片描述
    在这里插入图片描述
    但是不推荐使用这种方式,很容易出现冲突的情况更推荐显示指定要导入的类名
    我们来看一下冲突的情况
    在这里插入图片描述
    java.util包和java.sql包中都有Date类,我们编译运行来看一下
    在这里插入图片描述
    这种情况下需要使用完整的类名
    在这里插入图片描述
  • 静态导入使用import static可以导入包中静态的方法和字段,可以直接导入到方法和字段的级别
    在这里插入图片描述
    在这里插入图片描述
    注意:①方法必须是静态。②如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用必须加前缀。由此可见,import static的意义不大一般不用。但是要能看懂

注意import和C++的#include差别很大C++必须使用#include来引入其他文件内容(会将头文件中的所有内容直接拷贝过来),但是Java不需要。import只是为了写代码的时候更方便。import更类似于C++的namespace和using

将类放到包中


类放到包中的规则基本如下

  • 文件的最上方加上一个package语句指定该代码在哪个包中
  • 包名需要尽量指定成唯一的名字通常会用公司的域名的点到形式(例如:com.baidu);
  • 包名要和代码路径相匹配,例如创建com.baidu的包,那么会对应创建一个对应的路径com/baidu来存储代码
  • 如果一个类没有package语句,则该类被放到一个匿名包中,所有的匿名包是同一个包

操作步骤

  • 右键src -> 新建 -> 包
    在这里插入图片描述
  • 输入包名
    在这里插入图片描述
  • 右键包名 -> 新建 -> Java类
    在这里插入图片描述
  • 输入类名
    在这里插入图片描述
  • 我们看一下工程中的结构和实际目录中的结构
    在这里插入图片描述
    在这里插入图片描述
  • 运行结果如下
    在这里插入图片描述

包的访问控制权限


  • 我们已经了解了类中的public和private权限。private成员只能被类的内部使用,public成员可以在任意处被使用。
  • 如果一个成员不包含访问控制权限关键字(public、private等)。则认为这个成员具有包访问权限。
  • 具有包访问权限的成员只能在当前类和同一个包的类中使用

下面来看一个例子

  • 我们在com.sss包中创建两个类,一个Num类和一个Test类;我们在Num类中创建一个包访问权限的变量,然后在Test类的main方法中实例化一个Num类的对象n,然后直接去访问对象n中的包访问权限的变量
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

常见的系统包

  • java.lang
    在这里插入图片描述
    提供常用的基础类(String、Object等),此包从JDK1.1之后自动导入
  • java.lang.reflect
    在这里插入图片描述
    Java反射编程包
  • java.net
    在这里插入图片描述
    进行网络编程的开发包
  • java.sql
    在这里插入图片描述
    进行数据库开发的支持包
  • java.util
    在这里插入图片描述
    Java提供的工具程序包,非常重要
  • java.io
    在这里插入图片描述
    I/O编程开发包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值