Skip to content

Instantly share code, notes, and snippets.

View pjastr's full-sized avatar
👀
in the middle of nowhere

pjastr

👀
in the middle of nowhere
View GitHub Profile
@pjastr
pjastr / Cw2.md
Last active October 12, 2017 13:07
  1. Stwórz program (plik Program.cs), zadeklaruj w nim zmienną carName i przypisz mu wartość "Mój samochód". Wynik wyświetl na ekranie.
  2. W tym samym projekcie stwórz klasę Car, w której będzie można przechowywać markę samochodu i rok produkcji (zmienne marka i rok) (zapisz ją w pliku Car.cs).
  3. Zmodyfikuj klasę Car, aby wszystkie zmienne były zadeklarowane jako prywatne.
  4. Stwórz nowy obiekt klasy Car w pliku Program.cs jako car1, ustaw dla niego dowolną markę i rok produkcji, wyświetl to na ekranie. Popraw kod, aby program działał poprawnie.
  5. Stwórz drugi obiekt car2 typu Car, przypisz mu dowolne wartości i wyświetl na ekranie.
  6. Przypisz do siebie wartości car1 i car2 (car1 = car2) i ponownie sprawdź na ekranie jakie wartości otrzymasz.
  7. Zakomentuj kod do punktu 5 i 6.
  8. Utwórz prywatne pola klasy Car o nazwie: model, iloscDrzwi, pojemnoscSilnika oraz publiczne srednieSpalanie. Narysuj dla klasy Car diagram UML (kolejne czynności uzupełniaj na diagramie).
@pjastr
pjastr / StrukturaProjektu.md
Last active October 10, 2017 20:06
Struktura projektu C# w Visual Studio

Struktura logiczna:

Struktura logiczna

Przy tworzeniu nowego projektu, możemy wybrać oddzielną nazwę dla solucji:

Tworzenie

Dodanie nowego projektu do istniejącej solucji:

  1. Stwórz program (plik Main.java), zadeklaruj w nim zmienną carName i przypisz mu wartość "Mój samochód". Wynik wyświetl na ekranie.
  2. W tym samym projekcie stwórz klasę Car, w której będzie można przechowywać markę samochodu i rok produkcji (zmienne marka i rok) (zapisz ją w pliku Car.java).
  3. Zmodyfikuj klasę Car, aby wszystkie zmienne były zadeklarowane jako prywatne.
  4. Stwórz nowy obiekt klasy Car w pliku Maina.java jako car1, ustaw dla niego dowolną markę i rok produkcji, wyświetl to na ekranie. Popraw kod, aby program działał poprawnie.
  5. Stwórz drugi obiekt car2 typu Car, przypisz mu dowolne wartości i wyświetl na ekranie.
  6. Przypisz do siebie wartości car1 i car2 (car1 = car2) i ponownie sprawdź na ekranie jakie wartości otrzymasz.
  7. Zakomentuj kod do punktu 5 i 6.
  8. Utwórz prywatne pola klasy Car o nazwie: model, iloscDrzwi, pojemnoscSilnika oraz publiczne srednieSpalanie. Narysuj dla klasy Car diagram UML (kolejne czynności uzupełniaj na diagramie).

Definicja klasy:

modyfikator_dostępu class NazwaKlasy
{
	deklaracje pól i metod
}

Modyfikatory dostępu - umożliwiają określenie dostępu do danego elementu z zewnątrz klasy.

UML - UML (Unified Modelling Language) - graficzny system wizualizacji, specyfikowania oraz dokumentowania składników systemów informatycznych.

Nazwa klasy: modyfikator NazwaKlasy ustawienia

Pola klasy: modyfikator nazwaPola: typ = wartoscPoczatkowa ustawienia

Metody modyfikator NazwaMetody(parametr1, …): typ ustawienia

  1. Stwórz w programie dwie klasy Pies i WlascicielPsa. Pies musi być wyprowadzony na spacer jeśli spożywał posiłek więcej niż 5 godzin wcześniej. W klasie Pies dodaj metody:
  • UstawCzasPosilku(int), która ustawia ile godzin temu pies zjadł posiłek;
  • PobierzCzasPosilku(), która pobiera czas posiłku;
  • PotrzebnySpacer(), która zwraca true gdy pies musi być wyprowadzony na spacer.

W klasie WlasicielPsa dodaj metodę ZabierzNaSpacer(Pies), która zwraca true gdy pies (będący parametrem metody) musi być wyprowadzony na spacer. W metodzie Main przetestuj działanie powyższych metod.

  1. Na podstawie diagramu UML stwórz klasę. Następnie w klasie Program stwórz co najmniej trzy obiekty, na których wykonasz co najmniej po jednym razie każdą metodą i przypiszesz obiektowi co najmniej jedno pole (możesz stworzyć brakujące metody, ale nie możesz modyfikować modyfikatorów dostępu na diagramie).

Poradnik "obrazkowy" jak przesłać pliki do nowego repozytorium na Githubie:

im1

im2

im3

im4

@pjastr
pjastr / Cw3.md
Last active October 23, 2017 07:32
  1. Wykonaj w ramach jednego projektu następujące polecenia:
  • Stwórz klasę Car.
  • Stwórz w niej nowe prywatne pola double pojemonoscSilnika, string marka.
  • Stwórz obiekt typu Car, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne).
  • Do klasy Car dodaj samodzielnie napisany konstruktor bez parametru.
  • Przeciąż konstruktor tworząc nowy: Car(double pojemonoscSilnika, string marka). Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatora this).
  • Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
  • Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
  • Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
  • W klasie Car stwórz metodę Create(), która będzie zwracać obiekt.

Hermetyzacja:

  • Zapewnia utrzymanie właściwego stanu klasy. Pola klasy są inicjowane, modyfikowane i odczywywane w sposób przewidziany przez autora klasy.
  • Ukrycie wewnętrznego stanu klasy, a udostępnienie tylko tego co jest niezbędne do komunikacji z innymi klasami
  • Użycie odpowiednich modyfikatorów dostępu do pól i metod,
  • Innymi słowy, nie pozwalajcie innym mieszać w stanie waszej klasy, gdyż to utrudnia odnajdywanie błędów.

Przykładowe zadanie polega na napisaniu klasy Licznik, ma być ona wykorzystywana w wielu modułach zliczających rozpoczęcie i zakończenie jakiegoś zdarzenia. Licznik nie może być mniejszy od 0. Klasa Licznik ma 3 metody Zwiększ(), Zmniejsz(), WypiszStan().

  1. Wykonaj w ramach jednego projektu następujące polecenia:
  • Stwórz klasę Car.
  • Stwórz w niej nowe prywatne pola double pojemonoscSilnika, String marka.
  • Stwórz obiekt typu Car, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne).
  • Do klasy Car dodaj samodzielnie napisany konstruktor bez parametru.
  • Przeciąż konstruktor tworząc nowy: Car(double pojemonoscSilnika, String marka). Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatora this).
  • Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
  • Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
  • Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
  • W klasie Car stwórz metodę Create(), która będzie zwracać obiekt.