广告
返回顶部
首页 > 资讯 > 后端开发 > Python >深入理解Java中包的定义与使用
  • 650
分享到

深入理解Java中包的定义与使用

2024-04-02 19:04:59 650人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录包是什么?包的作用导入包中的类自定义包包的访问权限控制包是什么? 在开发过程中,会定义很多类,随着类越写越多,难免会出现类重名而发生覆盖的情况,为了在使用它们的时候不让编译器混淆

包是什么?

开发过程中,会定义很多类,随着类越写越多,难免会出现类重名而发生覆盖的情况,为了在使用它们的时候不让编译器混淆,我们给类加上一个限定 (前缀),把所有java程序保存在各自的目录里面,而该目录就是包,包的本质实际上就是一个文件夹
即:把它们放在不同的包里面,调用时再加上前缀即可;这样好处是对同名的类进行了区分;能精确指出我们需要的哪一个;让同名的类在一个程序中可以共存

在Java中,包是对类、接口等的封装机制的体现,是一种对类或接口等的很好的组织方式

包的作用

在同一个工程中允许存在相同名称的类,只要处在不同的包中即可
避免了类型之间命名冲突:包作为一种封装,给类提供多层命名空间

导入包中的类

以导入时间戳为例:

方法1 使用类的全路径


public class PackageTest {
    public static void main(String[] args) {
        java.util.Date time = new java.util.Date();
        System.out.println(time.getTime());
        
        java.util.Date time2 = new java.util.Date();
        System.out.println(time2.getTime());
    }
}

优点:一定不会发生冲突
缺点:使用麻烦,每 new 一个对象都需要

方法2 导入包

可直接使用 import java.util.*,导入util 里的所有类


import java.util.Date;

public class PackageTest {
    public static void main(String[] args) {
        Date time3 = new Date();
        System.out.println(time3.getTime());
        Date time4 = new Date();
        System.out.println(time4.getTime());
    }
}

举例:

在这里插入图片描述

上述示例:不明确 Date 到底是 sql 中的类,还是 util 中的类
解决方法:使用方式一包的全路径即可~

优点:使用方便
缺点:可能会产生冲突

方法3 静态导入包

类里若存在同名的静态方法,也有可能会发生冲突、


//可以直接使用Math类中的所有静态成员
import static java.lang.Math.*;

public class PackageTest {
    public static void main(String[] args) {
        System.out.println(sqrt(100));
        System.out.println(max(1,5));
        System.out.println(min(6,7));
    }
}

总结一个完整类名是包名+类名,在没有 import 导入的情况下,使用一个类需要给出完整的类名

自定义包

操作步骤:

1.在 idea 中先新建一个包:右键 src → 新建 → 包

在这里插入图片描述

在这里插入图片描述

2.右键刚创建好的包→新建→类

在这里插入图片描述

输入类名即可

在这里插入图片描述

3.找到相应目录 查看是否创建成功

在这里插入图片描述

4. Test.java 文件的最上方,出现了一个 package 语句

在这里插入图片描述

包的访问权限控制

不同包

在这里插入图片描述

若手动导入 Person 所在的包

在这里插入图片描述

在这里插入图片描述

到此这篇关于深入理解Java中包的定义与使用的文章就介绍到这了,更多相关Java 包内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入理解Java中包的定义与使用

