java中内部类的创建四种情况,三种方式,及内部数据访问权限

尊重原创,文章原地址:http://blog.csdn.net/chunlei_zhang/article/details/38391847

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式。

第一种,在外部类内部声明使用内部类,内部类的类型为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>
	}
}

</pre><p></p><pre>
跟第一种的非静态内部类的声明方式相同,不过不能访问内部静态变量,当内部类为静态时,访问形式:

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>
	}
}






  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值