首页 > 代码库 > java中内部类的创建四种情况,三种方式,及内部数据访问权限
java中内部类的创建四种情况,三种方式,及内部数据访问权限
内部类和外部类的关系,及内部静态类的数据访问权限,声明方式。
第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,public 类型的访问权限。外部类为非静态声明和权限如下:
package com; public class Test1 { //@author 张春蕾 private class Name{ private int i =1; public int s = 2; protected int m =3; } public static void main(String[] args){ Test1 test = new Test1(); <span style="color:#ff0000;">Test1.Name name = test.new Name(); System.out.print(name.i);</span> System.out.print(name.s); System.out.print(name.m); } }声明方式,而且所有的内部参数不论什么都可以输出。当内部类为静态类时,声明方式会发生变化:
package com; public class Test1 { //@author 张春蕾 private static class Name{ private int i =1; public int s = 2; protected int m =3; } public static void main(String[] args){ Test1 test = new Test1(); <span style="color:#ff0000;">Test1.Name name = new Name();</span> System.out.print(name.i); System.out.print(name.s); System.out.print(name.m); } }上面的方式都是在Test1的内部进行访问,现在外部的Test2力访问情况为第二种,当内部类为非静态的时候的声明方式:
package com; public class Test1 { //@author 张春蕾 <span style="color:#33cc00;">protected</span> class Name{ private int i =1; public int s = 2; protected int m =3; } public static void main(String[] args){ Test2 t = new Test2(); t.test(); } } class Test2{ public void test(){ <span style="color:#009900;">Test1 test = new Test1(); Test1.Name name = test.new Name();//跟第一种情况一样 System.out.println(name.m); System.out.print(name.s);</span> } }
跟第一种的非静态内部类的声明方式相同,不过不能访问内部静态变量,当内部类为静态时,访问形式:
package com; public class Test1 { //@author 春蕾 <span style="color:#33cc00;">protected</span> static class Name{ private int i =1; public int s = 2; protected int m =3; } public static void main(String[] args){ Test2 test2 = new Test2(); test2.test(); } } class Test2{ public void test(){ <span style="color:#009900;">Test1.Name name2 = new Test1.Name(); System.out.print(name2.m); System.out.print(name2.s);</span> } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。