内部类

 
package syntax;

import syntax.OUTER.Innn;

public class INNER {
	
	public static void main(String args[])
	{
		//Innn in = new OUTER.Innn();
		OUTER s = new OUTER();
		s.produce();
		
	}
	
}
interface Car{
	
	void run();
}
class OUTER{
	

	private String a="outer a" ;
	private static String b="outer b";
	class Inner{
		private String a ="inner a";
		//private static String b = "inner b";//不能声明为静态,因为内部类不是静态的
		public void get1()
		{
			System.out.println(a);//访问自己的变量
		}
		public void get2()
		{
			System.out.println(this.a);//也是访问自己的变量
		}
		public void get3() 
		{
			System.out.println(OUTER.b);//访问外部静态
		}
		public void get4()
		{
			System.out.println(OUTER.this.a);//访问外部类变量
		}
		public void show()
		{
			System.out.println("I'm Inner show");
		}
	
		/*
		 * 		如果内部类与外部有重名的变量  a
		 * 			a | this.a 都是默认取内部里面的变量
		 * 			Outer.b 用于取外部静态变量 
		 * 			Outer.this.a 用于访问外部与内部类重名的属性
		 * */
		
	}
	public void showOuter()// 外部类访问内部类
	{
		Inner inner = new Inner();
		inner.show();
	}
	public static void staticShowOuter()// 通过静态方法访问内部类
	{
		Inner in = new OUTER().new Inner();
		in.show();
	}
	public void showInner()
	{
		Inner inner = new Inner();
		inner.get1();
		inner.get2();
		inner.get3();
		inner.get4();
	}
	//-----++++++++++++++++++++-0-----
	//下面是方法内部类
	public void innerFun()
	{
		final String c = "i in fun";
		class Inner2
		{
			String i = "i in fun'inner";
			public void show()
			{
				System.out.println(a);//可以直接访问外部类的变量(不与内部重名)
				System.out.println(OUTER.this.a);
				System.out.println(c);
			}
		}
		Inner2 in2 = new Inner2();
		in2.show();//在方法里定义一个对象然后调用这个类里面的方法
	}
	
	// 下面是静态内部类--------+++++++++++
	
	public static class Innn
	{
		public String s = "innn s";
		public static String gg = "innn static gg";
		public void show1(){
			System.out.println("it is show1");
		}
		public static void show2()
		{
			System.out.println("it is show2");
		}
	}
	/*
	 * 		内部类,一定要实现一个接口或父类,并且只能重写里面的方法
	 * */
	public void produce()
	{
		Car car = new Car() {

			
			public void run() {
				System.out.println("I'm run");
				
			}
			
		};
		car.run();
	}
	
	
}
转载: http://blog.sina.com.cn/s/blog_56898c310100a3i3.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值