包的概念


包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合。

  1. 一个完整的类名是包名+类名,在没有import导入的情况下,使用一个类需要给出完整的类名,如java.util.Date。为了方便,Java自动导入两个包:java.lang包和默认包。
  2. 无包的类可以访问有包的类, 直接导入即可;有包的类无法访问无包的类, 直接访问是访问同一个包中的, 而有包的类与无包的类不在一个包里。由于使用不同包中的类需要导入, 而无包的类因无包名无法导入;
  3. Java的包表面上看(从路径上看)是有等级的,但实际上并没有,比如java.awt,java.awt.color是两个地位相同的包。java.awt.color并不属于java.awt。
  4. 在采用类名方式使用一个类的时候, 先在当前包中查找是否有这个类, 如果没有才去导入的包中找。

包的作用


  1. 方便组织自己的代码,并将自己的代码与别人提供的代码库分开管理。
  2. 将相关联的接口和类集合到一块。比如,package graphics; 就把图形处理相关的模块放到了一起。便于使用。
  3. 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
  4. 实现了外界对包的访问控制。 需要先进行导入。

定义包


要想将一个类放入一个包中,必须在源文件中除注释以外的第一行使用package+包名语句。同时将属于包的文件放在与完整的包名匹配的子目录中。当需要调用此包中的类时,就可以使用关键字import进行导入。如果源文件中没有使用package语句,这个源文件中的类就会被放置在一个默认包(default package)中。默认包是一个没有名字的包。

一、在定义包的时候,应该注意几点:

  1. 为了尽量使包名保持唯一性,包名通常采用小写、按倒写因特网域名的形式进行定义。
  2. 在进行命名包时,应该避免使用与系统发生冲突的名字。
  3. 一个源文件只能有一个package语句,放在源文件第一行,import语句前。
  4. 自定义包可以以java开头。

编译和运行


一、编译带包的类:

javac -d 目录 源文件名.java
注:在使用命令javac –d 之前,必须先创建好包路径,因为该命令不会自动创建文件夹。

二、运行带包的类:

java 包名.类名

使用包


同个包的类之间访问比较简单,在代码中直接使用类名;而不同包之间的访问则必须满足一个条件:一个类如果希望被其他包中的类访问, 那么必须加上public修饰(注意:用public修饰的类必须和源文件名同名)。
一、不同包之间的使用通常有以下3种方法:只能导入public修饰的类

  1. 使用全名访问类;
  2. import 该类;
  3. import 包含该类的整个包;

常用的包


  1. Java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省(默认)加载这个包。
  2. java.util包:Java的实用工具类库。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。
  3. java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等。
  4. java.util.zip包:实现文件压缩功能。
  5. java.lang.reflect包:提供用于反射对象的工具。
  6. java.mah:如提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
  7. java.net包:用来实现网络功能的类库。如Socket类、ServerSocket类。
  8. java.awt包:构建图形用户界面(GUI)的类库。提供的类如:低级绘图操作Graphics类,图形界面组件和布局管理如 Checkbox类、Container类、LayoutManager接口等,以及用户界面交互控制和事件响应,如Event类。
  9. java.awt.event包:GUI事件处理包。
  10. java.awt.image包:处理和操纵来自于网上的图片的java工具类库。
  11. java.sql包:实现JDBC的类库。
  12. java.applet包:编写java applet程序用的。

import


一、当导入的两个包中有相同的类名时,如果继续采用缩写,就会出现“The type xxx is ambiguous”问题。这时,你就要使用这个类的全名。比如,java.util、java.sql包中都有Date类,程序又同时导入了这两个包中的Date类。解决办法如下:

import java.sql.*;
import java.util.*;
import java.util.Date;  //明确导入一下

二、静态导入,导入静态域和静态方法。

导入特定的静态域或静态方法
import static java.lang.Math.PI;
import static java.lang.Math.cos;
public class Test {public static void main(String[] args) {//以下几种调用方式都可以double r = Math.cos(Math.PI * 2);//1.0double r1 = Math.cos(PI * 2);//1.0double r2 = cos(PI * 2);//1.0}
}导入全部的静态域和静态方法:
import static java.lang.Math.*;

过度使用静态导入会导致代码难以阅读和维护,因为阅读者不知道某个特定的静态对象是属于哪个类的。 但恰当地使用静态导入,代码可以因为不用繁琐地写全名而更具可读性。

Java包与Import导入相关推荐

  1. 在java中使用关键字导入包_java中import关键字的使用方法

    java中import关键字的使用方法 发布时间:2020-06-26 15:05:44 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关java中import关键字的使用方法, ...

