public class Student2 extends Person implements NamedEntity {
	public Student2(String newMatrikelNo) {
		matrikelNo = new MatrikelNo(newMatrikelNo);
	} //constructor

	class MatrikelNo {
		private String	matrikelNo;

		public MatrikelNo(String newMatrikelNo) {
			matrikelNo = newMatrikelNo;
			if (this.checkMatrikelNo() != true)
				System.out.println("illegal MatrikelNo");
		} //constructor
		public boolean checkMatrikelNo() {
			return( this.matrikelNo.length() == 7 ? true : false);
		} //end checkMatrikelNo()

		public String getMatrikelNo() {
			return matrikelNo;
		} //getMatrikelNo()

		public boolean setMatrikelNo(String newMatrikelNo) {
			matrikelNo = newMatrikelNo;
			if (this.checkMatrikelNo() == true)
				return true;
			else
				return false;
		} //setMatrikelNo()
	} //MatrikelNo;


	private MatrikelNo matrikelNo;

	public String getMatrikelNo() {
		return matrikelNo.getMatrikelNo();
	} //getMatrikelNo;

	public boolean setMatrikelNo(String matrikelNo) {
		return true;
	} //setMatrikelNo()

	public String getName() {
		return name;
	} //getName()

	public boolean setName(String newName) {
		if (newName.compareTo("")!=0) {
			name = newName;
			return true;
		} else
			return false;
	} //setName()

	public String toString() {
		return ("Name: "+this.getName()+"\nMatrikelnummer: "+this.getMatrikelNo() );
	} //toString()

	public static void main(String[] args) {
		Student2 mario = new Student2("0793022");
		System.out.println( mario.getMatrikelNo() );

		Student2 hans = new Student2("1234567X");
	} //main()
} //class Student2

class Person {
	String	name;
} //class Person

interface NamedEntity {
	String getName();
	boolean setName(String newName);
} //interface NamedEntity