JavaJDK6学习笔记章.ppt

上传人:max****ui 文档编号:6358456 上传时间:2020-02-23 格式:PPT 页数:25 大小:265.50KB
返回 下载 相关 举报
JavaJDK6学习笔记章.ppt_第1页
第1页 / 共25页
JavaJDK6学习笔记章.ppt_第2页
第2页 / 共25页
JavaJDK6学习笔记章.ppt_第3页
第3页 / 共25页
点击查看更多>>
资源描述
第9章 管理类别档案内部类别package与import 成员内部类别 区域内部类别 成员内部类别 基本上是在一个类别中直接宣告另一个类别所产生的文件名为 外部类别名称 内部类别名称 class publicclassOuterClass 内部类别privateclassInnerClass 成员内部类别 区域内部类别 区域内部类别定义于一个方法中 类别的可视范围与生成之对象仅止于该方法之中内部类别还可以被宣告为 static 由于是 static 它不能存取外部类别的方法 而必须透过外部类别所生成的对象来进行呼叫 成员内部类别 区域内部类别 被宣告为static的内部类别 事实上也可以看作是另一种名称空间的管理方式 publicclassOuter publicstaticclassInner Outer Innerinner newOuter Inner 匿名内部类别 内部匿名类别可以是继承某个类别或是实作某个接口 new 类别或接口 实作 Objectobj newObject publicStringtoString 重新定义toString return 匿名类别物件 System out println obj 匿名内部类别 注意如果要在内部匿名类别中使用外部的局部变量 变量在宣告时必须為 final publicvoidsomeMethod finalintx 10 宣告finalObjectobj newObject publicStringtoString returnString valueOf x x可在匿名类别中使用 System out println obj 匿名内部类别 局部变量x并不是真正被拿来于内部匿名类别中使用x会被匿名类别复制作为数据成员来使用编译程序会要求您加上 final 关键词 这样您就知道不能在内部匿名类别中改变x的值内部匿名类别在编译完成之后会产生 外部类别名称 编号 class 编号为1 2 3 n 每个编号n的档案对应于第n个匿名类别 设定套件 package 套件被设计与文件系统结构相对应为了要能建立与套件相对应的文件系统结构 您在编译时可以加入 d 参数 并指定产生的类别档案要储存在哪一个目录之下 packageonlyfun caterpillar publicclassPackageDemo publicstaticvoidmain String args System out println Hello World 设定套件 package javac d UsePackage java在目前的工作位置中会出现onlyfun目录 之下会有个caterpillar目录 而当中有個PackageDemo class档案 package 的设定会成为类别名称的一部份完整类别名onlyfun caterpillar PackageDemojavaonlyfun caterpillar PackageDemo 设定套件 package 完全描述 Fullyqualified 名称完整的指出 套件加类别 名称最后编译完成的 class档案必须放在onlyfun目录的caterpillar目录下 onlyfun caterpillar Point2Dp1 newonlyfun caterpillar Point2D 10 20 badclassfile Point2D classclassfilecontainswrongclass onlyfun caterpillar Point2DPleaseremoveormakesureitappearsinthecorrectsubdirectoryoftheclasspath Point2Dp1 newPoint2D 10 20 1error import的意义 您可以使用 import 关键词 告知编译程序您所要使用的类别是位于哪一个套件 importonlyfun caterpillar Point2D publicclassPoint2DDemo2 publicstaticvoidmain String args Point2Dp1 newPoint2D 10 20 System out printf p1 x y d d n p1 getX p1 getY import的意义 使用 import 指定时 可于套件指定加上 importonlyfun caterpillar publicclassPoint2DDemo3 publicstaticvoidmain String args Point2Dp1 newPoint2D 10 20 System out printf p1 x y d d n p1 getX p1 getY import的意义 可能出现以下的错误讯息将原始码与编译完成的档案放在一起并不是一个好的管理方式指定Classpath的方式如下执行程序 badclassfile Point2D javafiledoesnotcontainclassPoint2DPleaseremoveormakesureitappearsinthecorrectsubdirectoryoftheclasspath javac d classes src java java cp classesPoint2DDemo3 import的意义 同名冲突 importjava util Arrays importonlyfun caterpillar Arrays publicclassSomeClass java util Arraysisalreadydefinedinasingle typeimportimportonlyfun caterpillar Arrays 1error public与套件 没有被宣告为 public 的类别只能被同一个套件中的类别之实例呼叫使用类别成员也可以宣告为 public 宣告为 public 的类别成员可以被其它对象呼叫使用如果宣告类别时不使用 public protected 或 private 设定权限 则预设为 套件存取范围 Point2DDemo java 3 onlyfun caterpillar Point2Disnotpublicinonlyfun caterpillar cannotbeaccessedfromoutsidepackageonlyfun caterpillar Point2Dp1 new public与套件 Point2DDemo java 7 getX isnotpublicinonlyfun caterpillar Point2D cannotbeaccessedfromoutsidepackagep1 getX p1 getY public与套件 类别上的权限设定会约束类别成员上的权限设定效果等同于 packageonlyfun caterpillar classSomeClass publicvoidsomeMethod packageonlyfun caterpillar classSomeClass voidsomeMethod public与套件 定义一个类别 但没有定义建构方法时 编译程序会自动帮您产生一个预设建构方法 packageonlyfun caterpillar publicclassTest packageonlyfun caterpillar publicclassTest publicTest public与套件 如果您自行定义建构方法 则编译程序就不会帮您加上预设建构方法在建构时 就必须指明使用哪个建构方法 packageonlyfun caterpillar publicclassTest publicTest inti public与套件 建议即使没有用到 在定义自己的建构方法的同时 也加上个没有参数的建构方法没有使用super 指定要使用父类别的哪个建构方法 则预设会寻找父类别中无参数的建构方法 packageonlyfun caterpillar publicclassTest publicTest 即使没用到 也先建立一个空的建构方法 publicTest inti public与套件 预设建构方法的访问权限是跟随着类别的访问权限而设定由于类别宣告为public 所以预设建构方法访问权限為public packageonlyfun caterpillar publicclassTest public与套件 如果是以下的话则预设建构方法访问权限为套件访问权限 也就是编译程序会自动为您扩展为 packageonlyfun caterpillar classTest packageonlyfun caterpillar classTest Test public与套件 import静态成员 importstaticjava lang System out publicclassHelloWorld publicstaticvoidmain String args out println Hello World importstaticjava lang System out importstaticjava util Arrays sort publicclassImportStaticDemo publicstaticvoidmain String args int array 2 5 3 1 7 6 8 sort array for inti array out print i import静态成员 如果您想要 import 类别下所有的静态成员 也可以使用 字符对于名称冲突编译程序可能透过以下的几个方法来解决成员覆盖局部变量覆盖重载 Overload 方法上的比对 importstaticjava util Arrays
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!