Java 包的理解与使用
java中的包可以分为两种:内置包、用户自己定义的包。这里介绍的是用户自定义的包。
一、包的使用
1、创建PackageTest.java
package com.packtest;
public class PackageTest {
public void getTest() {
System.out.println("my method is getTest of package one");
}
public static void main(String []args) {
System.out.println("welcome to package one");
}
}
2、运行包
执行下面命令(-d:表示文件路径。点:表示当前路径)
javac -d . PackageTest.java
然后就会在当前路径生成我们创建的包:com.packtest(一个包可以创建多个类,这里是PackageTest类),以及在包中的类:PackageTest.class。
执行下面命令来运行这个类:
java com.packtest.PackageTest
结果:

二、通过import访问包
1、创建PackageTestTwo.java
package com.packtesttwo;
import com.packtest.*;
public class PackageTestTwo {
public static void main(String []args) {
PackageTest test = new PackageTest();
test.getTest();
System.out.println("welcome to package two");
}
}
import com.packtest.*也可以换成import com.packtest.PackageTest(PackageTest为某个具体类名。)
2、运行包
这里我们调用了第一个程序“PackageTest.java”中的类”PackageTest“中的方法”getTest()“。
javac -d . PackageTestTwo.java java com.packtesttwo.PackageTestTwo
结果如下:

可以看到成功执行PackageTest.java中的方法”getTest()“。
三、通过完全限定名访问包
1、创建PackageTestThree.java
package com.packtestthree;
public class PackageTestThree {
public static void main(String []args) {
com.packtest.PackageTest test = new com.packtest.PackageTest();
test.getTest();
System.out.println("welcome to package three");
}
}
可以看到通过com.packtest.PackageTest来限定名,直接定位到PackageTest类。所以只对当前类有效。
2、运行包
javac -d . PackageTestThree.java java com.packtesttwo.PackageTestThree
结果如下:

可以看到成功执行PackageTest.java中的方法”getTest()“。
四、不同目录包的使用
通过下面命令将包和类放到了当前路径下的dir文件夹。
javac -d dir PackageTest.java
我们执行下面命令就行直接找到我们需要的包与类。
java -classpath dir/ com.packtest.PackageTest
这里的-classpath表示指向dir文件夹的路径。
最后结果:

五、总结
包与import的使用类似于c语言中的头文件、源文件的使用。
Java 包的理解与使用的更多相关文章
- Java基础之理解Annotation(与@有关,即是注释)
Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...
- Android数据库框架——ORMLite轻量级的对象关系映射(ORM)Java包
Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 事实上,我想写数据库的念头已经很久了,在之前写了一个答题系统的小项目那只是初步的带了一下数据库,数据库是比较强大的, ...
- 谈谈你对 Java 平台的理解
声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点, ...
- java提高篇-----理解java的三大特性之封装
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- 夯实Java基础系列5:Java文件和Java包结构
目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...
- Java包package之间调用问题-cmd运行窗口编译运行
问题:在使用了java包机制(package)后,编译出现错误:找不到或无法加载主类 xxx 的错误提示信息(各种编译不通过) 先给演示结果: 编译:javac -d classes src/a/He ...
- Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别
1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 面对对象编程是java非常重要的一部分,作者本身之前学过c ...
- Java包的基本概述
第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包.(还有其他作用,下述) 简单理解: ...
- Java文件和Java包结构
Java中的包概念 Java中的包是封装一组类,子包和接口的机制.软件包用于: 防止命名冲突.例如,可以有两个名称分别为Employee的类,college.staff.cse.Employee和co ...
随机推荐
- AGC037C Numbers on a Circle【构造】
从后往前做,每次将\(B_i\)减去相邻两个数,注意如果最大的数没有变成初始状态,那么肯定要减,否则相邻两边的就减不了,所以用堆维护.根据辗转相除的复杂度,\(O(n\log^2 n)\). #inc ...
- P2597 [ZJOI2012]灾难——拓扑,倍增,LCA
最近想学支配树,但是基础还是要打好了的: P2597 [ZJOI2012]灾难 这道题是根据食物链链接出一个有向图的关系,求一个物种的灭绝会连带几种物种的灭绝: 求得就是一个点能支配几个点: 如果一个 ...
- linux 网络带宽和延时测试
Linux下使用qperf命令来测试网络带宽和网络延迟 参考文章:https://access.redhat.com/solutions/2122681 若是没有安装qperf命令,请使用yum 安装 ...
- Java 面向对象(四)
代码块 什么是代码块 在类中或方法当中 使用 { } 括起来的一段代码,就称它是一个代码块. 在代码块当中定义的变量我们称是局部变量,在外面是没有办法使用的.这里定义的 a 就是一个局部变量. 代码块 ...
- Python JSON 字符串 转 json 基本使用
字符串 转 json import json jsonData = '{"a":1,"b":2,"c":3,"d":4 ...
- C++ 中virtual 用法
一.virtual 修饰基类中的函数,派生类重写该函数: #include using namespace std; class A{ public: virtual void display(){ ...
- 使用requirejs+vue 打造 无需编译发布便捷修改调整的模块开发方案 (一)
前言 不知道大家有没有这种感觉,现在流行的很多前端技术,基本上都基于webpack编译,当然不是说这种方案不好,在标准的开发流程运行中,这种方式其实也挺不错,管理方便,代码统一. 痛点:项目不是单独针 ...
- android studio: 实现类似于XCode中的#pragma mark的效果
代码行数写多了,想找一个指定的方法真困难,关键有时候记不住方法的名字,用Ctrl+O也不好使,突然想到以前做iOS开发时,XCode里有一个#pragma mark的功能,很好用:在代码中定义这样一个 ...
- jenkins参数化构建&HTML报告
背景: 每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建. ...
- centos6.8 ssh 问题
xshell用ROOT不能登录 需要把 /etc/ssh/sshd_config 中的端口新建一个 不能用默认的