Java jest wszechstronnym językiem programowania, zor

Transkrypt

Java jest wszechstronnym językiem programowania, zor
JAVA
Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji.
Java nie jest typowym kompilatorem. Źródłowy kod programu podlega wprawdzie kompilacji, ale jej wynikiem jest
tzw. kod bajtowy Javy, który następnie można zinterpretowa na dowolnym systemie komputerowym z zainstalowanym odpowiednim systemem czasu przegiegu Javy (maszyną wirtualną). Maszyna wirtualna stanowi jakby nieistniejący w rzeczywistości system komputerowy. Interpreter Javy wczytuje kod bajtowy oraz analizuje kolejne instrukcje
maszyny wirtualnej i wykonuje je w sposób określony dla
danego komputera.
Aplet jest małym programem, napisanym w Javie, który
jest ładowany dynamicznie, za pomocą sieci, tak samo, jak
inne obiekty ładowane z poziomu strony HTML (np. obrazy, obiekty Flash’a itp.). Jest to zatem aplikacja, wykonywana po stronie klienta, mająca pewien ograniczony dostęp
do systemu plików zarówno serwera, jak i klienta.
Klasa jest modelem abstrakcyjnej grupy obiektów. Obiekt
stanowi pojedynczy egzemplarz klasy, zachowujący jej właściwości i metody.
Zalety języka Java:
— prostota i wszechstronność
— bezpieczeństwo
— zorientowanie obiektowe
— niezawodność
— interakcja
— niezależność od sprzętu
— interpretacja przy dużej wydajności
Programowanie obiektowe
Wprowadzenie programowania zorientowanego obiektowo stanowiło ogromną zmianę w programowaniu. Pozwala
bowiem ono programistom pisać programy, które są zorganizowane tak, jak rozważany problem. Świat zewnętrzny najczęściej postrzegany jest jako zbiór obiektów, stanowiących przedstawicieli różnych klas obiektów. Obiekty te
posiadają pewne właściwości (atrybuty). Istnieją również
pewne czynności wykonywane przez obiekty lub na obiektach. Czynności te nazywa się metodami (methods).
Aby nauczyć się programować obiektowo, trzeba nauczyć
się „myślenia obiektowego”. Należy nauczyć się postrzegać
obiekty w otaczającym nas świecie, wyodrębniać je w rozwiązywanych problemach, tworzyć hierarchie klas obiektów, itp.
Programowanie obiektowe pociąga za sobą:
— uniknięcie problemu stosowania zmiennych globalnych
— rozwinięcie programowania zstępującego, stosowanego
już w programowaniu strukturalnym
— możliwiści, jakich nie miał żaden inny sposób programowania:
— hermetyzacja (zwana też enkapsulacją) - łączenie
danych i operacji wykonywanych na tych danych, z
możliwością ukrycia pewnej części klasy (tzw. część
prywatna), oraz chronienia jej w przypadku dziedziczenia (tzw. część chroniona).
— dziedziczenie wprowadzenie hierarchicznego uporządkowania obiektów. Część atrybutów jest wspólna dla
całej hierarchi, a część jest charakterystyczna tylko dla
pewnego podzbioru całej hierarchi klas.
W Javie nie ma możliwości dziedziczenia wielobazowego.
— polimorfizm możliwość tworzenia wielu metod o tej
samej nazwie, umieszczonych w różnych miejscach hierarchii klas, różniących się działaniem, w zależności
od klasy obiektu, do którego należą.
Zalety w stosunku do C/C++
— Brak zmiennych globalnych. W Javie tylko nazwy klas
są globalne.
— Brak instrukcji GO TO.
— Brak wskaźników. W Javie uchwyty do obiektów są wprawdzie zaimplementowane jako wskaźniki, ale nie ma możliwości wykonania żadnych operacji na nich, nie można
zamienić zmiennej całkowitej na wskaźnik, odczytać adresu jakiejś komórki pamięci, itp.
— Brak operacji przydzielania i zwalniania pamięci.
— Obiekty tworzy się za pomocą operatora new, który
zwraca nie adres, lecz uchwyt do obiektu. Gdy przestaną
istnieć zmienne odwołujące się do obiektu, pamięć zostaje
zwolniona automatycznie (tzw. mechanizm garbage collection).
— Jednoznaczność typów (łącznie z obiektami)
— Brak możliwości definiowania metod o zmiennej liczbie
atrybutów,
— Bezpieczne rzutowanie typów
— Brak plików nagłówkowych
— Brak struktur i unii — zostały całkowicie zastąpione
przez klasy
Pierwszy program w Javie
Plik źródłowy HelloWorld.java:
class HelloWorld // Definicja klasy
{
public static void main (String args[])
/* Każdy program musi zawierać metodę main */
/* Java rozróżnia wielkość liter!!!
*/
{
System.out.println("Hello World!");
}
}
Kompilacja:
javac HelloWorld.java
Uruchomnienie pliku wynikowego HelloWorld.class:
java HelloWorld
Hello World!
Pierwszy Applet w Javie
Plik źródłowy HelloWorld.java:
import java.awt.*;
import java.applet.*;
class HelloWorld extends Applet
{
public void paint (Graphics g)
{
g.drawString("Hello World!", 20, 20);
}
}
Plik HTML HelloWorld.html :
<HTML>
<HEAD><TITLE>Strona z apletem</TITLE></HEAD>
<BODY>
<H1>Aplet <EM>HelloWorld</EM>:</H1>
<applet
code=HelloWorld.class
name=myFirstApplet
width=320
height=200>
</applet>
</BODY>
</HTML>
Drugi Applet w Javie
Plik źródłowy ResizeMe.java:
import java.awt.*;
import java.applet.*;
public class
{
final int
int max =
int min =
Dimension
ResizeMe extends Applet
inc = 25;
500;
200;
d;
public void paint (Graphics g)
{
d = size();
g.setColor(Color.black);
g.drawLine(0, 0, d.width, d.height);
g.drawLine(0, d.height, d.width, 0);
g.drawString(d.width+" x " + d.height, 10, 20);
}
public boolean mouseUp(java.awt.Event evt, int x, int y)
{
int w = (d.width + inc) > max ? min : (d.width + inc);
int h = (d.height + inc) > max ? min : (d.height + inc);
resize(w,h);
return true;
}
}
Powyższy program należy uruchomić w przeglądarce apletów, gdyż
w internetowych przeglądarkach nie można zmieniać rozmiaru apletów.

Podobne dokumenty