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. AI LeNet

    LeNet 参考链接: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf https://www.charleychai.com/blogs/20 ...

  2. mongo中命令工作原理

    1.db.runCommand命令 db.runCommand({OPTION:'COLLECTION_NAME'}) runCommand命令是mongo的执行命令,可以执行mongo的任何命令,其 ...

  3. linux内存源码分析 - 内存压缩(实现流程)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请 ...

  4. java将秒转换为时分秒工具类

    需要一个接收时分秒的对象,如下: package com.dq.schoolcontract.utils; import com.sun.media.jfxmedia.control.VideoRen ...

  5. 基于webpack+react+antd 项目构建

    工欲善其事必先利其器,学习React也是如此. 下面分享一篇基于webpack+react+antd 项目构建的好文章, https://blog.hduzplus.xyz/articles/2017 ...

  6. 我的微软最有价值专家(Microsoft MVP)之路

    一.写在前面 2018年对我来说是幸运的一年,对我来说最幸运的事情有两个,一个是在离驾照考试过期还有一个月(报名之后一直没去考)终于拿到了我的驾照,还有一件事莫过于获得了微软MVP.期间,一直有朋友问 ...

  7. SQL 显示表名显示列名

    显示表名:show 表名: 显示列(Field)名:show columns from 表名:

  8. 数组去重--ES5和ES6

    思路:把去重后的数组放到一个空数组中 ES5实现: function uni(arr) { var result = []; for (var i=0;i<arr.length;i++) { i ...

  9. maven新建项目

    选择新建maven project  这个文件通常作为父工程,用于管理jar包的依赖,锁定jar包版本 选择next group id :如表面意思  组织名  公司名  artifact id :工 ...

  10. Python-类的特性(property)

    什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个 ...