zadanie z pudełkami

0

Witam, nie widziałem podobnego tematu więc piszę swój amatorski problem.

Mam zadanie :

Zdefiniować klasę Box, której obiekty będą stanowić pudełka o zadanych rozmiarach (szerokość, wysokość).
Dostarczyć w tej klasie specjalnych metod liczenia pudełek:

Przetestować klasę w następujący sposób:
* użytkownik programu w dialogach wejściowych wprowadza dowolną liczbę szerokości pudełek
* wysokość tych pudelek równa jest 2*szerokość
* wyprowadzić na konsolę wielkość (szerokość, wysokość) każdego z pudełek
* połączyć otrzymane pudełka w kombinacje diagonalne, wertyklane i horyzontalne i wyprowadzić na konsole ich rozmiary

Nie stosować tablic.

import javax.swing.JOptionPane;

class Main{
	public static void main(String[] args){
	
		Box dostep = new Box();
		Box pudlo1 = new Box();
		Box pudlo_ref1 = null;
		
		pudlo_ref1=pudlo1.box();
		dostep.show_box(pudlo_ref1);	
	}		
}

class Box {

	private double p_width=0;
	private double p_height=0;
	private String p_string_okno="";
	private double p_okno=0;
	private Box p_box=null;
	
	public Box(){
	} 
	
	public Box(double p){
		p_width=p;
		p_height=2*p_width;
	} 
	
	public Box box(){
		p_string_okno=JOptionPane.showInputDialog("Podaj szerokosc");
		p_okno=Double.parseDouble(p_string_okno);
		Box p_box= new Box(p_okno);
		return p_box;
	}
	
	public void show_box(Box x){
		JOptionPane.showMessageDialog(null,x.p_width+" \n"+x.p_height);

	}
	
} 

Wiem, że ten kod jest pewnie przekombinowany - ale jestem amatorem, więc dopiero się ucze - proszę o wyrozumiałość. To tylko fragment żeby zobrazować.

Założenie jest takie dzięki metodzie box() tworzymy obiekt pudełka i zwraca referencje do tego obiektu, a później dzięki referencji możemy np. pokazać szerokość i wysokość danego pudełka dzięki metodzie show_box.

Co mam zrobić żeby ktoś mógł tworzyć nieskończenie wiele obiektów (powpisywać nieskończenie wiele szerokości) za pomocą dialogu wejścia. Bo w tym przypadku mogę to zrobić ale ręcznie dodając nowe zmienne.

Chciałbym aby wpisywanie szerokości było zapętlone i dopiero gdy użytkownik sam skończy program skończyło się dodawanie szerokości. A obiektów żeby było tyle ile pętla się zdążyła zapętlić.

Nie chce gotowców tylko nakierowanie mnie na coś, z góry dziękuje :)

1

Po pierwsze nie nazywaj metod tak jak nazywasz klasę, nazwa klasy jest zarezerwowana dla konstruktora i chociaż możesz inne metody tak nazywać to jednak jest to trochę mylące, nie zgodzisz się?
W środku klasy dodatkowo piszesz metodę która zwraca obiekt tej samej klasy, no sam popatrz jak to wygląda public Box box()....

tworzysz jeden konstruktor bezparametrowy i jedną metodę użytą w konstruktorze która pobiera szerokość (nawet nie musi być metoda po prostu doposz w kontruktorze tą linijkę z inputdialog. po czym tam przypisz od razu długość i szerokość do nowego boxa

żeby stworzyć tyle obiektów ile chce użytkownik w mainie tworzenie nowego boxa wrzuć do pętli while i po każdym wykonaniu pytaj użytkownika czy chce iść dalej ( jako że używasz klasy JOptionPane to powinieneś o niej wiedzieć tyle żeby zrobić prosty tak/nie) a do przechowywania obiektów potrzebujesz jakiejś kolekcji .

a co to są kombinacje diagonalne wetykanle i jakieś tam to chyba musisz wyjaśnić

pzdr

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