java课件第07章——内部类_包_枚举
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
http://www.zte-edu.com
内部类可以声明为抽象类,因此可以被其它的内 部类继承。也可以是final的。 和外层类不同,内部类可以声明为private或 protected。
内部类可以声明为static的,但此时就不能再使用外层封 装类的非static的成员变量; 非static的内部类中的成员不能声明为static的,只有 在顶层类或static的内部类中才可声明static成员
---法一: Outer.Inner in=new Outer().new Inner(); ---法二: Outer o=new Outer(); Outer.Inner I=o.new Inner(); 如果内部类是static的,也可以用下面方法: Outer.Inner in=new Outer.Inner();
枚举类型
http://www.zte-edu.com
Java SE5.0开始,Java引用入了一种新的引 用数据类型——枚举(Enum)。 枚举类型均自动继承了java.lang.Enum类。 枚举类型使用一组常量值来表示特定数据集合, 该集合中的数目确定(通常较少),且数据值预 先定义。
http://www.zte-edu.com
类的名字只能在定义的范围内使用,除非使用有 效的全名 Inner类也可以定义在方法的内部。方法中 final类型的局部变量,都可以被Inner类的方 法访问。
http://www.zte-edu.com
在外部使用其它类中的内部类时,应指明其完整 层次,并显示建立对象间的依赖关系。 实例化内部类的两种方法:
内部类
普通内部类:在Java类中、方法、语句块的外部 定义的非静态类。 局部内部类:定义在方法或语句块中的类。 匿名类:定义在方法或语句块中,没有名字,只 能在所在之处使用一次。 内部类与其所在的外层类之间存在着逻辑上的依 赖关系——内部类的对象不能单独存在,它必须 依赖一个外层类的对象。 在内部类中可以直接访问其外层类中的成员、包 括属性和方法,即使这些属性和方法是private 的。
Public enum Week{ MON,TUE,WED,THU,FRI,SAT,SUN} Public class TestEnum{ TestEnum t = new TestEnum(); te.work(Week.SUN); } Public void work(Week day){ if (day.equals(Week.SAT)){……..}; }
http://www.zte-edu.com
内部类中出现变量命名冲突时,可以使用内部类 对象的特殊属性“<外层类名.this>”来访问其 所依赖外层类对象的成员。
Class A{ private int s = 111; public class B{ private int s = 222; public void mb(int s){ System.out.println(s); System.out.println(this.s); System.out.println(A.this.s); } } } Public class Test{ A a = new A(); A.B b = a.new B(); b.mb(333); }
Fra Baidu bibliotek
http://www.zte-edu.com
导入包:import语句
在需要使用不同的包中的类时,使用import语句来引入 所需要的类 import 语句的语法为: import <pkg_name>[.<sub_pkg_name>].<class_name>; import <pkg_name>[.<sub_pkg_name>].*;
http://www.zte-edu.com
声明包:package语句
package语句的语法为:
• package <top_pkg_name> [ .<sub_pkg_name>] * ;
举例: package zte.edu.college; public class Student{ …… }