包的作用

  • 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  • 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位

包的实例

  • 1、首先看一下我的文件tree:

    • ➜  assert tree
      .
      ├── TestAssert.class
      ├── TestAssert.java
      ├── Vector.java
      └── com
      └── bruceeckel
      └── tools
      ├── Assert
      │   ├── Assert.class
      │   └── Assert.java
      └── HelloWorld
      ├── HelloWorld.class
      └── HelloWorld.java
  • 2、看一下Assert的代码:

    • package com.bruceeckel.tools.Assert;
      
      public class Assert {
      private static void perr(String msg){
      System.err.println(msg);
      } public final static void is_true(boolean exp) {
      if(!exp) perr("Assertion failed");
      } public final static void is_false(boolean exp) {
      if(!exp) perr("Assertion failed");
      }
      public final static void is_true(boolean exp, String msg) {
      if(!exp) perr("Assertion failed: " + msg);
      }
      public final static void is_false(boolean exp, String msg) {
      if(!exp) perr("Assertion failed: " + msg);
      }
      }
  • 3、下面是helloworld包的代码:

    • package com.bruceeckel.tools.HelloWorld;
      
      public class HelloWorld {
      public void say(){
      System.out.println( "my name is zhangyin test " );
      }
      }
  • 下面是测试代码:
    • import com.bruceeckel.tools.HelloWorld.*;
      import com.bruceeckel.tools.Assert.*; public class TestAssert {
      public static void main(String[] args)
      {
      HelloWorld stu = new HelloWorld();
      stu.say();
      Assert.is_true((2 + 2) == 5);
      Assert.is_false((1 + 1) == 2);
      Assert.is_true((2 + 2) == 5, "2 + 2 == 5");
      Assert.is_false((1 + 1) == 2, "1 + 1 != 2");
      }
      }
  • 运行结果:

    

➜  assert java TestAssert
my name is zhangyin test
Assertion failed
Assertion failed: 2 + 2 == 5

  上面的实际例子很清楚的解释了package的用法,具体的代码请参考:

https://github.com/DyLanCao/java_example/tree/master/base/assert

Java 包(package)的概念及实例的更多相关文章

  1. Java - 25 Java 包(package)

    Java 包(package) 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包 ...

  2. Java学习笔记三十一:Java 包(package)

    Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...

  3. Java包package之间调用问题-cmd运行窗口编译运行

    问题:在使用了java包机制(package)后,编译出现错误:找不到或无法加载主类 xxx 的错误提示信息(各种编译不通过) 先给演示结果: 编译:javac -d classes src/a/He ...

  4. 模块(modue)和包(package)的概念-import导入模块

    模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较 ...

  5. Java 包(package)详解

    为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...

  6. java包(package)

    为了更好地组织类,java提供了包机制,用于区别类名的命名空间. 这样在不同的命名空间就可以有相同命名的类. 1 把功能相似或相关的类或接口阻止在同一个包中,方便类的查找和使用. 2 如同文件夹一样, ...

  7. Java 包(package)

    为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 1.包的作用 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用了树形目录的存储方式 ...

  8. Java-Runoob-面向对象:Java 包(Package)

    ylbtech-Java-Runoob-面向对象:Java 包(Package) 1.返回顶部 1. Java 包(package) 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. ...

  9. Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别

    1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 面对对象编程是java非常重要的一部分,作者本身之前学过c ...

随机推荐

  1. SQL语句总结基础篇

    创建数据库 CREATE DATABASE 数据库名称; 删除数据库 DROP DATABASE 数据库名称; 创建新表 create table 表名(列 类型 ,列 类型 ,..); 根据已有的表 ...

  2. C程序设计风格

    问:如何在源文件中合理分配函数? 答:通常,相关的函数放在同一个文件中.有时候(例如开发库的时候),一个源文件(自然也 就是一个目标文件)放一个函数比较合适.有时候,尤其是对某些程序员,太多的源文件可 ...

  3. c语言l博客作业09

    问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...

  4. c# 窗体开发3 文件处理技术

    以字节形式向磁盘写入数据通常称为字节流(比特流) 常常使用System.Io 常用的类 类 说明 File 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. ...

  5. js消除小游戏(极简版)

    js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...

  6. js人民币转大写

    <input type="text" oninput="OnInput (event)" value="1234567"> &l ...

  7. PTA 1140 1141 1142 1143

    1140 Look-and-say Sequence 思路:模拟 #include<bits/stdc++.h> using namespace std; typedef long lon ...

  8. 牛客竞赛-Who killed Cock Robin

    Who killed Cock Robin? I, said the Sparrow, With my bow and arrow,I killed Cock Robin. Who saw him d ...

  9. git log详细使用参数

    1. 可以看到fileName相关的commit记录 git log filename 2. 可以显示每次提交的diff git log -p filename 3. 只看某次提交中的某个文件变化,可 ...

  10. [TimLinux] selinux sesearch命令详解

    1. 描述 sesearch用于搜索SELinux安全策略规则集,命令来自包:yum install setools-console. 2. 命令 命令使用方法: sesearch [OPTIONS] ...