package p;

public class A {
	static void takeP(Class c) {}
	static void takePQ(Class c) {}
	
	class P {
		{
			Class p= getClass();
			takeP(p);
			takePQ(p);
		}
	}
	
	class Q {
		{
			Class q= getClass();
			takePQ(q);
		}
	}
	
	class Z {
		{
			Class<? extends Z> z= getClass();
		}
	}
}
