Programowanie w Java.

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Mgr inż.Marcin Borkowski Podstawy Java Część II
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Programowanie obiektowe
Wprowadzenie do C++ Zajęcia 2.
Języki programowania C++
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
OBJECT PASCAL Marzena Szałas.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
WPROWADZENIE DO JĘZYKA JAVA
Kurs Pascala – spis treści
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Project made by Bartosz Rumiński Kl. III i rok 2007/2008.
Java – programowanie obiektowe
dr Anna Kwiatkowska Instytut Informatyki
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Dr Anna Kwiatkowska JAVA dr Anna Kwiatkowska
Język Java Wielowątkowość.
Podstawy C# Grupa .NET PO.
Podstawy programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania w języku C i C++
LabVIEW Technologie informacyjne – laboratorium Irmina Kwiatkowska
Podstawy programowania. Język C i C++– podstawy Temat: 1
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
JAVA – wstęp.
Programowanie obiektowe III rok EiT
Programowanie Windows na przykładzie C# część 1
Java – wprowadzenie, typy danych, operatory
Programowanie obiektowe – zastosowanie języka Java SE
JAVA.
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Programowanie obiektowe III rok EiT
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
JAVA.
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
C# Platforma .NET CZ.3 Kuba Ostrowski.
Java 3 MPDI Programowanie obiektowe W5. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów.
Podstawy informatyki 2013/2014
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Kurs języka C++ – wykład 3 ( )
Zmienne i typy danych w C#
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Dokumentacja programu komputerowego i etapy tworzenia programów.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Programowanie Obiektowe – Wykład 6
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Wprowadzenie do programowania obiektowego
Dane, zmienne, instrukcje
Założenia projektowe Javy
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

Programowanie w Java

Co to jest Java? Java jest obiektowym językiem programowania stworzonym przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualną

Pochodzenie Javy Podstawowe koncepcje Javy pochodzą z: języka Smalltalk - maszyna wirtualna, garbage collection języka C++ - duża część składni i słów kluczowych

Historia Javy 1990 - Bill Joy w raporcie „Further” sugeruje SUNowi stworzenie środowiska obiektowego na bazie C++, 1991 - W ramach projektu „Green” powstaje język OAK - „Object Application Kernel” (James Gosling), przeznaczony dla aplikacji w elektronice powszechnego użytku, 1995 - zmiana nazwy na JAVA ze względu na zastrzeżenie nazwy OAK, 1996 - Pojawia się Netscape zgodny z Javą 1.0, Sun propaguję darmowe środowisko JDK 1.0, 1999 - Java 2 Nowe oblicze Javy ...

Główne źródła informacji o Javie w Internecie http://java.sun.com, SUN, The source of Java Technology (źródło technologii Javy), http://java.sun.com/docs/books/jls/, Gosling J., Joy B, Steele G. The Java Language Specification. Addison-Wesley, 1996, (specyfikacja języka), http://java.sun.com/products/jdk/1.2, SUN, Java 2 SDK software and documentation site (strona źródłowa oprogramowania i dokumentacji Javy), http://developer.java.sun.com/developer/infodocs/, SUN, On-line books & Tutorials (książki i podręczniki do nauki Javy), http://java.sun.com/docs/books/tutorial, SUN, The Java Tutorial (Podręcznik Javy)

Forum użytkowników Javy http://www.javaworld.com, http://www.javareport.com, http://www.jars.com, http://www.gamelon.com, http://www.javalobby.com

Platforma Javy składa się z dwóch elementów: Java API (Application Programming Interfaces) - interfejsy tworzenia aplikcaji JavaVM (Virtual Machine) - maszyna wirtualna

Java API Oprogramowanie pogrupowane w biblioteki (libraries) nazywane też pakietami (packages) Gotowe fragmenty kodu, pogrupowane w pakiety przeznaczone do pewnych celów

Maszyna wirtualna interpretuje kod wynikowy (Beta-kod) Javy do kodu wykonywalnego danego systemu operacyjnego i komputera, którego jest nadbudową jest interfejsem pomiędzy uniwersalnym kodem Javy, a różnymi konfiguracjami komputerów

JRE i JDK Platforma Javy składa się z dwóch części: JRE (Java Runtime Environment) – środowisko uruchomieniowe JDK (Java Development Kit) – środowisko tworzenia aplikacji

Platforma Javy

Środowisko uruchomieniowe JRE Spełnia trzy zadania: Ładuje aplikacje Java Weryfikuje kod Java Wykonuje kod Java

