Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Andrzej Repak Nr albumu

Podobne prezentacje


Prezentacja na temat: "Andrzej Repak Nr albumu"— Zapis prezentacji:

1 Andrzej Repak Nr albumu 132805
KLASY METODY POLA Andrzej Repak Nr albumu

2 JAVY ciąg dalszy.. Przypomnienie definicji klas Metody Pola

3 O klasach w kilku zdaniach..
klasy są bytami programistycznymi (opisami obiektów) mogą przechowywać dane mogą wykonywać polecone zadania każde pojęcie, które chcemy opisać w języku musi być zawarte w definicji klasy klasa definiuje nowy typ danych których wartościami są obiekty Klasa to szablon dla obiektów Obiekt to egzemplarz klasy

4 Definicja klasy Class nazwa{ //deklaracje pól typ pole1; ...
typ poleN; //deklaracje metod typ metoda1(lista parametrów) { //treść metody } typ metodaM(lista parametrów) { treść metody } }

5 Przykład klasy Klasa która zawiera tylko 3 pola danych class pudelko{
double szerokosc; double wysokosc; double glebokosc;} Utworzenie obiektu klasy i przypisanie wartości polu tego obiektu Pudelko mojePudelko = new Pudelko(); mojePudelko.szerokosc = 100;

6 Operator new Alokuje pamięć dla obiektu i zwraca jego adres.
zmiennaKlasy = new nazwaKlasy(); nazwaKlasy(): konstruktor klasy klasa może deklarować własny konstruktor, lub korzystać z domyślnego alokacja dynamiczna pamięci: tyle obiektów ile potrzeba, ale pamięci może brakować tworzenie zmiennych typów podstawowych nie wymaga new.

7 Wykorzystanie klasy class PudelkoDemo{
public static void main(String args[]){ Pudelko mojePudelko = new Pudelko(); double objetosc; mojePudelko.szerokosc = 100; mojePudelko.wysokosc = 100; mojePudelko.glebokosc = 100 objetosc= mojePudelko.szerokosc* mojePudelko.wysokosc* mojePudelko.glebokosc; System.out.println(”Objętośc to: ”,objetosc); }

8 Kompilacja i wykonanie
Należy umieścić obie klasy w pliku PudelkoDemo.java class Pudelko {...} class PudelkoDemo { public static void main(...){ ... } } Kompilacja i wykonanie > cd demonstracje/PudelkoDemo > javac PudelkoDemo.java > java PudelkoDemo

9 Metody? Pola? Metody służą do wykonywania operacji
Pola przechowują dane

10 Niezależność pól Każdy obiekt ma własną kopię pól klasy – zmiana pola jednego nie ma wpływu na wartości pól drugiego Public static void main(String args[]){ Pudelko mojePudelko1 = new Pudelko(); Pudelko mojePudelko2 = new Pudelko(); double objetosc; mojePudelko1.szerokosc = 10; mojePudelko2.szerokosc = 3; objetosc = mojePudelko1.szerokosc*...; System.out.println(”Objętośc: ” + objetosc); objetosc = mojePudelko2.szerokosc*...; System.out.println(”Objętośc: ” + objetosc);}

11 Kiedy już mamy klase to.. Możemy zadeklarować zmienną typu klasa
typ_zmiennej nazwa zmiennej; Ponieważ domyślnie jest ona pusta musimy stworzyć obiekt klasy i przypisać go tej zmiennej Obiekt tworzymy za pomocą operatora new new nazwa_klasy(); Całą konstrukcja wygląda zatem następująco nazwa_klasy nazwa_zmiennej=new nazwa_klasy();

12 Klasa „od kuchni”.. Czyli co w pamięci piszczy
Po wykonaniu ww. instrukcji w pamięci powstają dwie różne struktury Pierwszą z nich jest zmienna referencyjna mojePudelko tworzona na stosie (ang. stack) Drugą jest powstały na tak zwanej stercie (ang. heap) obiekt klasy Pudelko Zmienna mojePudelko zawiera odniesienie do przypisanego jej obiektu klasy Pudelko tylko poprzez nią możemy się do tegoż obiektu odwoływać

13 Schemat pamięci.. STOS STERTA zmienna1 mojePudelko zmienna2
obiekt klasy Klasa1 obiekt klasy Pudelko obiekt klasy Klasa2 obiekt Klasy Klasa3

14 Użycie klasy Punkt w klasie Main
class Main { public static void main(String args[]) Punkt punkt – new Punkt(); punkt.x = 100; punkt.y = 100; System.out.println(”punkt.x= ” + punkt.x); System.out.println(”punkt.y= ” + punkt.y); }

15 Należny komentarz.. Jeśli chcemy odwołać się do danego pola klasy używam operatora ‘.’ (kropka) czyli używamy konstrukcji nazwa_zmiennej_obiektowej.nazwa_pola_obiektu Przykładowo przypisanie polu x obiektu klasy Punkt reprezentowanego przez zmienną przykładowy_punkt wartości 100 wygląda następująco przykładowy_punkt.x = 100

16 Metody Schematyczna deklaracja metody w ciele klasy
class nazwa_ metody{ typ_wyniku nazwa_metody(parametry_metody) { //instrukcje metody return wartosc; //dalsza treść }} Klasy oprócz pól przechowujących dane, zawierają także metody, które wykonują zapisane przez programistę operacje Definiujemy je w ciele klasy pomiędzy nawiasami klamrowymi Każda metoda może przyjmować parametry oraz zwracać wynik Słowo void oznacza że metoda nie zwraca żadnych parametrów bądź tez nie pobiera argumentów

17 Przykład 1 Klasy definiują metody by ukrywać wewnętrzną strukturę danych, jak też na własny użytek. class Pudelko { double szerokosc, wysokosc, glebokosc; //wyswietla objetosc pudelka void objetosc() { System.out.print(“Objetosc: “); System.out.println(szerokosc * wysokosc * glebokosc);} } Odwołanie do pola w danej klasie można wykonać bezpośrednio.

18 Przykład 2 class Punkt { int x; int y; void wyswietlWspolrzedne()
System.out.println(”współrzędna x= ” + x); System.out.println(”współrzędna y= ” + y) } Metodę tę umieszczamy w klasie Punkt Ma ona za zadanie wyświetlenie wartości współrzędnych x i y

19 Przykład 3 Class Main { public static void main(String args[])
Punkt.punkt = new Punkt(); punkt.x=100; punkt.y=100; punkt.wyswietlWspolrzedne(); }

20 Wyjaśnienie Nie musimy oddzielnie kompilować klas Main i Punkt
Ponieważ w klasie Main jest wykorzystywana klasa Punkt, wydanie polecenia javac Main.java spowoduje kompilację zarówno Main.java jak i Punkt.java

21 Metoda która zwraca wartość
Typ wyrażenia które zwraca wartość metody musi być zgodny z typem wyniku tej metody: class Pudelko { double szerokosc, wysokosc, glebokosc; //oblicza objetosc pudelka double objetosc() { return szerokosc * wysokosc * glebokosc; }

22 Argumenty metod Argumenty to inaczej mówiąc dane
Ich ilość może być dowolna Poszczególne argumenty oddzielamy od siebie znakiem przecinka typ_wyniku nazwa_metody(typ parametru1 nazwa_parametru1...) W ciele każdej z metod następuje przypisanie przekazanego argumentu odpowiedniemu polu

23 Metoda która posiada parametry
Parametry zwiększają stosowalność metod. Metoda bez parametrów: int kwadrat() { return 10 * 10; } Metoda z parametrem: int kwadrat(int i) { return i * i; } Parametr: zmienna która otrzymuje wartość gdy metoda jest wykonywana. Argument: wartość przekazywana metodzie.

24 Obiekt jako parametr Metoda może zarówno otrzymywać jak też i zwracać obiekt w wyniku swojego działania W obu wymienionych wyżej sytuacjach postępowanie jest identyczne jak w przypadku typów prostych W ciele metody następuje skopiowanie wartości pól z obiektu przekazanego jako parametr do obiektu bieżącego

25 Metoda main Metoda main jest punktem startowym programu czyli miejscem, od którego zaczyna się jego wykonywanie Jej deklaracja wygląda następująco: class Main { public static void main(String[] args) //tutaj instrukcje do wykonania }

26 Metoda main Metoda main musi być typu void czyli nie zwracać żadnej wartości Klasa Main jest klasa pomocniczą i służy do zagnieżdżenia w niej metody main (nazwa tej klasy jest dowolna) Lokalizacja metody main decyduje o tym która klasa będzie klasa uruchomieniową Argumentem tej metody jest tablica ciągów znaków zawierająca parametry wywołania programu (parametry przekazane z wiersza poleceń)

27 Metoda main Poniższy program wyświetla na ekranie zawartość wszystkich komórek tablicy args[] class Main { public static void main(String args[]) System.out.println(”Parametry wywołania: ”); for (int i=0; i<args.lenght; i++) { System.out.println(args[i]) } }

28 Przeciążanie metod O przeciążeniu mówimy wtedy, gdy w obrębie jednej klasy znajdują się metody o identycznej nazwie Język JAVA dopuszcza tego typu sytuacje pod warunkiem że obie wspomniane wyżej metody będą różniły się argumentami Mogą one również, ale nie muszą różnić się różnić się typem zwracanego wyniku

29 Przeciążanie metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą wersję metody należy wywołać. Przeciążanie metod plus dziedziczenie to sposób na implementację polimorfizmu.

30 Przeciążanie metod - przykład
class Metody { void test() { System.out.println("Brak parametrow");} void test(int a) { System.out.println("a: " + a);} void test(int a, int b) { System.out.println("a i b: " + a + " " + b);} double test(double a) { System.out.println("double a: " + a); return a*a;} }

31 Literatura „Java po C++” Jan Bielecki
„Praktyczny kurs Java” Marcin Lis


Pobierz ppt "Andrzej Repak Nr albumu"

Podobne prezentacje


Reklamy Google