Java中import的使用
很多人以为原始码 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 s 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。
让我们先了解一下,Java 的 package 到底有何用处。
其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字。package 名称有很多 . 的,就好像是复姓。比如说 ng,就是复姓 ,名字为 String 的类别;tStream 则是复姓
,名字为 InputStream 的.类别。
Java 会使用 package 这种机制的原因也非常明显,就像我们取姓名一样,光是一间学校的同一届同学中,就有可能会出现不少同名的同学,如果不取姓的话,那学校在处理学生数据,或是同学彼此之间的称呼,就会发生很大的困扰。相同的,全世界的 Java 类别数量,恐怕比台湾人口还多,而且还不断的在成长当中,如果类别不使用套件名称,那在用到相同名称的不同类别时,就会产生极大的困扰。幸运的是,Java 的套件名称我们可以自己取,不像人的姓没有太大的选择 ( 所以有很多同名同姓的 ),如果依照 Sun 的规范来取套件名称,那理论上不同人所取的套件名称不会相同 ( 请参阅 “命名惯例”的相关文章 ),也就不会发生名称冲突的情况。
可是问题来了,因为很多套件的名称非常的长,在写程序时,会多打好多字,花费不少时间,比如说:
tStream is = ;
tStreamReader isr= new tStreamReader(is);
eredReader br = new eredReader(isr);
实在是不美观又麻烦。于是,Sun 想了一个办法,就是 import.
这个 import 就是在程序一开头的时候,先说明程序中会用到那些类别的
简称,也就是只称呼名字,不称呼他的姓。首先,在档案开头写:
import em;
import tStream;
import tStreamReader;
import eredReader;
这几行说明了这四个姓名的类别,在程序中只用他的名字来称呼,所以当程序中提到 System 就是指 em,而 InputStream 就是指 tStream,依此类推。于是原来的程序就变成:
InputStream = ;
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
这样看起来是不是清爽多了呢?如果这些类别用的次数很多,那就更能体会到import 的好处了。可是这样还是不够,因为懒是人的天性,还是会有人觉得打太多 import 了也很浪费时间,于是 Sun 又提供了一个方法:
import .*;
import .*;
意思就是,等一下程序中提到的没有姓名的类别,不是姓 ,就是姓,如果这两个里面有同样名字的类别,而不幸的你又只用名字称呼这个类别,那编译器仍然会跟你抱怨,因为它还是不知道你说的这个类别指那一
个姓的类别。那可不可以再懒一点呢,只写:
import java.*;
历史告诉我们,人可以懒,但不能太懒,这样是不行的。因为那些类别是姓 而不是姓 java.就像姓「诸葛」的人应该不会喜欢你称他为「诸」先生吧。
为甚么我一开始说 import 跟 #include 不同呢?因为 import 的功能到此为止,它不像 #include 一样,会将档案内容载入进来。import 只是请编译器帮你打字,让编译器把没有姓的类别加上姓,并不会把别的文件的程式码写进来。如果你想练习打字,可以不要使用 import,只要在用到类别的时候,用它的全部姓名来称呼它就行了(就像例子一开始那样),跟使用 import 完全没有甚么两样。
另外,虽然人不可以太懒,但是 Sun 还是帮我们多偷了一点懒。因为 这个套件实在是太常太常太常用到了,几乎没有程序不用它的,所以不管你有没有写 import ;,编译器都会自动帮你补上,也就是说编译器只要看到没有姓的类别,它就会自动去 里面找找看,看这个类别是不是属于这个套件的。所以我们就不用特别去import 了。
-
七种计算机认证考试简介
眼下,各种计算机证书可是宝贝,有了这一纸证书,招聘台前腰板儿都要硬三分。以下是小编为大家介绍七种计算机认证考试,欢迎大家前来了解!全国计算机应用技术证书(NIT)考试它是教育部考试中心推出的以全体公民为对象的非学历性的计算机考试。这个考试注重培养学员使用...
-
计算机二级office考试上机必知内容
成为一名程序员首先要掌握一种主流编程语言,学习任意一种主流的编程语言,例如C++语言。下面是小编整理的.关于计算机二级office考试上机必知内容,欢迎大家参考!一、考试内容要求:1、掌握计算机基础知识及计算机系统组成2、了解信息安全的基本知识、掌握计算机病毒...
-
2017年计算机二级office题库选择题
2017年3月计算机等级考试定于3月25日-28日举行,下面是小编整理的一些关于计算机二级office题库选择题,希望对各位考生有所帮助!1.程序流程图中带有箭头的线段表示的是()。A.图元关系B.数据流C.控制流D.调用关系答案:C【解析】在数据流图中,用标有名字的箭头表示数...
-
2016年《构建H3C数据中心网络》模拟试题及答案
1.数据中心分类中,按TIA-942可以分成()级,按国标GB50174可以分成()级?A、3,3B、3,4C、4,3D、4,4正确答案:C2.数据中心的互联网出口带宽优化主要包括如下哪些方面?(选择一项或多项)A、恶意流量过滤B、专线备份管理C、不同ISP用户就近选择相应服务器D、内网用户就近选择...