Java——包机制(package、import)

包机制是Java中管理类的重要手段。开发中我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。包对于类,相当于文件夹对于文件的作用。

package

我们通过package实现对类的管理,package的使用有两个要点:

1.通常是类的第一句非注释行语句

2.包名:域名倒着写即可,再加上模块名,便于内部管理类

java 复制代码
com.sun.test;
com.oracle.test;
cn.xiaogougou.guai.test;
cn.xiaogougou.guai.view;
cn.xiaogougou.guai.view.model;

注意事项:

  • 写项目时都要加包,不要使用默认包。
  • com.gougou和com.gougou.car,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。

package使用的示例代码

java 复制代码
package cn.dog;
public calss Test{
    public static void main(String[]args){
        System.out.println("youseeseeyouonedayday");
        }
}

JDK中的主要包

|-----------|-------------------------------------------------------------------------|
| Java中的常用包 | 说明 |
| java.lang | 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用抽象功能 |
| java.awt | 包含了构成抽象窗口工具集(abstract window tooklists)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI) |
| java.net | 包含执行与网络相关的操作的类 |
| java.io | 包含能提供多种输入/输出功能的类 |
| java.util | 包含一些实用工具类,如定义系统特性、使用与日历日期相关的函数 |

导入类import

如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。

注意 :

  • Java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。
  • 如果导入两个同名的类,只能用包名+类名来显示调用相关类:

java.util.Date date =new java.util .Date();

导入同名类的处理的示例代码

java 复制代码
import java.sql.Date;
import java.util.*;//导入该包下的所有类。会降低编译速度,但不会降低运行速度
public class Test{
    public static void main(String[]args){
        //此指Java.sql.Date
        Date now;
        //java.util.Date因为和java.sql.Date类同名,需要完整路径
        java.util.Date now2=new java.util.Date();
        System.out.println(now2);
        //java.util包的非同名类不需要完整路径
        Scanner input=new Scanner(System.in);
    }
}

静态导入

静态导入(static import) 是在JDK1.5新增的功能,其作用是用于导入指定类的静态属性和静态方法,这样我们可以直接使用静态类和静态方法。

静态导入的使用的示例代码

java 复制代码
package cn.dog;
//以下两种静态导入的方式二选一即可
import static java.lang.Math.*;//导入Math类的所有静态属性
import static java.lang.Math.PI;//导入Math类的PI属性

public class Test2{
    public static void main (String[]args){
        System.out.println(PI);
        System.out.println(random());
    }
}
相关推荐
后台模板学习7 分钟前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang
西瓜拿铁好喝11 分钟前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库
学长毕设13 分钟前
基于SpringBoot的校园礼服租赁系统的设计与实现
java·spring boot·后端
明天也要努力学习19 分钟前
深入理解 JVM 垃圾回收(GC)
java·jvm
xiaoye-duck22 分钟前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(上):初始化和全量响应
开发语言·网络·c++·语言模型
golang学习记26 分钟前
IDEA 断点调试技巧:拖拽
java·ide·intellij-idea
fpcc27 分钟前
跟我学c++中级篇—streambuf在glog中的应用分析
开发语言·c++
Sayai28 分钟前
Flink 日志解析任务性能优化实战:正则/Grok 预编译、Guava 缓存权重陷阱与 ES 写入隔离
java·大数据·性能优化·flink·实时计算
吾与谁归in29 分钟前
C#脚本工具,支持智能提示自动补全(WPF + Roslyn + AvalonEdit)
开发语言·c#·wpf
计算机毕设定制辅导-无忧学长30 分钟前
《基于物品协同过滤的闲置书换购微信小程序设计开发》
java·vue.js·spring boot·微信小程序·uniapp·闲置书换购微信小程序·物品协同过滤算法