using System; namespace laboratorium2 { /// /// Summary description for Class1. /// /// class Box { /* Wewnątrz klasy należy stworzyć typ wyliczeniowy (ang. enum) reprezentujący możliwe do wykorzystania kolory (kilka przykładowych wartości). */ public enum Kolory{bialy,czarny,czerwony,zielony,niebieski,nieokreslony} /* Rozmiar i pojemność nie mogą być zmieniane po utworzeniu obiektu, należy zastosować odpowiednią konstrukcję języka. */ readonly int rozmiar; readonly int pojemnosc; private Kolory kolor; bool stan; /* Niezbędny jest licznik (jeden) informujący o liczbie aktualnie stworzonych pudełek. Powinien być inkrementowany przy tworzeniu, oraz dekrementowany przy niszczeniu obiektu. Stosowna metoda i właściwość do odczytu jego wartości. */ static int licznik=0; ~Box() { licznik--; } /* W momencie tworzenia trzeba określić rozmiar, pojemność, kolor pudełka -> odpowiedni konstruktor. */ public Box(int rozmiar, int pojemnosc, Kolory kolor) { this.rozmiar = rozmiar; this.pojemnosc = pojemnosc; this.kolor = kolor; licznik++; } /* Jeżeli przy tworzeniu pudełka nie podano koloru, powinno zostać pomalowane na wartość domyślną -> odpowiedni konstruktor. */ public Box(int rozmiar,int pojemnosc) { this.rozmiar = rozmiar; this.pojemnosc = pojemnosc; this.kolor = 0; licznik++; } /* Musi istnieć możliwość odczytania wartości rozmiaru i pojemności. Należy zrealizować to za pomocą metod, a następnie alternatywnie używając mechanizmu właściwości. */ public int rozm { get {return (int) this.rozmiar;} } public int poj { get {return (int) this.pojemnosc;} } public Kolory kol { get {return (Kolory) this.kolor;} set {this.kolor = (Kolory) value;} } public void setColor(Kolory kol) { this.kolor = kol; } /* Należy stworzyć pole do przechowywania informacji czy pudełko jest otwarte, czy zamknięte. Pole to może przyjmować tylko dwie wartości. Konieczna są metody Otworz() oraz Zamknij(). Dodatkowo powinna być możliwość odczytania statusu poprzez właściwość. */ public void Otworz() { this.stan = true; } public void Zamknij() { this.stan = false; } public bool st { get { return (bool) this.stan;} set { this.stan = (bool) value;} } public int stanlicznika() { return licznik; } } class Class1 { /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { // // TODO: Add code to start application here // Box pudlo = new Box(10,15); Console.WriteLine("Stan licznika = "+pudlo.stanlicznika()); Box pudlo2 = new Box(15,16,Box.Kolory.czarny); Console.WriteLine("Stan licznika = "+pudlo.stanlicznika()); } } }