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ści modyfikowanego elementu możemy używać modyfikatorów: public, abstract, final.
Obiekt klasy Wartości domyślne dla składowych typu podstawowego: 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: Nazwa typu Wartość domyślna boolean false char ‘\u0000’ byte (byte)0 short (short)0 int long 0L float 0.0f double 0.0d
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()
Odwołanie do metod i zmiennych typu static 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); }
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
Konstruktor 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);
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
this 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
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