- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《javaimport、package作用与用法
java import、package作用与用法
有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不?太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import?的程式通通写到编译好的 .class 档案中,或是认為 import 跟 C/C++ 的?#include 相似,实际上,这是错误的观念。
让我们先了解一下,Java 的 package 到底有何用处。
其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字?。package 名称有很多 . 的,就好像是复姓。比如说java.lang.String,就?是复姓 java.lang,名字為 String 的类别;java.io.InputStream 则是复姓?java.io,名字為 InputStream 的类别。Java 会使用 package 这种机制的原因也非常明显,就像我们取姓名一样?,光是一间学校的同一届同学中,就有可能会出现不少同名的同学,如果不取?姓的话,那学校在处理学生资料,或是同学彼此之间的称呼,就会发生很大的?困扰。相同的,全世界的 Java 类别数量,恐怕比台湾人口还多,而且还不断?的在成长当中,如果类别不使用套件名称,那在用到相同名称的不同类别时,?就会產生极大的困扰。幸运的是,Java 的套件名称我们可以自己取,不像人?的姓没有太大的选择 ( 所以有很多同名同姓的 ),如果依照 Sun 的规范来取套件名称,那理论上不同人所取的套件名称不会相同 ( 请参阅 命名惯例?的相关文章 ),也就不会发生名称衝突的情况。
可是问题来了,因為很多套件的名称非常的长,在写程式时,会多打好多字,花费不少时间,比如说:
????? java.io.InputStream is = java.lang.System.in;???? java.io.InputStreamReader isr= new java.io.InputStreamReader(is);???? java.io.BufferedReader br = new java.io.BufferedReader(isr);
实在是不美观又麻烦。於是,Sun 想了一个办法,就是 import。
这个 import 就是在程式一开头的时候,先说明程式中会用到那些类别的简称,也就是只称呼名字,不称呼他的姓。首先,在档案开头写:
????? import java.lang.System;???? import java.io.InputStream;???? import java.io.InputStreamReader;???? import java.io.BufferedReader;
这几行说明了这四个姓名的类别,在程式中只用他的名字来称呼,所以当程式中提到 System 就是指 java.lang.System,而 InputStream 就是指?java.io.InputStream,依此类推。於是原来的程式就变成:
????? InputStream = System.in;???? InputStreamReader isr = new InputStreamReader(is);???? BufferedReader br = new BufferedReader(isr);
这样看起来是不是清爽多了呢?如果这些类别用的次数很多,那就更能体会到import 的好处了。可是这样还是不够,因為懒是人的天性,还是会有人觉得打太多 import 了也很浪费时间,於是 Sun 又提供了一个方法:
????? import java.lang.*;???? import java.io.*;
意思就是,等一下程式中提到的没有姓名的类别,不是姓 java.lang,就是姓?java.io,如果这两个裡面有同样名字的类别,而不幸的你又只用名字称呼这?个类别,那编译器仍然会跟你抱怨,因為它还是不知道你说的这个类别指那一个姓的类别。那可不可以再懒一点呢,只写:
????? import java.*;
歷史告诉我们,人可以懒,但不能太懒,这样是不行的。因為那些类别是姓?java.io 而不是姓 java。就像姓『诸葛』的人应该不会喜欢你称他為『诸』?先生吧。
為甚麼我一开始说 import 跟 #include 不同呢?因為 import 的功能?到此為止,它不像 #include 一样,会将档案内容载入进来。import 只是请?编译器帮你打字,让编译器把没有姓的类别加上姓,并不会把别的档案的程?式码写进来。如果你想练习打字,可以不要使用 import,只要在用到类别的时
文档评论(0)