Klasa powielająca napisy i zgłaszająca wyjątki

0

Witam mam następujące zadanie:
Stworzyć klasę Appender z polem String src (źródłowy napis) i dwoma konstruktorami:

public Appender() - inicjuje src napisem pustym
public Appender(String s) - inicjuje src napisem s.

W klasie zdefiniować metodę Appender append(String app, int n), która do źródłowego napisu src dołącza n-razy powielony napis reprezentowany przez app.

Zapewnić zgłaszanie wyjątków gdy wystąpią błędy w podawanych argumentach konstruktora i/lub metody append.

Przyklad - poniższy kod:

  public static void main(String[] args) {
    Appender ap = new Appender("Ala");
    ap.append(" ma kota", 3).append( " i psa", 2);
    System.out.println(ap);
    ap.append(" ojej", 3);
    System.out.println(ap);
  }

winien wyprowadzić na konsolę:

Ala ma kota ma kota ma kota i psa i psa
Ala ma kota ma kota ma kota i psa i psa ojej ojej ojej

Pomoc:
n-krotne powtórzenie instrukcji ins można uzyskać przez while (n-- >0) ins;
jako klasę wyjątku dla sygnalizacji błędnych argumentów najlepiej wybrać IllegalArgumentException
Uwaga: utworzona przez generator projektów klasa Main może być zmieniana dla potrzeb testowania.
Ale: wygenerowana przez generator wersja klasy musi działać w przekazanym rozwiązaniu i produkować pokazany wydruk.

Mam już działającą - wydaje mi się że dobrze - klasę Appender. Prozę o sprawdzenie kodu i ewentualne sugestie gdzie i jakie jeszcze wyjątki powinny być obsługiwane.

Moja klasa wygląda następująco:

public class Appender 
{
	String src;
	
	public Appender()
	{
		
	}
	
	
	public Appender(String s)
	{	
		src = s;
	}
	
	public Appender append(String app, int n)
	{   
		if (n<=0) throw new IllegalArgumentException("Parametr n musi być większy od 0");
        while(n-- >0)
        {
        	src = src + app;
        }
        return this;
        
	}
     
    public String toString()
    {
    	return src;
    }
	
}

Z góry dzięki :)

1

Konstruktor bez parametrów jest źle zrobiony:

Appender P = new Appender();
System.out.println(P);
P.append(" ojej",1);
System.out.println(P);
0
public Appender()
	{
		src = "";
	}

Tak jest OK ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.