【Java学习笔记四】Java中的包
包的声明和引入:在Java语言系统中,Java编译器为每一个类生成一个字节码文件(.class),为了对类文件进行分层和按用途分类管理,同时也为了解决相同类名的文件冲突的问题,Java提供了包机制来管理类名空间。一般情况下,应将相关的类组织到同一个包中。使用包提供了包的封装和存取权限。
一个包可以包含若干个类,还可以包含若干个包。
包被放在当前目录或指定目录下,该指定目录要在操作系统环境变量表中的classpath参数的值包含着,以便系统能够搜索到该指定目录下的包和包中的类文件。
包名本身就是一个目录,包和子包之间用.
隔开,以表明包的层次目录结构。(包名就是文件夹名,类名就是文件名)。
在编写Java源程序时,对一个Java程序文件可以使用声明报道语句指定其中每个类的字节码文件所属的包。
声明包语句的关键字为package
,后面跟着包名或者包的层次目录名,该语句若存在则必须是Java程序文件中的第一条语句。
改程序文件被编译后就把每个类的字节码文件保存到指定的包中。若一个Java程序文件不带有声明包的语句,则其中每个类的字节码文件被保存到当前目录中,即被编译的Java程序文件所在的的目录中。
像程序中引入包的关键字为import
,后面跟着包名和类名,包名和类名之间也必须用句点分开。
若需要引入包中的所有类,则需要用*
代替类名,例如import java.io.*;
,语句向所在的Java程序文件中引入了java.io
包中的所有类。
引入包语句import
必须出现在声明包语句package
之后和所有类定义模块之前的位置。
当编译带有声明包语句的程序文件时,在编译命令中,必须使用-d
参数项,后面跟着包所在的目录路径,若把包保存在当前目录时,则使用句点代替。
例如程序a.java开头为package myJava;
,编译指令为javac -d . a.java
,编译命令执行后将在当前目录下建立一个包名为myjava
的目录,此目录中包含文件a.class
在一个Java程序文件中,系统将自动引入java.lang
包中的所有类 (自动加上import java.lang.*;
),在java.lang
包中含有常用的系统类,如字符串类String
,基本数据类型的包装类,数学函数类Math
,系统基类Object
,系统状态类System
.Java系统类库中包含有各种用途的包,如进行文件操作的io包、进行网络应用的net包、进行数据库操作的sql包、进行可视化图形用户窗口界面操作的awt包、进行集合数据操作的util包等.
- java.lang包:java.lang包是Java语言的核心类库,包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。每个Java程序运行时,系统都会自动地引入java.lang包,所以这个包的加载是缺省的。
- java.io包: java.io包是Java语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其他Java程序做数据交换所使用的类,如基本输入/输出流、文件输入/输出流、过滤输入/输出流、管道输入/输出流、随机输入/输出流等。凡是需要完成与操作系统有关的较底层的输入输出操作的Java程序,都要用到java.io包。
- java.util包:java.util包包括了Java语言中的一些低级的实用工具,如处理时间的Date类,处理变长数组的Vector类,实现栈和杂凑表的Stack类和HashTable类等,使用它们开发者可以更方便快捷地编程。
- java.awt包:java.awt包是Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,主要在三个方面提供界面设计支持:低级绘图操作,如Graphics类等;图形界面组件和布局管理,如Checkbox类、Container类、LayoutManager接口等;以及界面用户交互控制和事件响应,如Event类。
- java.applet包:java.applet包是用来实现运行于Internet浏览器中的Java Applet的工具类库,它仅包含少量几个接口和一个非常有用的类:java . applet . Applet。
- java.net包: java.net包是Java语言用来实现网络功能的类库。由于Java语言还在不停地发展和扩充,它的功能,尤其是网络功能,也在不断地扩充。目前已经实现的Java网络功能主要有:底层的网络通信,如实现套接字通信的Socket类、ServerSocket类;编写用户自己的Telnet、FTP、邮件服务等实现网上通信的类;用于访问Internet上资源和进行CGI网关调用的类,如URL等。
- java.awt.event包: java.awt.event包是对JDK 1.0版本中原有的Event类的一个扩充,它使得程序可以用不同的方式来处理不同类型的事件,并使每个图形界面的元素本身可以拥有处理它上面事件的能力。
- java.sql包: java.sql包是实现JDBC(Java database connection)的类库。利用这个包可以使Java程序具有访问不同种类的数据库的功能,如Oracle,Sybase,DB2,SQLServer等。
【Java学习笔记四】Java中的包相关推荐
- Java学习笔记1:Java中有关print、println、printf的用法和区别
Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...
- Java学习笔记(java基础)
Java学习笔记(第一周) Java 介绍 Java 发展方向 JVM , JDK , JRE 名词解释 Java语言的特点 Java安装 安装包的下载 配置环境变量 验证是否安装成功 Java的第一 ...
- Java学习笔记基础(中)
继 承(面向对象特征之一) 好处: 1:提高了代码的复用性. 2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的. java中对于继承,ja ...
- JAVA学习笔记(四十九)- Swing相关组件
JFrame组件 import java.awt.Color;import javax.swing.JFrame; import javax.swing.JPanel;/** Swing是在AWT基础 ...
- java学习笔记(一) ----java下常用的包功能
***java下常用的包*** java.lang----包含一些java语言的核心类,如String,Math,Integer,System,Thread,提供常用的功能. java.awt---- ...
- Java学习笔记四(可视化的基基基基础)
不算是完整的代码,便于自己理解的写法. import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.Act ...
- Java学习笔记-7.Java IO流
一.输入/输出流 1.流:不同类型的输入.输出源 数据流:输入或输出的数据 Java数据流的所有接口和类都是在java.io包中定义的,因此应在程序开头加入 import java.io.* 2 ...
- 【java】java学习笔记之java oop(面向对象)
如下图所示为笔者总结的java oop(面向对象)学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/ ...
- 【java】java学习笔记之java常用类
如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/downloa ...
最新文章
- java怎么返回xml_java – 如何从Web服务返回XML
- 陆奇:不确定的世界需要更多对话,人工智能需要人监督
- 对java面试文章的技术漫谈的C#技术理解
- 函数进阶_月隐学python第11课
- C++STL与泛型编程(4)OOP(面向对象编程) Vs. GP(泛型编程)
- 【转】U-BOOT之一:BootLoader 的概念与功能
- ubuntu下搭建车场环境(代码使用jekins构建)
- java xml annotation_Annotation与XML配置ID生成策略
- JavaScript的实现
- 以下不是python内置函数的是_Python内置函数
- exposed beyond app through Intent.getData()
- 【深度】注册测绘师执业制度实施的现状分析
- 机器学习与深度学习入门篇
- 宝贝数量、流量组成结构、付费和免费流量占比、提高流量价值、店铺为什么没有销量?这些你真应该看看
- stm32f103c8t6视频教程
- 图像处理学习笔记(一)
- Kubernetes 污点和容忍
- Navicat Premium 16 隆重登场
- 飞书第三方ISV服务商应用开发及上架教程
- 【XSY2508】【BZOJ4424】Fairy(二分图)
热门文章
- C语言操作mysql
- 用JavaScript往DIV动态添加内容
- WordPress Event Easy Calendar插件多个跨站请求伪造漏洞
- Photoshop 保存PNG格式交错和不交错有差别
- 大话设计模式之设计模式遵循的七大原则
- css设置字符长度,在css中设置最大字符长度
- 计算机基础及ms应用在线,全国一级计算机基础及MS Office应用课件 (2).pdf
- linux上php指向mysql_linux环境下 php如何配置mysql
- 二维有限元方程matlab,有限元法求解二维Poisson方程的MATLAB实现
- linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西