Prosty program Java - lista wyrazów

0

IV. Utwórz klasę Wyraz zawierającą pole typu String i pole typu int. Bezparametrowy koknstruktor tworzący wyraz zainicjuje pola odpowiednio: pustym ciągiem i wartością 0. Metoda dodajZnak(char) pozwoli na dopisywanie kolejnych znaków do ciągu. Metoda toString() zwróci ciąg, a metoda length() zwróci ilość znaków w ciągu. Działanie programu przedstaw na przykładzie.

V. Utwórz klasę Wyraz2 zawierającą pole typu String i pole typu Wyraz2. Pierwsze z pól będzie inicjowane przez konstruktor, drugie będzie inicjowane przez metodę setNastepnyWyraz. Dodatkowo klasa będzie implementowała bezparametrową metodę show, celem której będzie wyświetlenie na ekranie słowa przechowywanego przez obiekt oraz wywołanie metody show na rzecz obiektu przechowywanego w drugim polu (o ile istnieje).

Przedstaw użycie klasy Wyraz w programie, wykorzystując w tym celu zdanie “Ala ma kota a kot ma Ale”.

Z IV zadaniem sobie poradziłem bez problemu, ale niestety utknąłem w zadaniu V w zasadzie na samym początku.

/* Zadanie IV */

public class Wyraz {
	protected String pierwszyWyraz;
	private int wrt;
	
	public Wyraz(){
		this.pierwszyWyraz = "";
		this.wrt = 0;
	}
	public void dodajZnak(char ch){
		pierwszyWyraz += ch;
		wrt++;
	}
	public String toString(){
		return pierwszyWyraz;
	}
	public int length(){
		return wrt;
	}
	public String getString(){
		return pierwszyWyraz;
	}
}

/* Zadanie V */

public class Wyraz2
	extends Wyraz{
		private String str;
		private Wyraz2 wyraz2;
		
		public Wyraz2(){
			this.str =pierwszyWyraz ;
		}
		public String show(){
			//if( wyraz2 != null)
			//	wyraz2.show();
			return toString();
		}
		public void setNastepnyWyraz(){
			
		}
}

Z tego co zrozumiałem to w zadaniu V chodzi o to, żeby stworzyć listę wyrazów tworzonych przez metodę setNastepnyWyraz? Kolejnym problemem jest część zadania, w której mowa o metodzie show. Próbowałem zrobić to za pomocą toString, ale nie chce działać, zakomentowana część to "zarys", który niby miał wyświetlać to co zawiera obiekt wyraz2.

Będę wdzięczny za każdą pomoc. Proszę nie wklejajcie gotowego kodu, bo chcę zrozumieć co i dlaczego tam się dzieje, a nie oddać gotowca.

0

Chyba nie zrozumiałeś treści zadania:

  • dlaczego klasa Wyraz2 dziedziczy po klasie Wyraz?
  • skoro konstruktor klasy wartość pola, to powinien być konstruktorem z parametrem typu String
  • metoda show ma wyświetlać informację na ekran, a nie zwracać String
  • metoda setNastepnyWyraz też powinna mieć parametr, z treści zadania nie wynika jakiego typu, kandydaci to Wyraz2 i String.
0

Dzięki bardzo za odpowiedź, zaraz spróbuję coś wykombinować. A o co według Ciebie chodzi z częścią "Przedstaw użycie klasy Wyraz w programie, wykorzystując w tym celu zdanie “Ala ma kota a kot ma Ale”? Bo to mi zasugerowało, że klasa Wyraz2 powinna dziedziczyć po klasie Wyraz

1

Może tak:

Wyraz wyraz = new Wyraz();
String zdanie = "Ala ma kota a kot ma Ale";
char[] znaki = zdanie.toCharArray();
for(char c:znaki)
{
    wyraz.dodajZnak(c);
}
System.out.println(wyraz);

1 użytkowników online, w tym zalogowanych: 0, gości: 1