java34

局部内部类:定义在方法中的类
1.

class A3{
	void Myxq() {
		String name = "myxq";
		class B{
			void Test() {
				System.out.println(name);
			}
		}
//局部内部类的东西只能在定义的方法中使用(在方法中创建内部类对象)

		B in = new B();
		in.Test();
	}
}

1.局部类中可引用局部变量(定义在方法中的变量),但是局部变量必须已经初始化,因为局部变量前默认带着final。
2..局部内部类不可以放静态变量
3.不能使用一些修饰符(private,public等)
5.局部内部类的内存分析
栈帧:方法和其局部变量,创建的内部类被赋给对象地址的变量
堆:创建的内部类对象的地址-- 内部类的方法,变量
6.final修饰的变量相当于常量,常量存放在方法区(方法区中放:static,final)中
7.当堆中的对象没人引用时,不会立马销毁,因为final的存在使变量放在了方法区中,所以在程序关闭时才会被销毁
8.匿名内部类:

interface IUSB{
	void swapData();
}
class MotherBoard{
	void plugIn(IUSB u) {
		u.swapData();
	}
}
class Printer implements IUSB{
	
}
public class 匿名内部类 {
public static void main(String[] args) {
	MotherBoard b = new MotherBoard();
	b.plugIn(new Printer()//匿名对象
	{
		public void swapData() {
			System.out.println("打印机工作");
		}
	});
}
}

没有名字的内部类且放在方法中。
9.匿名内部类没有构造器,只能使用父类或者接口的构造器
10.只使用一次的时候才会使用匿名内部类
11.匿名内部类的格式:
new 父类名称或者已实现的接口名称(){
内部写的代码(在new的时候就会自动执行)
}

eg:
(已实现的接口)
interface IUSBable{
    void a(); 
}
class motherboard{
	void swapdata(IUSBable IUSBable) {
		IUSBable.plugIn();
	}
}
	public static void main(String[] args) {
		motherboard m = new motherboard();
		m.swapdata(new IUSBable() ){
			public void plugIn(){
				System.out.println("niming");
				
	}
	}
	}
}

在开发中一个文件一个类

原文地址:https://www.cnblogs.com/-zero/p/10401697.html