package p;

public class SelectConstructor_in {
	public /*[*/SelectConstructor_in/*]*/() {
	}
	public void test(String msg) {
	}
	public static void main(String[] args) {
		SelectConstructor_in sc= new SelectConstructor_in();

		sc.test("hello");
	}
}
