// Przekazywanie obiektów jako parametrów // Dodajmy teraz funkcję ktora sprawdzi ktora z figur jest wieksza - kwadrat czy okrag? // Parametrami funkcji są obiekty typu Kwadrat i Kolo static string porownajPola(Kwadrat kwadrat, Kolo kolo) { if (kwadrat.obliczPole() < kolo.obliczPole()) { return("kwadrat"); } else { return("kolo"); } // Bonus - jaki musi byc promien kola i bok kwadratu aby pola byly rowne?:) }
static void Main(string[] args) { Kwadrat k = new Kwadrat(); k.a = 5; Console.WriteLine("Pole kwardratu = " + k.obliczPole()); Console.WriteLine("Obwod kwadratu = " + k.obliczObwod()); Console.WriteLine(); // Klasa Prostokat jest w innym namespace - aby jej uzyc musimy uzyc formatu: // Namespace.Klasa // lub na początku programu (linijka 5) dodac: // using InnyNamespace; InnyNamespace.Prostokat p = new InnyNamespace.Prostokat(); // a i b są polami prywatnymi - nie mamy tutaj do nich dostępu //p.a = 5; //p.b = 7; Console.WriteLine("Pole prostokata = " + p.obliczPole()); Console.WriteLine("Obwod prostokata = " + p.obliczObwod()); Console.WriteLine(); // Teraz użyjmy figury dla której zdefiniowalismy konstruktor // ale teraz taka konstrukcja jest niedozwolona - brak konstruktora domyślnego //Kolo kolo; Kolo kolo = new Kolo(10); Console.WriteLine("Pole kola = " + kolo.obliczPole()); Console.WriteLine("Obwod kola = " + kolo.obliczObwod()); Console.WriteLine(); // możemy uzyc juz istniejącego obiektu (Kwadrat k) lub utworzyc nowy podczas wywolania (Kolo(5)): Console.WriteLine("Wieksza pole ma " + porownajPola(k, new Kolo(5))); for (int i = 0; i < 10; i++) { new Trojkat(); } Trojkat trojkat = new Trojkat(); //trojkat.wypiszLiczbeTrojkatow(); // metoda statyczna - moze byc wywolana na klasie, nie na obiekcie Trojkat.wypiszLiczbeTrojkatow(); // TODO: get/set }