雾里看花终隔一层——探析package和import
package是什么
package好比java用来组织文件的一种虚拟文件系统。package把源代码.java文件,.class文件和其他文件有条理的进行一个组织,以供java来使用。
源代码的要求最严格,而一旦源代码自己声明了在哪个package路径之下,class也就有了自己在哪个package下面的信息,就是那句程序开头的"package xx.xx.xx"。package可以用来区分同样名称的.class的类,
.java文件和.class不是一对一,而是一对多的关系,不过.java和public的类是一对一的。所有这些.class,都由这个.java开头的package语句来确定自己在package中的位置。
对于java来讲,所有需要的程序和资源都要以package的形式来组织和读取。package的出现可以让类文件(运行文件)和源文件相分离。
我刚开始运行pack.D文件时,错误提示找不到加载类,原因是根本没有pack这个文件夹,一种比较直接的解决方法就是新建一个pack文件夹


当然你不可能每次都重新建一个文件夹,你可以指定一个盘的文件夹,比如e:\myclass,然后javac -d e:\myclass D.java,这时会自动生成一个pack文件夹。接着我就运行了,发现运行文件不存在,仔细想一下,class文件已经被放在了e盘;你可以set classpath=e:\myclass,或者进入E盘操作。

import是什么
import只是一种让你偷点懒少打字的方法,绝对不会影响你的classpath,它只是一种省事的办法。我个人的感受有点像c语言里的define,可以省去多次续写和修改的麻烦。如果你不用import,你用Cristiano这个类,就需要写java.Ronaldo.Cristiano。而用了import的话以后代码中写Cristiano就可以了,省事。import可以使用通配符*,这里不再赘述。我讲一下我写java时遇到的问题,首先在一个包中调用另一个包中的类时,要记住类的名是包名.类名; 一个包中的类要被访问,必须要有足够大的权限,类公有后,被访问的成员也要公有。
不过,当你觉得你对package和import依旧云里雾里,这些你都不用在意;当你下了IDEA之后,这些你都不用操心,因为IDEA会自动帮你做好。
王国维在《人间词话》中这样写道,“雾里看花,终隔一层。”只有对自己疑惑的内容抽丝剥茧,才可寻得其中的奥妙。
雾里看花终隔一层——探析package和import的更多相关文章
- 中文分词工具探析(一):ICTCLAS (NLPIR)
1. 前言 ICTCLAS是张华平在2000年推出的中文分词系统,于2009年更名为NLPIR.ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本在此). 作者在 ...
- 深入探析koa之中间件流程控制篇
koa被认为是第二代web后端开发框架,相比于前代express而言,其最大的特色无疑就是解决了回调金字塔的问题,让异步的写法更加的简洁.在使用koa的过程中,其实一直比较好奇koa内部的实现机理.最 ...
- 开源中文分词工具探析(三):Ansj
Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高 ...
- matplotlib工具栏源码探析三(添加、删除自定义工具项)
转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具 ...
- 构造器与this、package、import关键字的使用
构造器一.构造器的作用: 1.创建对象 2.初始化对象的信息 二.说明: 1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器 2.定义构造器的格式:权限修饰符 类名(形参列表){} ...
- 中文分词工具探析(二):Jieba
1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + H ...
- 【20140113】package 与 import
一个完整的java源程序应该包括下列部分: package语句: //该部分至多只有一句,必须放在源程序的第一句 import语句: public classDefinition: //公共类定义部分 ...
- JAVA - package与import解析(一)
一.为什么要引入package和import?这个问题和c++中引入命名空间是一样的,也是为了解决重名问题.java通过包机制来解决重名问题,也就相当于给重名的代码加一系列前缀,从而达到唯一标识的作用 ...
- Java跟Javac,package与import
今天讨论一下2个指令与2个关键字. 这次的没有IDE环境,直接在txt文本里编程,在cmd里编译运行,搞清楚java的文件结构,还有怎么设置编译器查找类的路径.首先是javac,有一个可带参数java ...
随机推荐
- Ubuntu 14.04 MySQL同步
主服务器:192.168.2.212 从服务器:192.168.2.211 主服务器(192.168.2.212): 先到/etc/mysql/my.cnf下 将 bind-address 127 ...
- SplendidCRM 中文语言包改正版
由于官方的中文语言包太多地方词不达意,可能是文化差异吧,如“删除”却写成“德尔”.本人修改了几十个地方,还修改了不能清除已有数据的Bug.相关文件在下载包中. http://files.cnblogs ...
- Girls and Boys
Girls and Boys Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Pebbles
Pebbles Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 4417 (划分树+区间小于k统计)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目大意:给定一个区间,以及一个k值,求该区间内小于等于k值的数的个数.注意区间是从0开始的 ...
- BZOJ4026: dC Loves Number Theory
Description dC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯 竭的水题资源. 给定一个长度为 n的正整数序列A,有q次询问,每次询问一段区间内所 ...
- csv格式
Name,Password nmae:xiaofan,password:1234567890 每个逗号就是一列
- hdu Cup
这题是道水题,用数学方法做比较简单.因为在做二分法的专题,所以这里采用二分的方式做,很简单,但是还是要用到数学的知识,比如三角形相似,圆台的 体积公式等. #include"iostream ...
- Twemproxy 介绍与使用
Twemproxy是一种代理分片机制,由Twitter开源.Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回.该方案很好的解决了单个Re ...
- cookiecutter-flask生成的框架里边自带了一个CRUDMixin类
单元测试的必要性 之前曾经写过一篇讲单元测试的,正好最近也在实践和摸索.我似乎有种洁癖,就是我会严格遵守流程性的东西,比如测试,注释和文档等.目前就职的公司在我接手项目的时候是没有一行单元测试的,我挺 ...