标签:
包,权限修饰符,内部类,练习题
1、包
包:package,对类进行分类管理的文件夹。
包的格式:package 包名,多级包用 “.” 隔开,如:package asia.persia 。
带包文件的编译:手动创建相应的文件夹;或者编译命令加 “ -d” ,如:javac -d liverpool.java 。
访问不同包中的类文件:类文件前加上包的全路径,如:asia.persia.Demo de=new asia.persia.Demo(); 。
使用 “import” 关键字导入包。
import:导入包,import 包名,多级包用 “.” 隔开,如:import asia.persia ,之后就可以直接 Demo de=new Demo(); 。
注意事项:package必须是程序的第一条执行语句,没有package表示没有包名。
一个文件中,package只能有一个、import可以有多个、class可以有多个(建议有一个)。
2、权限修饰符。
3、内部类
内部类的概念:定义在类中的类,如:class C1{ class C2{} } 。
内部类的特点:内部类可以直接访问外部类的成员,外部类需要创建对象访问内部类的成员。
内部类的分类:成员内部类,局部内部类。
1 class A{ 2 class B{ 3 //成员内部类 4 } 5 6 public void cod5(){ 7 class C{ 8 //局部内部类 9 } 10 11 C c=new C(); //访问局部内部类 12 //c.局部内部类的功能 13 } 14 15 public void cod2(){ 16 B b=new B(); //访问成员内部类 17 } 18 } 19 20 class ABC{ 21 public void asdf(){ 22 A.B ab=new A().new B(); //访问成员内部类 23 ab.cod5(); //访问局部内部类 24 } 25 }
成员内部类与this。
1 class Fin{ 2 int num=1; 3 4 class En{ 5 int num=2; 6 7 public void show(){ 8 int num=3; 9 10 System.out.println(num); 11 System.out.println(this.num); 12 System.out.println(Fin.this.num); 13 } 14 } 15 } 16 17 //依次输出:3,2,1
局部内部类访问局部变量,局部变量必须用final修饰,否则生命周期报错。
1 class Fin{ 2 public void method{ 3 final int num=1; 4 5 class En{ 6 public void show(){ 7 System.out.println(num); 8 } 9 } 10 } 11 }
注意事项:静态内部类只能访问外部类的静态成员;静态内部类可以定义静态、非静态方法。
4、练习题
答案
1 interface Inter{ 2 void show(); 3 } 4 5 class Outer{ 6 //补齐代码 7 public static Inter method(){ 8 return new Inter(){ 9 public void show(){ 10 System.out.println("HelloWord"); 11 } 12 } 13 } 14 } 15 16 class OuterDemo{ 17 public static void main(String[] args){ 18 Outer.method().show(); 19 } 20 } 21 22 //输出:HelloWord
标签:
原文地址:http://www.cnblogs.com/liverpool/p/4823206.html