150 likes | 273 Views
Java – coś na temat Klas Piotr Rosik 132808. Klasy. Wygląd klasy: [modyfikatory] class NazwaKlasy { /*ciało klasy */} W Javie modyfikatory możemy podzielić na dwa rodzaje: a) modyfikatory dostępu (private, protected, public, package)
E N D
Java – coś na temat Klas Piotr Rosik 132808
Klasy • Wygląd klasy: • [modyfikatory] class NazwaKlasy { /*ciało klasy */} • W Javie modyfikatory możemy podzielić na dwa rodzaje: a) modyfikatory dostępu (private, protected, public, package) • public - wszystkie klasy mają dostęp do pól danych i metod public, • private -dostęp do metod i pól danych posiadają jedynie inne metody tej samej klasy, • protected - metoda lub pole danych protected lub może być używana jedynie przez metody swojej klasy oraz metody wszystkich jej klas pochodnych, • package - jest to modyfikator domyślny, wszystkie metody i pola danych bez modyfikatora dostępu traktowane są jako typu package. Metody (lub pola danych) typu package mogą być używane przez inne klasy danego pakietu.
b) Modyfikatory właściwościmodyfikowanego elementu • możemy używać modyfikatorów: • public, • abstract, • final.
Class Dane{ int i; float f; } Możemy stworzyć obiekt: Dane d = new Dane(); Odwolanie: d.i = 45; d.f = 4.1f; Wartości domyślne dla składowych typu podstawowego: Obiekt klasy
Statyczne pola danych i metody • Pole danych lub metoda zadeklarowana z modyfikatorem static • deklaracja oznacza, że pole danych lub metoda dotyczy klasy, a nie obiektu • Odwołanie do statycznego pola danych może mieć postać: NazwaKlasy.PoleDanych, a dla metod statycznych NazwaKlasy.Metoda()
class KontoOsobiste { static byte Oprocentowanie = 10; private Osoba Wlasciciel; ... static void ZmienOprocentowanie(byte nowyProcent) { Oprocentowanie = nowyProcent; } } public static void main(String[] args) { KontoOsobiste.Oprocentowanie = 20; KontoOsobiste rachunek = new KontoOsobiste(); rachunek.ZmienOprocentowanie(40); KontoOsobiste.ZmienOprocentowanie(30); } Odwołanie do metod i zmiennych typu static
Konstruktor • konstruktor zostaje wywołany podczas tworzenia nowego obiektu klasy • metodą o nazwie identycznej, jak nazwa klasy(ważna jest wielkość liter) • każda klasa może posiadać wiele konstruktorów, różniących się listą argumentów
public class Punkt { public int X; public int Y; } Punkt A = new Punkt(); public class Punkt { public int nX; public int nY; public Punkt(int X, int Y) { nX=X; nY=Y; } } Punkt P = new Punkt (4,5); Konstruktor
Przeciążanie konstruktora • nazwa konstruktora jest zdeterminowana wcześniej przez nazwę klasy, może istnieć tylko jedna taka nazwa • Konstruktory tej samej klasy różnią się unikatową listą argumentów
Słowo kluczowe this oznacza referencję do "samego siebie", czyli do obiektu, przez który został wywołany. public class Leaf { int i = 0; Leaf increment() { i++; return this; } void print() { System.out.println("i = " + i); } public static void main(String[] args) { Leaf x = new Leaf(); x.increment().increment().increment().print(); } } } Służy również do wywoływania konstruktorów z konstruktorów W konstruktorze podanie słowa kluczowego this oraz listę argumentów, to spowoduje wywołanie konstruktora, do którego pasuje ta lista Nie można dwukrotnie wywołać„this” Nie można użyć „this” poza konstruktorem w celu wywołania innego konstruktora this
Rodzaje klas • Klasa finalna • Nie można z niej dziedziczyć i nie pozwalamy, aby z niej dziedziczono • Wszystkie jej metody automatycznie stają się finalne
Rodzaje klas c.d. • Klasa abstrakcyjna • Klasa zawierająca metody abstrakcyjne nazywana jest klasą abstrakcyjną • Nie mamy możliwości bezpośredniego tworzenia obiektów danej klasy
Klasy wewnętrzna • Klasa wewnętrzna – klasa wewnątrz innej definicji klasy. • Posiada prawo dostępu do wszystkich elementów klasy je otaczającej, • obiekt klasy wew. Zawiera specjalny lacznik z obiektem klasy zewnętrznej, • mogą mieć modyfikator static.
Klasa anonimowa • klasa bez nazwy i konstruktora, • definiowana za pomocą wyrażenia postaci: • new NazwaNadKlasy(arg, arg, ...){...};
Bibliografia • Thinking in Java – Bruce Eckel • http://republika.pl/arturt/java/index.htm - Artur Tyloch