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 类文件。 有了包之后,这个Animal类就有了所属,这个类实际上叫做net.com.cn.Animal, 如果在java源文件中使用这个类创建对象,就要使用类的全称net.com.cn.Animal

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 中的包概念的更多相关文章

  1. 理解Java中【包】的概念

    Java中用package关键字定义一个包,下面通过几个实验,理解Java中的包的概念和作用. 实验1:先看一个无包的情形 在G盘下新建一个Test.java,如图1: 写下面这些代码 <spa ...

  2. Java中带包(创建及引用)的类的编译

    Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...

  3. Java中,包的概念、常量、静态成员、继承

    新建包:左上角-新建-包 命名规则(通常从大到小,方便整合不容易冲突)  例如:com.itnba.maya.test package必须在最顶行,之前不能再有其他代码 使用包: 快捷方式:使用包中的 ...

  4. java中的“包”与C#中的“命名空间

    原文地址:http://www.cnblogs.com/lidabo/archive/2012/12/15/2819865.html Package vs. Namespace 我们知道,重用性(re ...

  5. Java中的包学习笔记

    一.总结 1.引入包的概念的原因和包的作用比如有多个人开发一个大型程序,A定义了一个Math.java类,B也定义了一个Math.java类,它们放在不同目录,使用的时候也是用目录来区分,包实际上就是 ...

  6. java中的包以及内部类的介绍

    1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返 ...

  7. java中的包有那些 ???

    java.util工具包java.sql数据库包java.io输入输出流包java.net网络包java.lang基础包这些是基本的包,还有一些其他的例如集合,反射等的工具包,你可以去查一下java ...

  8. Java中的包

    包:定义包用package关键字. 1:对类文件进行分类管理. 2:给类文件提供多层名称空间. 如果生成的包不在当前目录下,需要最好执行classpath,将包所在父目录定义到classpath变量中 ...

  9. Java中的包含义

    JAVA提供了强大的应用程序接口,既JAVA类库.他包含大量已经设计好的工具类,帮助程序员进行字符串处理.绘图.数学计算和网络应用等方面的工作.下面简单介绍JAVA核心类库中常用的组建包. 1.jav ...

随机推荐

  1. Java多线程(四)—— synchronized关键字续

    1.synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在.当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,sy ...

  2. JPA和分布式事务简介

    1. Transaction 分两种,Local Transaction 和 Global Transaction. 涉及到一个Connection的Commit,称为Local Transactio ...

  3. c++_work

    while((ch=getopt(argc, argv, "X:Y:C:")) != EOF) { switch((char)ch) { case 'X': strcpy(strS ...

  4. [蛙蛙推荐]SICP第一章学习笔记-编程入门

    本书简介 <计算机程序的构造与解释>这本书是MIT计算机科学学科的入门课程, 大部分学生在学这门课程前都没有接触过程序设计,也就是说这本书是针对编程新手写的. 虽然是入门课程,但起点比较高 ...

  5. mariadb(第一章)

      数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来 ...

  6. sql中return和returns的区别

    用户定义函数中,用RETURNS 子句指定该函数返回值的数据类型 return用于返回具体的值/值变量

  7. 如何实现用将富文本编辑器内容保存为txt文件并展示

    1.实现思路 创建一个xx.txt文件,存放于项目路径下 用文件流去读取文件内容并将读取的内容存放到页面的富文本编辑器框内 富文本编辑框内容改变后,保存时用文件流的方式保存到xx.txt文件中 提示: ...

  8. socket流程

  9. Java对象的创建、内存布局和访问定位

    在Java运行时数据区中,我们知道了虚拟机内存的概况,本文介绍虚拟机内存中的数据的其它细节,如对象如何创建.如何布局以及如何访问. 基于实用的原则,这里以HotSpot虚拟机和常用的内存区域Java堆 ...

  10. Servlet 转发请求与重定向,以及路径问题

    转发请求 当一个servlet接收到请求后,如果需要将请求转发给另外一个servlet或者jsp文件,可使用下面这种方法: package cn.ganlixin.servlet; import ja ...