本文链接: https://www.lsjlt.com/news/135904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入理解Java中包的定义与使用
    目录包是什么?包的作用导入包中的类自定义包包的访问权限控制包是什么? 在开发过程中,会定义很多类,随着类越写越多,难免会出现类重名而发生覆盖的情况,为了在使用它们的时候不让编译器混淆...
    99+
    2022-11-12
  • 深入了解Android中GestureDetector的定义与使用
    目录简介赋予widget可以点击的功能会动的组件可删除的组件总结简介 之前我们介绍了GestureDetector的定义和其提供的一些基本的方法,GestureDetector的好处...
    99+
    2023-01-31
    Android GestureDetector使用 Android GestureDetector
  • 深入了解C++封闭类的定义与使用
    目录封闭类轮胎类引擎类汽车类总代码封闭类 今天,我学习的是C++对象的一种操作.就是成员对象和封闭类. 那么封闭类是什么呢和普通类用什么不同吗 封闭类就是有成员对象的类,那么成员对象...
    99+
    2022-11-13
    C++封闭类使用 C++封闭类
  • 深入理解Java:注解(Annotation)自定义注解入门
     要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解:  元注解的作用就是负责注解其他注解。Java5.0定...
    99+
    2022-10-18
  • Java深入浅出数组的定义与使用上篇
    目录一、数组的基本用法1.什么是数组2.定义数组 3.数组的使用打印数组: 二、数组作为方法的参数基本用法三、数组练习题1.交换两个变量的值2.写一个方法, 将数组中的每个元素都 *...
    99+
    2022-11-13
  • Java深入浅出数组的定义与使用下篇
    接着上一篇继续,老铁们 1.检查数组的有序性 给定一个整型数组, 判断是否该数组是有序的(升序) public static boolean isUp(int[] arr...
    99+
    2022-11-13
  • 深入理解React的自定义Hook
    自定义 Hooks 的核心是共享组件之间的逻辑。使用自定义 Hooks 能够减少重复的逻辑,更重要的是,自定义 Hooks 内部的代码描述了它们想做什么,而不是如何做。当你将逻辑提取到自定义Hooks 中时,你可以隐藏如何处理某些"...
    99+
    2023-05-14
    前端 代码规范 React.js
  • 深入理解注解与自定义注解的一些概念
    一、注解介绍 注解就是一种标记符号,可以在代码上的关键节点(类、方法、变量、参数、包)打上标记,然后程序在编译时或者运行时就可以检测到这些标记从而执行一些自己需要的功能操作。 自定义...
    99+
    2022-11-12
  • C语言深入讲解宏的定义与使用方法
    目录一、C语言中的宏定义二、宏定义表达式三、宏表达式与函数的对比四、有趣的问题五、强大的内置宏六、小结一、C语言中的宏定义 #define是预处理器处理的单元实体之一#define ...
    99+
    2022-11-13
  • Java中Class类的作用与深入理解
    Java中Class类的作用与深入理解  在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。JVM利用运行时信息选择相应的方法执行。而保存这些信息的类称为Class。...
    99+
    2023-05-31
    java class
  • 深入了解Rust中函数与闭包的使用
    目录闭包高阶函数发散函数闭包 Rust 的闭包由一个匿名函数加上外层的作用域组成,举个例子: fn main() {     let closure = |n: u32| ->...
    99+
    2022-11-13
    Rust 函数 闭包 Rust 函数 Rust 闭包
  • 深入解析SQL的定义和使用范围
    SQL的定义及应用领域详解摘要:本文旨在介绍 SQL(Structured Query Language)的定义及其在不同应用领域中的具体应用。首先,我们将简要介绍 SQL 的定义和历史背景。接着,我们将深入探讨 SQL 在数据管理、数据分...
    99+
    2023-12-28
    SQL 定义 应用 领域
  • React Native自定义路由管理的深入理解
    目录1、自定义路由2、Tab导航3、数据回传总结1、自定义路由 众所周知,不管是在原生Android还是iOS,它们都有一个默认的路由路由栈管理类。由于React Native官方...
    99+
    2022-11-12
  • Java中数组的定义与使用详解
    目录数组的基本概念数组引用传递数组静态初始化二维数组总结数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, ...
    99+
    2022-11-12
  • 深入了解Vue3中props的原理与使用
    目录前言介绍原理前提创建组件实例对象初始化Props操作创建proxy对象去获取Propsprops作为参数传入setup将proxy挂载到render上总结前言 props指父组件...
    99+
    2023-05-19
    Vue3 props原理 Vue3 props使用 Vue3 props
  • 深入理解Java中的HashMap
    目录一、HashMap的结构图示二、HashMap的成员变量以及含义2.1、hash方法说明2.2、tableSizeFor方法说明三、HashMap的构造方法四、HashMap元素...
    99+
    2022-11-12
  • 深入了解Vue中的自定义指令
    作为使用Vue的开发者,我们对Vue指令一定不陌生,诸如v-model、v-on、v-for、v-if等,同时Vue也为开发者提供了自定义指令的api,熟练的使用自定义指令可以极大的提高了我们编写代码的效率,让我们可以节省时间开心的摸鱼~对...
    99+
    2022-11-22
    Vue.js
  • 深入了解Java定时器中的Timer的原理
    目录主要成员变量定时功能TimerThread结论Demo代码位置Java在1.3版本引入了Timer工具类,它是一个古老的定时器,搭配TimerTask和TaskQueue一起使用...
    99+
    2022-11-12
  • 深入理解Android Matrix理论与使用的详解
    以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明。首先大家看看下面这个3 x 3的矩阵...
    99+
    2022-06-06
    matrix Android
  • 深入理解java中Arrays.sort()的用法
    在Java中,Arrays.sort()方法是用来对数组进行排序的。它使用了经过优化的快速排序算法,可以对任何类型的数组进行排序。A...
    99+
    2023-08-14
    Java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作