  2. 在java中使用关键字导入包_java的import关键字的使用

    在java中如何使用Java包中自带的类呢? 方法一: 在使用时可以用Java.(包名).(方法名).(包中的类名): 例如:Java.util.Arrays.toString(某个要排序数组); 具 ...

  3. Java中apple导入那个包_在Java中,由Java编泽器自动导入而无需在程序中用import导入的包是()。A.java.appletB.java.awtC.j...

    在Java中,由Java编泽器自动导入而无需在程序中用import导入的包是().A.java.appletB.java.awtC.j 更多相关问题 问卷星是一个专业.无限制的免费在线问卷调查.测评. ...

  4. python 第三方包自动导入_7行代码,彻底告别python第三方包import导入问题!

    最近有不少小伙伴咨询关于pyton第三方包导入的问题,今天我们就来聊聊第三方包导入那些事. 随着对python学习的渐入臻境,越来越多的小伙伴们开始导入自己所需的第三方包,实现各种各样的功能.但是,他 ...

  5. java中不用impore导入的_java import机制(不用IDE)

    java包有两种导入机制 单类型导入 import java.lang.Object; 这个比较好理解 2. 按需类型导入 import java.lang.*; 这个不是把lang下面的所有的类都导 ...

  6. java包的创建、使用和导入操作教程

    一.介绍: 在生活中,我们保存文档时会经常使用文件夹,把不同类型的文档归类,然后放到不同的文件夹中,易于管理和查找.在计算机中保存文档也不例外,例如Windows系统中的资源管理器就是如此: 其实ja ...

  7. tiptop使用java的poi包实现EXCEL导入导出功能

    4gl可以调用java的poi包实现EXCEL的导入导出,今天分享一个EXCEL导入的功能!  一:环境搭建  1:poi文件导入  首先下载POI文件(找不到的可以私信我),解压后上传到ERP的服务 ...

  8. 【Intellij IDEA教程】怎么自动清除无效的import导入包、清除无效的import导入包的快捷键

    [Intellij IDEA教程]怎么自动清除无效的import导入包.清除无效的import导入包的快捷键 通常在使用Intellij IDEA进行项目开发的时候 Intellij IDEA会自动帮 ...

  9. java中怎么快速导入一个包_Eclipse中快速导入jar包的方法

    如何在Eclipse中快速导入jar包呢?下面就一起来学习Eclipse中快速导入jar包的方法吧,熟悉一下它的基本操作, 相信对各位小伙伴们一定会有所帮助的哦. Eclipse中快速导入jar包的方 ...

最新文章

  1. 毕业季:理想很丰满,现实也可以很丰满!
  2. glonee刷机绿色机器人无命令_小图编程机器人评测:寓教于乐,让编程变得简单有趣...
  3. cesium 修改 鼠标 样式
  4. 可行性研究和软件项目计划主要完成什么工作?_软件生命周期
  5. .NET中的Assembly分析
  6. 若依图片上传成功不能显示的解决办法?
  7. 百度地图之添加控件——比例尺、缩略图、平移缩放
  8. QQ概念版酿杯具,头条下载竟是病毒
  9. OpenSesame:一个能够攻击fixed-pin设备的工具
  10. Q绑查询HTML源码
  11. 计算机用户分配盘符,盘符划分不求人 Win7硬盘分区多面看
  12. look forward to 用法
  13. 几行代码轻松实现百度定位和在地图显示指定坐标
  14. 人生就像一场旅行,前进的过程也在不断的完善自我,现列出自己的缺点,今后用来反思自我。
  15. 嵌入式实时操作系统1——初识嵌入式实时操作系统
  16. 相控阵天线(六):直线阵列天线特殊综合方法(变形泰勒综合法、贝利斯综合法、伍德沃德抽样法)
  17. vue el-select默认值
  18. 2022留学生落户上海能通过年终奖提高社保基数吗?
  19. 项目管理---敏捷开发--结对编程
  20. 程序员在 Github 上疯狂薅羊毛!

热门文章

  1. matlab算法封装成库,将函数封装成库使用的实现方法
  2. 在html中显示本地图片
  3. RBM系列1:预备知识
  4. Low Poly Experiment
  5. 前端学习笔记(11)之过渡属性(transition)详解
  6. 唐玄宗:谁想跟朕去打马球?在线等,挺急的
  7. 《人生的智慧》——人的基本划分
  8. CE修改植物大战僵尸-关卡基址(小宇特详解)
  9. MATLAB—Simulink与Flowmaster联合仿真
  10. 博达站群链接使用注意事项