Programowanie to formułowanie ciągu operacji rozwiązującego dany problem w postaci akceptowalnej przez komputer. Proces tworzenia programu (systemu) komputerowego, na który składają się opracowywanie założeń, kodowanie i testowanie. Dobre programowanie łączy elementy inżynierii,„rzemiosła” i „sztuki”.
Algorytm to dokładny, jednoznacznie sformułowany sposób postępowania, umożliwiający rozwiązanie określonego zadania w skończonej liczbie kroków.
(zbiór poleceń ze wskazaniem porządku, w jakim mają być realizowane).
Program to ciąg poleceń (instrukcji) do wykonania dla komputera.
Program to algorytm zapisany w języku programowania.
Program może występować w dwóch postaciach:
• kod źródłowy,
• kod wynikowy.
Kod źródłowy to zapis programu komputerowego w pewnym języku programowania.
Jest to postać programu zrozumiała dla programisty (bez konieczności jego uruchamiania).
Kod maszynowy to zapis programu komputerowego w języku maszynowym. Kod taki składa się z ciągu wartości binarnych (0 i 1), które oznaczają zarówno
instrukcje jak i dane. Postać kodu maszynowego zależy od architektury procesora.
Kod wynikowy to rezultat pracy translatora (np. kompilatora), nadający się do bezpośredniego wykonywania przez procesor.
Kompilacja to proces przekształcania kodu źródłowego na kod wynikowy (maszynowy).
Kompilator to translator języka wysokiego poziomu, którego programy wynikowe mogą być wprowadzone do pamięci i wykonane dopiero po zakończeniu tłumaczenia (w odróżnieniu od interpretatora, w którym instrukcje wynikowe są wykonywane na bieżąco).
Maszyna wirtualna (VM ─ virtual machine) jest hipotetycznym (wirtualnym) komputerem. VM można uruchomić na dowolnym rzeczywistym komputerze jako symulator (emulator) . Język maszyny wirtualnej jest językiem pośredniczącym między oprogramowaniem a rzeczywistym komputerem. Zapis programu w tym języku nosi nazwę bytecode.. Dla dowolnego języka wystarczy tylko jeden kompilator tego języka na język VM. Niezależnie od liczby platform, dla n języków potrzeba n kompilatorów.
Obiekty są małymi programami (lub fragmentami programów). Obiekty współpracują ze sobą w celu wykonania określonego zadania. Obiekty zawierają dane (pola – fields) Obiekty zawierają procedury przetwarzania danych, czyli
metody (methods)
Klasy są „fabrykami” obiektów. Każda klasa produkuje ściśle określony rodzaj (typ) obiektów. Każdy obiekt należy do jednej, określonej klasy. Klasa obejmuje obiekty tego samego rodzaju, utworzone według tego samego pierwowzoru klasy.
Klasa jest wzorcem budowy obiektów.
Metody dzielą się na dwa rodzaje:
observer – metody, które zwracają wartość wyprodukowaną przez obiekt. Wartość może być typu int, String itp. Metody tego typu nie zmieniają stanu obiektu
mutator – metody, które zmieniają stan obiektu, nie dostarczają informacji o obiekcie
W wyjątkowych sytuacjach metoda może być jednocześnie observerem i mutatorem (należy tego jednak unikać) Inne terminy: observer - getter, mutator – seter
Konstruktor służy do generowania nowych obiektów danej klasy. Dotąd wszystkie nowe obiekty klasy Konto były tworzone w taki sposób, że numer = 0 wlasciciel = <null>. Za metodę Konstruktor odpowiada klasa.
Konstruktor obiektów danej klasy (np. Konto) ma taką samą nazwę (czyli Konto). Należy pamiętać o rozróżnieniu małych i dużych liter. Konstruktor nie zwraca żadnej wartości; wynikiem jego działania jest nowy obiekt danej klasy. Konstruktor nie zawiera zatem słowa return. Dla każdej klasy istnieje domyślny konstruktor, który inicjalizuje pola tworzonego obiektu tak, że pola typu int otrzymują wartość 0, natomiast pola typu obiektowego (np. String) wartość <null>
Definica konstruktora:
Konto(int nowyNumer, String nazwisko){
numer = nowyNumer;
wlasciciel = nazwisko;
stanKonta = 0;
}
Przykładowa Klasa
class Konto
{
int numer;
String wlasciciel;
int stanKonta;
int podajStanKonta()
{
return stanKonta;
}
void wplata(int kwota)
{
stanKonta +=kwota;
}
void przelew(Konto odbiorca, int kwota)
{
wyplata(kwota);
odbiorca.wplata(kwota);
}
}