基本结构篇(JavaSE - 包)(持续更新迭代)

目录

一、什么是包

二、包的三大作用

三、使用包的方式

1. 包的基本语法

2. 使用包中的类

四、包的命名规则和规范

五、演示示例

六、特殊情况

七、类的导入

八、import java 和 javax 有什么区别

九、常见的包


一、什么是包

包(package)就是java中打包好的一个文件夹,里面有很多可以使用的类。

简单来说,包就就是用来分门别类的管理各种不同类的, 类似于文件夹、建包利于程序的管理和维护。

例如:ArrayList是放在java.util这个包中,顾名思义,java.util包中放了很多工具类。

使用java API的类是很简单的,把它当作是自己写的去用就行了。

唯一的区别就是,需要在程序的某个地方指明函数库类的完整名称,即包的名称+类的名称。

例如:java.util.ArrayList(这个才是ArrayList的完整名字)。

说白了,包就是文件夹,类就是文件夹里面的文件。

同一个包中的类可以互相访问,不用import。

二、包的三大作用

  • 区分相同名字的类。同一个文件夹下不能出现同名的文件,因此把两个同名的类分别放在两个包中,就相当于是放在两个文件夹中。
  • 当类很多时,可以方便的管理类。
  • 控制访问范围。

三、使用包的方式

1. 包的基本语法

相同包下的类可以直接访问, 不同包下的类必须导包,才可以使用

导包格式:import 包名.类名;

假如一个类中需要用到不同类m, 而这个两个类的名称是一样的, 那么默认只能导入一个类, 另一个类要带包名访问

package是关键字,表示打包;后面的是包名。

package java.util

2. 使用包中的类

以ArrayList类为例,如果想要使用java.util中的ArrayList类,有两种方式:

  • 使用import,即放一个import语句在文件的最前面:
import java.util.ArrayList   //只引入java.util包中的ArrayList类;一般建议用这个,用哪个类就导入哪个
import java.util   //引入java.util包中的所有类
  • 直接在程序中打出ArrayList的全名,不管在哪里,只要使用了就打出全名。
//声明的时候
java.util.ArrayList<Dog> list = new java.util.ArrayList<Dog>();
//用在参数的时候
public void go(java.util.ArrayList<Dog> list){}
//用作返回类型的时候
public java.util.ArrayList<Dog> foo(){}

Tips:

除非是来自java.lang这个包。使用该包中的类不需要指定全名,其他的包全都需要。

像经常使用的System(System.out.println)、String和Math(Math.Random())都是属于java.lang这个

包。

另外,object类也是属于java.lang包的。

为什么java.lang不需要指定全名呢?java能找到吗?

答案是可以的,因为java.lang是一个预先被引用的包。它是一个经常被用到的基础包,所以可以不

用指定名称。

并且java.lang包中的类,例如:java.lang.String和java.lang.System是独一无二的class,java知道

要去哪里找。

四、包的命名规则和规范

命名规则:

只能包含数字、字母、下划线和“.”,但是不能用数字开头,不能是关键字。

demo.class.ex1   //错误的!因为class是关键字
demo.12a.ex1   //错误的!因为12a是数字开头
demo.a12.ex1   //正确的!

命名规范:

一般都是小写字母+“.”。普遍的命名方式都是:com.公司名.项目名.业务模块名

eg:

com.sina.crm.user   //用户模块
com.sina.crm.order   //订单模块
com.sina.crm.utils   //工具类

五、演示示例

普通方式导入一个类

import com.zheng.oop.oop2.demo1.Student;

静态导入导入另一个类的静态成员

import static com.zheng.oop.oop2.demo1.Student.aaa;
import static com.zheng.oop.oop2.demo1.Student.bbb;

通配符导入 类下所有的静态成员  静态成员变量和静态成员方法

import static com.zheng.oop.oop2.demo1.Student.*;

六、特殊情况

开发中,可以直接使用java.lang包下的类,因为java.lang包下的所有类, 系统会自动导入,无需手动导入

七、类的导入

一个类可以使用所属包中的所有类,以及其他包中的公共类(public class)。

我们可以采用两种方式访问另一个包中的公共类。

第一种方式就是使用完全限定名(fully qualified name);就是包名后面跟着类名。

例如:java.time.LocalDate today = java.time.LocalDate.now();

这显然很烦琐,更简单且更常用的方式是使用import语句。

import语句是一种引用包中各个类的简捷方式。

一旦使用了import语句,在使用类时,就不必写出类的全名了,如上已经简介。

可以使用 import 语句导入一个特定的类或者整个包。

import 语句应该位于源文件的顶部,但位于 package 语句的后面。

例如,可以使用下面这条语句导人 java.util 包中的所有类:import java.util.*;

八、import java 和 javax 有什么区别

刚开始的时候 JavaAPI 所必需的包是 java 开头的包,javax 当时只是扩展 API 包来说使用。

然而随着时间的推移,javax 逐渐的扩展成为 Java API 的组 成部分。

但是,将扩展从 javax 包移动到 java 包将是太麻烦了,最终会破坏 一堆现有的代码。

因此,最终决定 javax 包将成为标准 API 的一部分。

所以,实际上 java 和 javax 没有区别。这都是一个名字。

九、常见的包

  • java.lang //lang包是基础包,默认引入,不需要再引入
  • java.util //util包是系统提供的工具包,里面有很多工具类
  • java.net //网络包,用于网络开发的
  • java.awt //是做java的界面开发,GUI

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wclass-zhengge

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值