// test023
public class A {
	public	AAAAAAAA	fooooooo() { //comment1 
		return this; 
	}	 // end of foo() comment
	synchronized int	foo() { //comment2
		return 3; 
	}	 // end of foobar() comment
	public	String	s		="Hello";
	int	baz() { //comment
		return 3; 
	}	 // end of baz() comment
	private	String	tab[]	={"Hello","World"};	// this is an array
}