一、包:就是类的命名空间(在文件系统中的表现形式就是文件夹)

二、代码编写规则

1、写在程序文件的第一行

2、格式:package 包名[.包名1.包名2......]

类的全名称 包名.类名

例如:

 package mypack; //包
class PackageDemo
{
public static void main(String[] args)
{
System.out.println("Hello Package!");
}
}

编译(javac -d . Java文件--【-d .】代表当前目录下存放.class文件):

运行(java 类的全名称(包名.类名)):

三、包与包之间访问

1、class文件在不同目录

 package mypack; //包
class PackageDemo
{
public static void main(String[] args)
{
packa.DemoA d=new packa.DemoA();
d.show();
System.out.println("Hello Package!");
}
}

被访问的类

 package packa;

 //被访问的包中的类访问权限必须是public
public class DemoA
{
//被访问的包中的类的方法访问权限必须是public
public void show()
{
System.out.println("DemoA Show run");
}
}

编译

编译DemoA

编译PackageDemo

设置class文件所在目录set classpath=.;XXXX(小技巧classpath的值第一个值为当前目录,以分号【;】分开)

2、访问方式

①、通过类的全名称(以上的例子都是)

②、通过import(包的导入),import 就是导入包中的类,可以使用通配符(*)

 package mypack; //包

 import packb.DemoB;//导入了packb包中的DemoB类
class PackageDemo
{
public static void main(String[] args)
{
//1.访问不同包中的类,需要写类的全名称
packa.DemoA d=new packa.DemoA();
d.show();
DemoB b=new DemoB();
b.show();
System.out.println("Hello Package!");
}
}
 package packb;

 public class DemoB
{
public void show()
{
System.out.println("DemoB Show run");
}
}

四、jar

jar:java 的压缩文件

 package jarpack;
class JarPackDemo
{
public static void main(String[] args)
{
System.out.println("Hello Jar Package!");
}
}

编译

运行

运行jar命令

示例:
 # 创建包含两个类文件的名为 classes.jar 的档案:
 jar --create --file classes.jar Foo.class Bar.class
 # 使用现有的清单创建档案, 其中包含 foo/ 中的所有文件:
 jar --create --file classes.jar --manifest mymanifest -C foo/ .
 # 创建模块化 jar 档案, 其中模块描述符位于
 # classes/module-info.class:
 jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ classes resources
 # 将现有的非模块化 jar 更新为模块化 jar:
 jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ module-info.class
 # 创建包含多个发行版的 jar, 并将一些文件放在 META-INF/versions/9 目录中:
 jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
要缩短或简化 jar 命令, 可以在单独的文本文件中指定参数,
并使用 @ 符号作为前缀将此文件传递给 jar 命令。
 示例:
 # 从文件 classes.list 读取附加选项和类文件列表
 jar --create --file my.jar @classes.list

Java学习之包的更多相关文章

  1. JAVA学习笔记 -- 包资源文件jar包裹

    初学者GUI,使用Eclipse出口jar包裹,不能显示最小化的图标集(hello.png根文件下的项目文件夹文件).码如下面: import javax.swing.JFrame; import j ...

  2. Java学习笔记-包,classpath,import,jar

    这里介绍Java的包,classpath,import和jar 包(package) 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称的是 包名.类名 包也是一种封装形式 ...

  3. java学习5-jar包的下载以及导入

    1.出现未导入包的情况 ,表示当前jdk不 2.百度下载jar包 3.File. 未完待续http://blog.csdn.net/a153375250/article/details/5085104 ...

  4. Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)

    最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...

  5. 深入学习Java8 Lambda (default method, lambda, function reference, java.util.function 包)

    Java 8 Lambda .MethodReference.function包 多年前,学校讲述C#时,就已经知道有Lambda,也惊喜于它的方便,将函数式编程方式和面向对象式编程基于一身.此外在使 ...

  6. Java 学习(14):接口 & 包(设置 CLASSPATH 系统变量)

    Java 接口(英文:Interface) 定义:在JAVA编程语言中,接口是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明. 一个类通过继承接口的方式,从而来继承接口的抽象方 ...

  7. 0021 Java学习笔记-面向对象-包、构造器

    封装 面向对象的三大特征: 封装 继承 多态 封装: 将对象的状态信息隐藏,不允许外部程序直接访问 通过该类提供的方法来访问和操作 有啥用: 隐藏类的实现细节 在方法中加入控制逻辑,限制对成员变量的不 ...

  8. java.util.concurrent包API学习笔记

    newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...

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

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

随机推荐

  1. HTML5-Classlist样式操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. vsphere虚拟化之 NTP服务的创建(三)

    1.先修改windows 2012的注册表. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ 设置 Annou ...

  3. Neo4j elk Elasticsearch kibana kettle

    图形数据库,用于查找犯罪或者啥的很好用:反欺诈 win安装neo4j使用查询https://www.cnblogs.com/rubinorth/p/5853204.html linux下安装neo4j ...

  4. Tcp协议介绍

    前情提要:根据域名建立tcp链接之前要做两件事情,1 根据arp协议找到网管mac地址 2 通过dns服务器解析出域名的Ip地址,解析出域名的Ip地址之后就可以建立tcp链接了. tcp协议三个特点: ...

  5. Python自学第二天学习之《字符串与数字》

    一.基本数据类型: 数字:int类型,不可变类型 格式 : a=10 1.其他类型转换成int型 : b=“123” c=int(b) #转换类型 print(c)----- 123 print(ty ...

  6. metasploit下Windows的多种提权方法

    metasploit下Windows的多种提权方法 前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以 ...

  7. springboot2.0+websocket集成【群发消息+单对单】(二)

    https://blog.csdn.net/qq_21019419/article/details/82804921 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上 ...

  8. 8VC Venture Cup 2017 - Elimination Round - A

    题目链接:http://codeforces.com/contest/755/problem/A 题意:给定一个正整数N,问你是否存在一个数M使得N*M+1不是素数(M的范围在[1,1000]). 思 ...

  9. springboot创建一个服务,向eureka中注册,使用swagger2进行服务管理

    首先pom.xml文件,spring boot.springcloud版本很麻烦,容易出问题 <?xml version="1.0" encoding="UTF-8 ...

  10. 如何创建yml文件

    New-File 输入application.yml,但是这不是真正的yml文件 ctrl+shift+alt+s