package lokaleklasse2;

/**
 * Demonstriert eine Lokale Klasse und deren Zugriffsmoeglichkeiten.
 * 
 * @author  Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet Osnabrueck
 * @date 25.05.2007
 */
public class Person {
	private String name;
	
	public Person(String name) {
		this.name = name;
	}
	
	public String toString() {
		StringBuilder sb = new StringBuilder();
		
		class Gewissen {
			private String nachricht;
			
			public Gewissen(String nachricht) {
				this.nachricht = nachricht;
			}
			
			public String toString() {
				StringBuilder sb = new StringBuilder();
				
				// Zugriff auf Instanzvariable
				sb.append("Hallo ").append(name).append("\n");
				sb.append("Hier ist dein inneres Gewissen und ich sage dir:\n");
				sb.append(nachricht).append("\n");
				
				return sb.toString();
			}
		}
		
		sb.append(new Gewissen("Tu es!!!"));
		return sb.toString();
	}
	
	public static void main(String[] args) {
		Person p = new Person("WilliWacker");
		System.out.println(p);
	}
}
