学习java一定要会使用包
首先要了解什么是包,了解为什么要用包? 在Java项目中,可以将类分别独立出来,分门类的存在文件中,最后再将这些文件一块编译执行可以更好地维护代码哦!!!
包的概念:
- 包的定义:
package是在使用多各类或者接口时,为了避免名称的重复而采取的措施,直接放在程序中加入package关键字即可用。 - 包的定义格式:
package 包的名称.子包的名称;
(.表示的是目录,也就是相当于系统中的/) ,在编译程序时,就会将生成的.class文件保存在指定目录下(包名称就是目录名称,也就是说包就是一个文件夹,将.class文件存在文件夹中)在编译的指令中就提供了专门的命令,
打包命令:
javac -d . HelloDemo.java
-d:表示生成目录,根据package的定义生成
. :设置保存的路径,如果为“.”表示在当前所在的路径下生成
使用上面的命令过程:建立一个.java文件放在当前目录下(任意目录,比如E:\),在当前目录下执行上面的代码,则会将生成的.class文件按照包指定的自定生成目录,并将.class 文件放到目录下(比如在e:下生成com\test,在里面有个PersonDemo.class【每一个类会单独生成一个class文件】)
运行命令:
java 包 .类名称
我在E 盘java文件创建了一个文件Person.java文件,编译时他会自动创建
注意:生成包后如果执行则必须加上包名称,才能找到。
注意看上边的代码,在编译和运行上边的程序时,都是在java这个项目文件下运行的,因为他会从项目文件下开始执行,把Person生成jar包,然后在E盘跟目录创建了PersonDemo.java文件。
使用此命令可以生成.jar包 就能直接调用jar包里边的内容
Person.java
package gaoxin.test; //定义包的存放路径
public class Person{ //定义一个类
private String name; //定义属性
private int age;
public Person(){} //构造方法
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){ //get方法
return name;
}
public void setName(String name){ //set方法
this.name = name ;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public void print(){
System.out.println("姓名:"+this.getName()+"年龄"+this.getAge());
}
}
PersonDemo.java
package com.test;
import gaoxin.test.Person;
class PersonDemo
{
public static void main(String args[]){
Person p =new Person("张三",18); //实例化
p.print(); //调用方法输出
}
}
编译运行
set classpath 是用来指定当前位置指向jar包的路径,它使用的是jar宝中的Person
jar包和gaoxin/test/Person的区别,在于package gaoxin.test生成的包就只能在java这个项目中调用,在项目之外就不能使用该包了,而jar包就是在项目外月可以使用,例如上变编译运行的实在E盘 而不是E盘java项目中
当然你也可以使用java编译工具导入或导出jar包,来运行要简单的多
首先来导入jar包
然后选择要导入的包就行了
导出:
选择要导的文件