java 中的包概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中的包概念相关的知识,希望对你有一定的参考价值。
Java 中的包package, 就相当于电脑中的文件夹。我们平时在工作中,文件太多时,都会新建文件夹进行分类管理,java 中的包也是类似的道理,当我们的类太多时,也需要进行管理。这时我们就会把类文件放到包中,就是把这个.class文件放到了一个文件夹中,这样可以对类文件进行分类管理,同时也有效地避免了命名冲突。
当我们对java源文件进行编译时,它会生成一个.class 文件,如果我们在java源文件的顶部,指定一个包名(package net;),编译时,这个包名会生成一个文件夹,在这里就是net文件夹,编译好的.class文件则会放到该文件夹下。
package net; // 指定包名net public class Test { public static void main(String[] args) { System.out.println("hello"); } }
当包名很长时,如package net.com.cn,这时它就会生成多级文件夹,先生成net文件夹,然后在net文件夹中生成com文件夹,最后在com文件夹中生成cn文件夹,我们编译生成的.class 文件就会放到cn 文件夹中。我们写一个Animal 类,指定包名为net.com.cn
package net.com.cn; public class Animal { private String name; private int age; public Animal( String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
编译之后,你会发现我们当前文夹中多了一个net文件夹,打开net文件夹,发现com文件夹,再找开com文件夹,发现cn 文件夹,在cn文件里面才有我们的Animal.class 类文件。 如果有了包之后,这个类实际上叫做net.com.cn.Animal, 这个Animal类有了所属,如果在java源文件中使有这个类创建对象,就要使用
net.com.cn.Animal cat = new net.com.cn.Animal();
这时我们使用类创建对象就非常麻烦了,所以出现了import导包。 把要使用的类直接导进来,我们在源代码中就直接可以使用类名进行输写。 我们写一个test.java文件
import net.com.cn.Animal; // 引入包 public class Test { public static void main(String[] args) { Animal cat = new Animal(); // 直接使用类名进行书写 cat.setName("miaomiao"); System.out.println(cat.getName()); } }
当引入包之后,就是一个类文件有了所属之后,这又带来权限问题。如果包中的class类文件能够被访问,它必须是public的,包中的方法,如果能够被访问,它也必须是public. 包与包之间的类进行访问,被访问的包中的类必须是public权限的,被访问的包中的类的方法也必须是public 权限的。
最后还有一个jar包,它就是一个压缩文件,当我们编译之后,类文件都放到了文件夹中,这时 我们再对文件夹进行压缩,就形成了jar包, 就像我们在文件夹上面,点击右键,生成winrar文件 一样。因为压缩文件体积小,有利于进行传播。第三方包,就是通过 jar进行发布,我们直接导入jar包,就可以对里面的类文件进行使用。
以上是关于java 中的包概念的主要内容,如果未能解决你的问题,请参考以下文章