Java程序设计电子教案第四章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 包和接口 4.1 包 4.2 访问保护 4.3 引入包 4.4 接口 4.1 包 在编制大程序的时候,常常会定义许多不同用途的类。如何更好地将这些类组织起来,是一个很重要的问题。这不仅可以使程序整体清晰条理,还可以使其他项目中对这些类的引用更为方便。为此,Java引入了包的概念。 包是类的容器,用于保证类名空间的一致性,例如,可以在自己的包内创建一个名为List的类而不会与别人创建的其他List类重名。由于Java是一种网络编程语言,支持在Internet上动态装载模块,因此它特别注意避免名字空间的冲突。可以认为包是一个名字空间,在该空间中,除了方法重载的情形外,同一个相同类型(类、接口、变量和方法)的名字只能出现一次。而各包之间出现重名,这时系统依靠包名对重名的标识符进行区分。实际上,在程序中使用的每一个变量和方法都隐含地用全限定名进行访问。 限定名的组成方式为:[格式]包名.类名.变量名或方法名 4.1 包 4.1.1 定义包 创建一个包只需要包含一个package命令作为一个Java源文件的第一句就可以了。该文件中定义的任何类将属于指定的包。package语句定义了一个存储类的名字空间。如果你省略package语句,类名被输入一个默认的没有名称的包。尽管默认包对于短的例子程序很好用,但对于实际的应用程序它是不适当的。多数情况,程序编写者需要为自己的代码定义一个包。下面是package声明的通用形式: package pkg; 这里,pkg是包名。例如,下面的声明创建了一个名为MyPackage的包。 package MyPackage; 4.1 包 Java用文件系统目录来存储包。例如,任何你声明的MyPackage中的一部分的类的.class文件被存储在一个MyPackage目录中。记住这种情况是很重要的,目录名必须和包名严格匹配。 多个文件可以包含相同package声明。package声明仅仅指定了文件中定义的文件属于哪一个包。它不拒绝其他文件的其他方法成为相同包的一部分。多数实际的包伸展到很多文件。你可以创建包层次。为做到这点,只要将每个包名与它的上层包名用点号“.”分隔开就可以了。一个多级包的声明的通用形式如下: package pkg1[.pkg2[.pkg3]]; 4.1 包 包层次一定要在Java开发系统的文件系统中有所反映。例如,一个由下面语句定义的包: package java.awt.image; 需要在你的UNIX、Windows或Macintosh文件系统的 java/awt/image, java\awt\image或java:awt:image中分别保存。一定要仔细选用包名。你不能在没有对保存类的目录重命名的情况下重命名一个包。 4.1 包 4.1.2 编译和运行包 在介绍运用包的例子之前,我们有必要先来讲解一下类路径环境变量。因为Java编译器考虑特定位置作为包层次的根被类路径(CLASSPATH)控制。 如果我们没有用到package语句,我们可以在同样的未命名的默认包中保存所有的类。这样做允许你仅仅通过在命令行键入类名编译源文件和运行Java解释器,并得到结果。这种情况下它还会工作是因为默认的当前工作目录(.)通常在类路径环境变量中为Java运行时间默认定义。然而,当有包参与时,事情就不这么简单了,如果用package语句指明一个包,则包的层次结构必须与文件目录的层次相同。 4.1 包 例如,我们在test目录下创建了一个名为packTest的类放在包test中,然后保存在文件packTest.java中。对该文件进行编译后,得到字节码文件packTest.class。如果我们直接在test目录下运行javapackTest,解释器返回”can’t find class packTest”(找不到类packTest),因为这时类packTest处于包test中,对它的引用应为test.packTest,于是我们运行java test.packTest,但解释器仍然返回“can’t find class test\packTst”(找不到类 test\packTest)。这时我们可以查看CLASSPATH,发现它的值为.;C:\java\classes,表明Java解释器在当前目录和Java类库所在目录c:\java\classes查找,也即在\test\test目录下查找类packTest,因此找不到,改正的方法可以有两种: 4.1 包 (1)在test的上一级目录运行java test.packTest。 (2)修改CLASSPATH,使其包括当前目录的上一级目录。 由此可以看出,运行一个包中的类时,必须指明包含这个类的包,而且要在适当的目录下运行,同时正确地设定环境变量CL

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档