杭州外贸网站,中国营销在线网,钟表玻璃东莞网站建设,ps个人主页设计模板包的定义与使用
包的定义
包 存放类程序文件的目录#xff0c;程序类中定义的包名称必须采用小写字母的形式定义。
package com.example.demo ; // 定义包#xff0c;其中.表示分割子目录 (子包)
public class Hello {public static void main(String args[]) {System.ou…包的定义与使用
包的定义
包 存放类程序文件的目录程序类中定义的包名称必须采用小写字母的形式定义。
package com.example.demo ; // 定义包其中.表示分割子目录 (子包)
public class Hello {public static void main(String args[]) {System.out.println(Hello World !);}
} 一旦程序开发之中出现有包此时程序编译后的结果就必须将*.class文件保存在指定的目录之中但是如果手工建立则非常麻烦那么此时最好的做法是可以进行打包编译处理:
javac -d . Hello.java“-d”表示要生成目录而目录的结构就是package定义的结构com/example/demo“.” 表示在当前所在目录中生成程序文件
有了如上的包后在程序执行时必须要带有包
java com.example.demo.Hello从此之后完整的类名称应该是“包.类名称”
包的导入
导入
导入单类 利用包的定义实际上就可以将不同的功能的类保存在不同的包之中但是这些类彼此之间也一定会存在有互相调用的关系那么在这个时候就需要使用import语句来导入其他包中的程序类。导入整包 当遇到要导入同一个包中的许多类时可使用import 包.* 的导入形式它会根据自己的需要加载所需要的程序类不需要的程序类是不会被加载的所以使用 * 还是使用具体的类性能上是没有区别的。类名冲突(包不重名) 而当两个包中都包含有名称相同的程序类时此时在主程序中使用类必须声明出类的完整名称。
多包编译
若导入的包也未编译的话且当类的数量很多彼此之间互相引用严格时那么这个时候最好的做法不是区分顺序而是直接交给java自己来完成javac -d . *.java
public class 和 class 的区别
public class类名称必须与文件名称保持一致一个 *.java 文件里面只允许有一个 public class同时如果一个类需要被其他的包所使用那么这个类一定要定义为 public class;class类名称可以与文件名称不一致并且在一个 *.java 文件里面可以提供有多个 class 定义编译后将形成不同的*.class文件但是这些类只能够被本包所访问外包无法访问
静态导入
当使用了静态导入之后就好比该方法是直接定义在主类中一样即此时调用该方法时不需要再添加类名。有点类似与 C语言的 #include 但实际运用中较少。
jar文件
定义
对于一个项目工程到最后会有大量的class文件这些文件如果散着给用户不利于维护因此可以利用一种压缩结构来进行处理这样的结构再java中被称为jar文件。
打包命令
利用jdk中提供的jar命令来完成
对程序进行打包编译 java -d . *.java 最终会形成一个 com 的包包中有相应的子包和 *.class文件将其打包为 test.jar jar -cvf test.jar com
“-c”创建一个新的jar文件“-v”得到一个详细输出“-f”设置要生成的jar文件名称本处定义的是“test.jar”
包的使用
每一个 *.jar 文件都是一个独立的程序路径如果想在Java程序中使用此路径则必须通过 CLASSPATH 进行配置。 Set CLASSPATH.; 盘符:\前置路径\test.jar 多个路径使用分号分隔正常编译那个调用了jar包中的类的主java程序并使用
编译程序类javac -d . testDemo.java
解释程序 java testDemo其他情况 当程序编译通过后若由于CLASSPATH发生了改变类无法加载到testDemo类的时候会出现如下的错误提示 Exception in thread “main” java.lang.NoClassDefFoundError: testDemo 出现该报错只有一个情况*.jar包没有配置正确。 JDK1.9之后出现的模块化操作
JDK1.9之前实际上提供的是一个所有类的 *.jar 文件rt.jar,tools.jar此时开发中只要启动了java虚拟机那么就需要加载这几十M的类文件。在 JDK 1.9之后提供了一个模块化的设计将原本很大的要加载的一个*jar文件变成了若干个模块文件这样启动的时候可以根据程序加载指定的模块模块中有包以加快启动速度。
系统常用包
java.lang:像 String、Number、Object 等类都在这个包里面这个包在JDK1.1之后自动默认导入java.lang.reflect: 反射机制处理包所有的设计从此开始java.util:工具类的定义包括数据结构的定义;lava.1o:进行输入与输出流操作的程序包;lava.net:网络程序开发的程序包;lava.sql:进行数据库编程的开发包;java.applet: Java 的最原始的使用形式直接嵌套在网页上执行的程序 现在的程序已经以 Application 为主了 (有主方法的程序); java.awt、javax.swing: Java 的图形界面开发包(GUI)。