Java学习之包
一、包:就是类的命名空间(在文件系统中的表现形式就是文件夹)
二、代码编写规则
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 命令。
# 从文件 classes.list 读取附加选项和类文件列表
jar --create --file my.jar @classes.list
Java学习之包的更多相关文章
- JAVA学习笔记 -- 包资源文件jar包裹
初学者GUI,使用Eclipse出口jar包裹,不能显示最小化的图标集(hello.png根文件下的项目文件夹文件).码如下面: import javax.swing.JFrame; import j ...
- Java学习笔记-包,classpath,import,jar
这里介绍Java的包,classpath,import和jar 包(package) 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称的是 包名.类名 包也是一种封装形式 ...
- java学习5-jar包的下载以及导入
1.出现未导入包的情况 ,表示当前jdk不 2.百度下载jar包 3.File. 未完待续http://blog.csdn.net/a153375250/article/details/5085104 ...
- Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)
最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...
- 深入学习Java8 Lambda (default method, lambda, function reference, java.util.function 包)
Java 8 Lambda .MethodReference.function包 多年前,学校讲述C#时,就已经知道有Lambda,也惊喜于它的方便,将函数式编程方式和面向对象式编程基于一身.此外在使 ...
- Java 学习(14):接口 & 包(设置 CLASSPATH 系统变量)
Java 接口(英文:Interface) 定义:在JAVA编程语言中,接口是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明. 一个类通过继承接口的方式,从而来继承接口的抽象方 ...
- 0021 Java学习笔记-面向对象-包、构造器
封装 面向对象的三大特征: 封装 继承 多态 封装: 将对象的状态信息隐藏,不允许外部程序直接访问 通过该类提供的方法来访问和操作 有啥用: 隐藏类的实现细节 在方法中加入控制逻辑,限制对成员变量的不 ...
- java.util.concurrent包API学习笔记
newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...
- Java学习笔记三十一:Java 包(package)
Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...
随机推荐
- java.lang.IllegalStateException: Cannot forward after response has been committed
jjava.lang.IllegalStateException: Cannot forward after response has been committed at org.apache.cat ...
- Map3
map切片: 切片的数据类型如果是map,则我们称为 slice of map, map切片,这样使用则map个数就可以动态变化了. 案例演示:要求:会用一个map来记录monster的信息 name ...
- MySql-第七篇单表查询
1.MySQL中可以使用+.-.*./. 1>但MySQL中没有提供字符串连接运算符,可以使用concat(a_str,'xxx')进行连接. 2>在算术表达式中使用null,将会导致整个 ...
- Python入门习题7.分别统计输入各类字符个数
例7.用户从键盘输入一行字符,编写一个程序,统计并输出其中的英文字符(包括中文字符).数字.空格和其他字符个数. #字符数统计.py Str = input('请输入一行字符:') alpha = 0 ...
- 详解Twitter开源分布式自增ID算法snowflake(附演算验证过程)
详解Twitter开源分布式自增ID算法snowflake,附演算验证过程 2017年01月22日 14:44:40 url: http://blog.csdn.net/li396864285/art ...
- C# json格式的序列化与反序列化
使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象 Json[javascript对象表示方法],它是一个轻量级的数据交换格式,我们可以很简单的来读取和写它,并且它很容易 ...
- vue-devtools工具的安装
vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率.接下来我们就介绍一下vue-devtools的安装 1.登录github,获取到vue- ...
- oracel分页查询
SELECT * FROM ( SELECT temp.*, ROWNUM RN FROM (SELECT * FROM 表名) temp WHERE ROWNUM <=end (page*pa ...
- 根据配置RedisProperties自动获取RedisConnectionFactory
#单点配置 spring.redis.host=192.168.1.1 spring.redis.port=6379 #哨兵配置 #spring.redis.sentinel.master=commo ...
- 2018-2-13-win10-uwp-简单MasterDetail
title author date CreateTime categories win10 uwp 简单MasterDetail lindexi 2018-2-13 17:23:3 +0800 201 ...