Środowisko uruchomieniowe JRE

Środowisko tworzenia aplikacji JDK JDK (Java Development Kit) składa się z: JRE narzędzi kompilacji źródeł standardowych bibliotek

Narzędzia JDK Program Zastosowanie java Interpreter Javy, pozwalający uruchamiać samodzielnie programy javac Kompilator Javy. javadoc Generator dokumentów Javy. javah generator plików C, tworzący pliki nagłówkowe oraz pliki źródłowe zawierające tekst potrzebny do definiowania klas. javap Disasembler Javy. jdb Debuger Javy.

Java Platform SE 6

Proces tworzenia aplikacji Javy Napisanie z pomocą dowolnego edytora tekstu kodu źródłowego programu zawierającego klasę publiczną o nazwie takiej samej jak docelowa nazwa programu np. RycerzJedi Nagranie kodu źródłowego jako pliku o danej nazwie z rozszerzeniem .java, np.RycerzJedi.java

Proces tworzenia aplikacji Javy Kompilacja kodu źródłowego zawartego w pliku z rozszerzeniem .java do pliku docelowego o rozszerzeniu .class zawierającego Beta-kod np. c:\ javac RycerzJedi.java Uruchomienie w środowisku interpretatora Beta-kodu, np. c:\ java RycerzJedi

