JavaJDK6学习笔记章.ppt

上传人:xin****828 文档编号:14601299 上传时间:2020-07-25 格式:PPT 页数:25 大小:265.50KB
收藏 版权申诉 举报 下载
JavaJDK6学习笔记章.ppt_第1页
第1页 / 共25页
JavaJDK6学习笔记章.ppt_第2页
第2页 / 共25页
JavaJDK6学习笔记章.ppt_第3页
第3页 / 共25页
资源描述:

《JavaJDK6学习笔记章.ppt》由会员分享,可在线阅读,更多相关《JavaJDK6学习笔记章.ppt(25页珍藏版)》请在装配图网上搜索。

1、第9章,管理类别档案 内部类别 package与import,成员内部类别、区域内部类别,成员内部类别,基本上是在一个类别中直接宣告另一个类别 所产生的文件名为外部类别名称$内部类别名称.class,public class OuterClass /内部类别 private class InnerClass / . ,成员内部类别、区域内部类别,区域内部类别定义于一个方法中,类别的可视范围与生成之对象仅止于该方法之中 内部类别还可以被宣告为static“ 由于是“static”,它不能存取外部类别的方法,而必须透过外部类别所生成的对象来进行呼叫,成员内部类别、区域内部类别,被宣告为static

2、的内部类别,事实上也可以看作是另一种名称空间的管理方式,public class Outer public static class Inner . . Outer.Inner inner = new Outer.Inner();,匿名内部类别,内部匿名类别可以是继承某个类别或是实作某个接口,new类别或接口() /实作 ,Object obj = new Object() public String toString() /重新定义toString() return匿名类别物件; ; System.out.println(obj);,匿名内部类别,注意如果要在内部匿名类别中使用外部的局部变量

3、,变量在宣告时必须為final,. public void someMethod() finalint x = 10; /宣告final Object obj = new Object() public String toString() return String.valueOf(x); /x可在匿名类别中使用 ; System.out.println(obj); .,匿名内部类别,局部变量x并不是真正被拿来于内部匿名类别中使用 x会被匿名类别复制作为数据成员来使用 编译程序会要求您加上“final”关键词,这样您就知道不能在内部匿名类别中改变x的值 内部匿名类别在编译完成之后会产生外部类别

4、名称$编号.class,编号为1、2、3.n,每个编号n的档案对应于第n个匿名类别,设定套件(package),套件被设计与文件系统结构相对应 为了要能建立与套件相对应的文件系统结构,您在编译时可以加入-d参数,并指定产生的类别档案要储存在哪一个目录之下,package onlyfun.caterpillar; public class PackageDemo public static void main(String args) System.out.println(Hello! World!); ,设定套件(package),javac -d . UsePackage.java 在目前的

5、工作位置中会出现onlyfun目录,之下会有个caterpillar目录,而当中有個PackageDemo.class档案 “package”的设定会成为类别名称的一部份 完整类别名onlyfun.caterpillar.PackageDemo java onlyfun.caterpillar.PackageDemo,设定套件(package),完全描述(Fullyqualified)名称 完整的指出套件加类别名称 最后编译完成的.class档案必须放在onlyfun目录的caterpillar目录下,onlyfun.caterpillar.Point2D p1 = new onlyfun.c

6、aterpillar.Point2D(10, 20);,bad class file: .Point2D.classclass file contains wrong class: onlyfun.caterpillar.Point2DPlease remove or make sure it appears in the correct subdirectory of the classpath. Point2D p1 = new Point2D(10, 20); 1 error,import的意义,您可以使用import关键词,告知编译程序您所要使用的类别是位于哪一个套件,import o

7、nlyfun.caterpillar.Point2D; public class Point2DDemo2 public static void main(String args) Point2D p1 = new Point2D(10, 20); System.out.printf(p1: (x, y) = (%d, %d)%n, p1.getX(), p1.getY(); ,import的意义,使用import指定时,可于套件指定加上*,import onlyfun.caterpillar.*; public class Point2DDemo3 public static void ma

8、in(String args) Point2D p1 = new Point2D(10, 20); System.out.printf(p1: (x, y) = (%d, %d)%n, p1.getX(), p1.getY(); ,import的意义,可能出现以下的错误讯息 将原始码与编译完成的档案放在一起并不是一个好的管理方式 指定Classpath的方式如下执行程序,bad class file: .Point2D.java file does not contain class Point2D Please remove or make sure it appears in the co

9、rrect subdirectory of the classpath.,javac -d ./classes ./src/*.java,java -cp ./classes Point2DDemo3,import的意义,同名冲突,import java.util.Arrays; import onlyfun.caterpillar.Arrays; public class SomeClass . ,java.util.Arrays is already defined in a single-type import import onlyfun.caterpillar.Arrays; 1 e

10、rror,public与套件,没有被宣告为“public”的类别只能被同一个套件中的类别之实例呼叫使用 类别成员也可以宣告为public,宣告为public的类别成员可以被其它对象呼叫使用 如果宣告类别时不使用public、protected或private设定权限,则预设为套件存取范围,Point2DDemo.java:3: onlyfun.caterpillar.Point2D is not public in onlyfun.caterpillar; cannot be accessed from outside package onlyfun.caterpillar.Point2D p

11、1 = new,public与套件,Point2DDemo.java:7: getX() is not public in onlyfun.caterpillar.Point2D; cannot be accessed from outside package p1.getX(), p1.getY(); ,public与套件,类别上的权限设定会约束类别成员上的权限设定 效果等同于,package onlyfun.caterpillar; class SomeClass / . public void someMethod() / . ,package onlyfun.caterpillar;

12、class SomeClass / . void someMethod() / . ,public与套件,定义一个类别,但没有定义建构方法时,编译程序会自动帮您产生一个预设建构方法,package onlyfun.caterpillar; public class Test . ,package onlyfun.caterpillar; public class Test public Test() . ,public与套件,如果您自行定义建构方法,则编译程序就不会帮您加上预设建构方法 在建构时,就必须指明使用哪个建构方法,package onlyfun.caterpillar; public

13、 class Test public Test(int i) . . ,public与套件,建议即使没有用到,在定义自己的建构方法的同时,也加上个没有参数的建构方法 没有使用super()指定要使用父类别的哪个建构方法,则预设会寻找父类别中无参数的建构方法,package onlyfun.caterpillar; public class Test public Test() /即使没用到,也先建立一个空的建构方法 public Test(int i) . . ,public与套件,预设建构方法的访问权限是跟随着类别的访问权限而设定 由于类别宣告为public,所以预设建构方法访问权限為pub

14、lic,package onlyfun.caterpillar; public class Test ,public与套件,如果是以下的话 则预设建构方法访问权限为套件访问权限,也就是编译程序会自动为您扩展为,package onlyfun.caterpillar; class Test ,package onlyfun.caterpillar; class Test Test() ,public与套件,import静态成员,import static java.lang.System.out; public class HelloWorld public static void main(S

15、tring args) out.println(Hello! World!); ,import static java.lang.System.out; import static java.util.Arrays.sort; public class ImportStaticDemo public static void main(String args) int array = 2, 5, 3, 1, 7, 6, 8; sort(array); for(int i : array) out.print(i + ); ,import静态成员,如果您想要“import”类别下所有的静态成员,也可以使用 * 字符 对于名称冲突编译程序可能透过以下的几个方法来解决 成员覆盖 局部变量覆盖 重载(Overload)方法上的比对,import static java.util.Arrays.*;,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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