Klasa Javy - konstrukcja class NazwaKlasy { // pola typ_zmiennej zmienna; ... // konstruktor – metoda o tej samej nazwie co klasa wywołana automatycznie przy tworzeniu obiektu tej klasy NazwaKlasy(typ_argumentu nazwa_argumentu, ..., typ_argumentu nazwa_argumentu) { // tresc_konstruktora } // metody typ_wart_zwracanej nazwaMetody(typ_argumentu nazwa_argumentu, ..., typ_argumentu nazwa_argumentu) { // tresc_metody } // koniec klasy NazwaKlasy

Klasa Javy - przykład class RycerzJedi{ // pola String nazwa; String kolor_miecza; //konstruktor RycerzJedi(String nazwa, String kolor_miecza){ this.nazwa=nazwa; this.kolor_miecza=kolor_miecza; } // metody void opis(){ System.out.println(”Rycerz ”+nazwa+ ” ma ”+kolor_miecza+” miecz.”); }// koniec class RycerzJedi

Aplikacja Javy Aplikacja w języku Java to zdefiniowana klasa publiczna wraz z jedną ściśle określoną metodą statyczną o formie: public static void main(String args[]) { // tresc metody } // koniec main

String args[] Tablica „args[]” będąca argumentem metody main() jest zbiorem argumentów wywołania aplikacji w ciele której znajduje się metoda Kolejność argumentów jest następująca: argument 1 wywołania umieszczany jest w args[0], argument 2 wywołania umieszczany jest w args[1], itd. Ilość argumentów jest zapisana w polu args.length

Przykład main public class Jedi{ public static void main(String args[]){ System.out.println(”Rycerz Luke ma niebieski miecz.”); }// koniec main) }// koniec public class Jedi

Proste typy danych

Typy proste boolean - typ logiczny char - typ znakowy (16-bitowy Unicode) byte - wartość całkowita 8-bitowa ze znakiem short - wartosć całkowita 16-bitowa ze znakiem

Typy proste int - wartosć całkowita 32-bitowa ze znakiem long - wartosć całkowita 64-bitowa ze znakiem float - wartosć zmiennoprzecinkowa 32- bitowa,IEEE 754 double - wartosć zmiennoprzecinkowa 64- bitowa,IEEE 754

Typ boolean posiada dwie wartości: przykład boolean truth = true; true false przykład boolean truth = true;

Typ char reprezentuje 16-bitowy znak w kodzie Unicode stałe znakowe muszą być ujęte w pojedynczy cudzysłów (‘ ’) stałe znakowe mają następujące notacje: ‘a’ ‘\t’ ‘\u????’ przykład char znak = ‘A’;

Typ String String jest klasą reprezentującą łańcuch znakowy łańcuch stały musi być umieszczony w podwójny cudzysłów (” ”) przykład String greeting = "Good Morning !! \n";

Typy byte, short, int i long posiadają trzy formy zapisu: decymalną (np. 2) oktalną ( np. 077) heksadecymalną (np. 0xBAAC) Zakresy:

Typy float i double formy zapisu: Zakresy: z kropką (np. 2.4) E or e (add exponential value) (np. 6.02E23) F or f (float) (np. 2.718F) D or d (double) (np. 123.4E+306D) Zakresy:

Deklaracja zmiennych

Tablice Tablice w języku Java są definiowane tylko dynamicznie Tablica jednowymiarowa typ tabJednowymiarowa [] = new typ[100]; typ [] tabJednowymiarowa = new typ[100]; Tablica dwuwymiarowa typ tabDwuwymiarowa [] = new typ [10] [10]; typ [][] tabDwuwymiarowa = new typ[10][10];

Klasy typów danych Znajdują się w bibliotece standardowej java.lang.* Umożliwiają tworzenie obiektów przechowujących pole wskazanego typu podstawowego Posiadają zbiór metod operujących na wskazanym typie, np. uzyskanie reprezentacji znakowej (toString())

Boolean Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego boolean Klasa ta daje liczne możliwości przetwarzania wartości typu boolean na inne String toString() Posiada również metody statyczne, np.: static Boolean valueOf(boolean b)

Boolean - przykład Boolean isdigit; isdigit = new Boolean(false); Boolean isdigit = new Boolean(false);

Byte Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego byte Umożliwia liczne konwersje typu liczbowego byte do innych podstawowych typów liczbowych, np.: int intValue() float floatValue() long longValue() posiada również metody statyczne, np.: static byte parseByte(String s) static byte valueOf(String s)

Character Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego char Zawiera pola i metod dotyczące obsługi standardowej strony kodowej platformy Javy czyli Unicodu static int getNumericValue(char ch) static boolean isLetter (char ch)

Integer, Long Klasy umożliwiające stworzenie obiektów przechowujących pola o wartościach podstawowych typów całkowitych int i long Zawierają metody do konwersji z i do różnych typów danych (w tym statyczne): static int parseInt(String s) - Integer long longValue() static Integer valueOf(String s) - Integer float floatValue()

Float, Double Klasy umożliwiające stworzenie obiektów przechowujących pola o wartościach podstawowych typów zmiennoprzecinkowych float i double Zawierają metody do konwersji z i do różnych typów danych (w tym statyczne): static float parseFloat(String s) – Float static double parseDouble(String s) - Double long longValue() static Float valueOf(String s) – Float static Double valueOf(String s) – Double float floatValue()

Operatory

Operatory to elementy języka służące do generacji nowych wartości na podstawie podanych argumentów wiążą się najczęściej z określonym działaniem na zmiennych prawie wszystkie operatory (z wyjątkiem: ‘=’, ‘==’, ‘!=’, ‘+’, ‘+=’) działają na podstawowych typach danych, a nie na obiektach

Klasy operatorów operatory negacji operatory matematyczne operatory przesunięcia operatory relacji operatory logiczne i bitowe operatory warunkowe operatory przypisania

Operatory negacji powodują zmianę wartości zmiennej na przeciwną pod względem znaku int a = 4; x = -a;

Operatory matematyczne służą do wykonywania operacji matematycznych na argumentach zalicza się do nich: mnożenie ‘*’ dzielenie ‘/’ modulo - reszta z dzielenia ‘%’ dodawanie ‘+’ odejmowanie ‘-‘

Operatory przesunięcia działają na bitach w ich reprezentacji poprzez całkowite typy podstawowe danych operator „<<„ powoduje przesunięcie w lewo o zadaną liczbę bitów, natomiast operator „>>„ powoduje przesunięcie w prawo o zadaną liczbę bitów, np.: int liczba = 20; int liczbaL = liczba << 2; int liczbaR = liczba >> 2;

Operatory relacji generują określony rezultat reprezentowany przez typ logiczny boolean w wyniku przeprowadzenia porównania zalicza się do nich: ‘a > b‘ - a większe od b ‘a < b’ - a mniejsze od b ‘a >= b‘ - a większe równe jak b ‘a < =b’ - a mniejsze równe jak b ‘a == b‘ - a identyczne z b ‘a != b’ - a różne od b

Operatory logiczne generują rezultat reprezentowany przez typ logiczny boolean ‘a && b’ - a i b (rezultatem jest true jeśli a i b są true) ‘a || b ‘ - a lub b (rezultatem jest true jeśli a lub b są true)

Operatory bitowe działają podobnie jak operatory logiczne lecz operują na bitach ‘&’ - bitowy AND ‘|’ - bitowy OR ‘^’ - bitowy XOR

Operator warunkowy jest skróconą wersją instrukcji warunkowej if wyrażenie_boolean ? wartość1 : wartość2; gdzie: wyrażenie_boolean oznacza operację generującą jako wynik true lub false; wartość1 oznacza działanie podjęte wówczas, gdy wynik wyrażenia jest true; wartość2 oznacza działanie podjęte wówczas, gdy wynik wyrażenia jest false.

Operator warunkowy - przykład String vader = "Vader"; String anakin = "Anakin"; String s = (vader.equals(anakin)) ? vader : anakin;

Operacje przypisania polegają na podstawieniu zmiennej (lewa strona - left value - Lvalue) danej wartości, lub wartości innej zmiennej albo wartości wynikowej operacji (prawa strona - right value - Rvalue) przykłady a = 12; a = b; a= a+b;

Instrukcje sterujące

Instrukcje sterujące służą do sterowanie przepływem wykonywania instrukcji zalicza się do nich: pętle umożliwiające iteracyjne wykonywanie kodu tak długo aż spełniony jest warunek instrukcje wyboru umożliwiające wybór kodu w zależności od podanego argumentu instrukcje warunkowe umożliwiające wykonanie kodu w zależności od spełnienia podanych warunków instrukcje powrotu umożliwiające przedwczesne zakończenie pętli lub bloku kodu

Pętla while powoduje wykonywanie wyrażenia tak długo dopóki rezultat wyrażenia logicznego jest true ilość iteracji jest nieokreślona

Pętla while while(wyrażenie_logicze) instrukcja; lub { instrukcje; }

Pętla do-while powoduje wykonywanie wyrażenia tak długo dopóki rezultat wyrażenia logicznego jest true ilość iteracji jest nieokreślona

Pętla do-while - przykład int i=0; do{ i++; System.out.println("Moc jest z Wami"); }while(i<10);

Pętla do-while do instrukcje; while(wyrażenie_logicze);

Różnice między pętlami while i do-while w pętli while warunek pętli sprawdzany jest na początku w pętli do-while warunek pętli sprawdzany jest na końcu pętla while może nie wykonać się ani razu pętla do-while musi wykonać się przynajmniej jeden raz

Pętla for Powoduje wykonanie wyrażenia tyle razy ile to wynika z warunku przedstawionego w wywołaniu pętli Warunek pętli for polega na określeniu wartości startowej iteracji, określeniu końca iteracji oraz kroku

Pętla for for(inicjowanie; wyrażenie_logicze ; krok) instrukcja; lub { instrukcje; }

Pętla for - przykład for (int i=0; i<10; i++) { System.out.println(„Niech moc będzie z Wami”); }

Instrukcja wyboru switch powoduje sprawdzenie stanu wyrażenia_wyboru (zmiennej liczbowej) i w zależności od jej stanu (wartości) wykonywane jest wyrażenie

Instrukcja wyboru switch switch(wyrażenie_wyboru) { case wartość1 : wyrażenie; break; case wartość2 : wyrażenie; break; case wartość3 : wyrażenie; break; case wartość4 : wyrażenie; break; // … default: wyrażenie; }

switch - przykład int test = System.in.read(); switch(test){ case 49: System.out.println("Wybrano 1"); break; case 50: System.out.println("Wybrano 2"); break; case 51: System.out.println("Wybrano 3"); break; case 52: System.out.println("Wybrano 4"); /* Brak break; program przejdzie do pola default i wykona odpowiednie instrukcje */ default: System.out.println("Wybrano cos"); }//koniec switch

Instrukcja warunkowa if sprawdza stan logiczny wyrażenia logicznego i jeżeli jest true to wykonywana jest instrukcja w gałęzi if, jeśli istnieje gałąź else i wyrażenie jest false to wykonywane jest wyrażenie po słowie kluczowym else

Instrukcja warunkowa if if (wyrażenie_logiczne) instrukcja; lub { instrukcje; }

Instrukcja warunkowa if if (wyrażenie_logiczne) instrukcja; else lub { instrukcje; }

Instrukcja powrotu return kończy metodę, w ciele której się znajduje i powoduje przeniesienie wartości wyrażenia do kodu wywołującego daną metodę. typ wartości wyrażenia instrukcji return musi być zgodny z typem zadeklarowanym w czasie definicji metody, w ciele której znajduje się instrukcja return składnia: return (wyrażenie);

Programowanie obiektowe

Cechy programowania obiektowego Enkapsulacja - ukrywanie pewnych pól lub metod obiektów danej klasy tak, aby były one (i ich modyfikacja) dostępne tylko metodom wewnętrznym danej klasy lub funkcjom z nią zaprzyjaźnionym

Cechy programowania obiektowego Polimorfizm - wykazywanie przez metodę różnych form działania w zależności od tego jaki typ obiektu jest wskazywany przez wskaźnik lub referencję

Cechy programowania obiektowego Dziedziczenie - stworzenie nowej klasy na bazie klasy (klas) już istniejącej (-cych)

Klasy Definicja klasy określa jej budowę i zachowanie [ModyfikatorKlasy] class NazwaKlasy [extends NadKlasa] [implements Interfejsy] { /* definicje metod i pól */ }

Klasy - przykłady class EmpInfo { String name; String designation; String department; } public class MyDate { int day, month, year; public void tomorrow() { // code to increment day

Modyfikator klasy abstract - klasa abstrakcyjna final – brak możliwości utworzenia klas pochodnych public – dostęp do klasy na zewnątrz pakietu private – dostęp do klasy wyłącznie wewnątrz pakietu

Pola ModyfikatorPola TypZwracanejWartości NazwaPola

Metody ModyfikatorMetody TypZwracanejWartości Nazwa (Typ Argument1, Typ Argument2, ...) [throws Wyjątki] { /* implementacja (kod źródłowy) metody */ }

Modyfikatory pól i metod public - dostęp dla innych metod spoza klasy protected – dostęp dla klas potomnych private – dostęp tylko dla metod dane klasy final – brak możliwości przesłaniania static - odwołanie odbywa się przez nazwę klasy synchronized – dostęp synchroniczny

Metody - przykład public int addDays(int days) { // Method code here }

Metody statyczne public class GeneralFunction { public static int addUp(int x, int y) { return x + y; } public class UseGeneral { public void method() { int a = 9; int b = 10; int c = GeneralFunction.addUp(a, b); System.out.println("addUp() gives " + c);

Argumenty metod Argumenty będące typami prostymi są przekazywane przez wartość Argumenty będące obiektami są przekazywane przez referencję Pola obiektu wewnątrz metody moą być zmieniane ale referencja jest niezmienna

Przeładowanie nazw metod Zdefiniowanie wielu metod o tej samej nazwie, np. public void println(int i) public void println(float f) public void println(String s) Warunki: muszą mieć różną listę argumentów (ilość, typy) mogą mieć różny typ zwracany

Konstruktor Metoda klasy wykonywana w momencie inicjalizacji obiektu tej klasy Musi posiadać nazwę identyczną z nazwą klasy Nie posiada typu zwracanego

Konstruktor - przykład public class Xyz { // member variables go here public Xyz() { // set up the object } public Xyz(int x) { // set up the object with a parameter

Przeładowanie konstruktora public class Employee { private String name; private int salary; public Employee(String n, int s) { name = n; salary = s; } public Employee(String n) { this(n, 0); public Employee() { this(“Unknown”);

Tworzenie i inicjalizowanie obiektów Do alokacji pamięci wykorzystywany jest operator new Wywołanie operatora new Xxxx() powoduje: zaalokowanie pamięci dla obiektu Xxxx wykonanie inicjalizacji pól zadeklarowanych w sposób jawny wywołanie konstruktora

Jawna inicjalizacja pól public class Initialized { private int x = 5; private String name = "Fred"; private MyDate created = new MyDate(); // Accessor methods go here ... }

Konstruktor domyślny Znajduje się w każdej klasie która nie posiada jawnie zadeklarowanego konstruktora Pozwala na tworzenie obiektów w sposób: new Xxxx() Jest niedostępny gdy klasa posiada zadeklarowany konstruktor

Klasy abstrakcyjne Posiadają modyfikator abstract Stosuje się wówczas, gdy na danym stopniu opisu ogólnego możliwych obiektów nie można podać rzeczywistej realizacji jednej lub wielu metod Posiadają deklarację metod bez ich implementacji Mogą zawierać pola i metody nieabstrakcyjne public abstract class Drawing { public abstract void drawDot(int x, int y); public void drawLine(int x1, int y1, int x2, int y2) { // draw using the drawDot() method repeatedly. }

Interfejsy Wszystkie metody są abstrakcyjne Zawiera pola typu static i final Zarówno pola jaki i metody są zadeklarowane jako publiczne Pozwala symulować wielokrotne dziedziczenie public interface Transparency { public static final int OPAQUE=1; public static final int BITMASK=2; public static final int TRANSLUCENT=3; public int getTransparency(); }

Interfejsy interface SayHello { void printMessage(); } class SayHelloImpl implements SayHello { void printMessage() { System.out.println("Hello");