Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Programowanie obiektowe

Wstp do programowania w
jzyku Java
Pawe Rogaliski
Instytut Informatyki, Automatyki i Robotyki
Politechniki Wrocawskiej
pawel.rogalinski @pwr.wroc.pl

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

1 / 28

Zamiast wprowadzenia
Dla kogo jest dzisiejszy wykad?
 Dla osb, ktre znaj jzyk C/C++ ?
 Dla osb ktre zaczynaj swoj przygod z jzykiem Java?
 Dla osb zainteresowanych tworzeniem aplikacji dla systemu Android ?

Czy mona

nauczy (nauczy si) programowania w jzyku Java w kilka godzin?

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

2 / 28

Literatura
 Krzysztof Barteczko: Java od Podstaw do technologii, Tom 1 i 2,
Wydaw. MIKOM, 2004.
 Elliot Koffman, Paul Wolfgang: Structury danych i techniki obiektowe
na przykadzie Javy 5.0,
Wydaw. HELION, 2006.
 Herbert Schildt: Java. Kompendium programisty,
Wydaw. Helion, 2005.
 Joshua Bloch: Java. Efektywne programowanie, Wydaw. Helion, 2009.

 W. Frank Ableson, Robi Sen, Chris King: Android w akcji, Wyd II, Wydaw.
Helion, 2011.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

3 / 28

Narzdzia programistyczne
Firma
udostpnia
bezpatnie
do programowania w Javie. Pod adresem

wszystkie

niezbdne

narzdzia

www.oracle.com/technetwork/java/javase/downloads/index.html
mona pobra pakiet Java SE Development Kit, ktry zawiera:
 narzdzia do budowania, kompilacji i uruchamiania programu,
 narzdzia do dokumentowania i archiwizacji programw,
 pakiety klas standardowych,
 przykadowe aplety i aplikacje.
Uzupenieniem pakietu Java SE JDK jest znormalizowana dokumentacja:
Java SE 6 Documentation
oraz zastaw bezpatnych podrcznikw:
The Java Tutorials

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

4 / 28

Narzdzia programistyczne c.d.


Po zainstalowaniu
podkatalogi:

pakietu

Java SE JDK

katalogu

jdk1.6.0_nn

powstaj

 bin zawierajcy programy usugowe:


javac kompilator,
java - interpreter,
appletviewer przegldarka apletw,
javadoc - generator dokumentacji,
jdb debuger,
jar narzdzie do tworzenia archiww.
 jre zawierajcy rodowisko uruchomieniowe:
wirtualn maszyn javy,
bibliotek klas,
 lib zawierajcy dodatkowe biblioteki klas
 demo zawierajcy aplety i aplikacje demonstracyjne
 include zawierajcy pliki nagwkowe jzyka C
 docs zawierajcy znormalizowana dokumentacja pakietu w postaci stron HTML.
Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

5 / 28

Zintegrowane rodowiska programistyczne Javy


Pakiet Java SE JDK nie zawiera adnego edytora kodu rdowego. Dlatego do pisania
programw w jzyku Java naley uywa innych narzdzi. Najpopularniejsze
zintegrowane rodowiska programistyczne Javy to:
NetBeans http://www.netbeans.org/
Eclipse http://www.eclipse.org/
JCreator http://www.jcreator.com/

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

6 / 28

Zintegrowane rodowiska programistyczne Javy


Do programowania w systemie Android jest zalecane zainstalowanie:
 Pakiet Java JDK 5 lub Java JDK 6 ,
(Uwaga: rodowisko uruchomieniowe Java JRE nie jest wystarczajce)
 rodowisko Eclipse w jednej z poniszych wersji:
 Eclipse IDE for Java Developers
 Eclipse Classic
 Eclipse IDE for Java EE Developers

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

7 / 28

Narzdzia programistyczne dla systemu Android


Do tworzenia aplikacji dla systemu Android niezbdna jest zainstalowanie
pakietu Android SDK udostpnianego bezpatnie pod adresem:

http://developer.android.com/sdk/index.html
Szczegowa instrukcja instalacji krok po kroku jest pod adresem:

http://developer.android.com/sdk/installing.html

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

8 / 28

Tutoriale:
1. The Java SE Tutorials (on line version) - praktyczny przewodnik dla programistw
tworzcych aplikacje w jzyku Java

http://docs.oracle.com/javase/tutorial/
2. Mark Dexter: Using the Eclipse Workbench (video tutorial)

http://eclipsetutorial.sourceforge.net/workbench.html
3. Mark Dexter: Eclipse and Java for Total Beginners (video tutorial)

http://eclipsetutorial.sourceforge.net/totalbeginner.html
4. Mark Dexter: Eclipse and Java: Introducing Persistence (video tutorial)

http://eclipsetutorial.sourceforge.net/persistence.html
5. Mark Dexter: Eclipse and Java: Using the Debugger (video tutorial)

http://eclipsetutorial.sourceforge.net/debugger.html

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

9 / 28

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

10 / 28

Java jako uniwersalne rodowisko programowania


Platforma programistyczna Java 2 zawiera:
 uniwersalny obiektowy jzyk programowania,
 kompilator, debuger, narzdzia tworzenia dokumentacji, itp.,
 bogaty zestaw standardowych bibliotek umoliwiajcych midzy innymi:

jednolity sposb tworzenia graficznych interfejsw uytkownika (AWT, Swing),


dostp do baz danych (JDBC API),
dziaania w sieci (aplikacje typu klient-serwer, aplety, serwelety),
programowanie multimedialne (Java 3D, Java Media Framework),
przetwarzanie dokumentw HTML oraz XML.

 rodowisko programowania w systemach rozproszonych i heterogenicznych


(JNI - Java Native Interface, RMI - Remote Metod Invocation),
 rodowisko budowania programu z gotowych komponentw (JavaBeans)

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

11 / 28

Aktualne edycje Javy


Java 2 platform

J2ME
Micro Edition

J2SE
Standard Edition

J2EE
Enterprise Edition

Java 2 Micro Edition (J2ME) - uproszczona wersja platformy do programowania


urzdze elektronicznych o bardzo ograniczonych zasobach, takich jak telefony
komrkowe lub palmtopy.
Java 2 Standard Edition (J2SE) platforma przeznaczona gwnie do standardowych
zastosowa dla komputerw personalnych i serwerw.
Java 2 Enterprise Edition (J2EE) platforma przeznaczona gwnie do tworzenia
rozbudowanych i zaawansowanych aplikacji biznesowych opartych na architekturze
wielowarstwowej.
Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

12 / 28

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

13 / 28

Wirtualna maszyna Javy (JVM)


 Java Virtual Machine to rodzaj wirtualnego komputera, ktry ma swj zestaw
rejestrw, zestaw instrukcji, stos i pami dla programw.
 Dziki standaryzacji maszyny wirtualnej, programy napisane w Javie
s uniwersalne, tzn. wykonuj si identycznie w kadym systemie operacyjnym.
 Programy napisane w Javie s kompilowane do poziomu kodu poredniego,
nazywanego kodem bajtowym Javy (bytecode).
 Kod bajtowy jest interpretowany przez wirtualn maszyn JVM do postaci
programu wykonywalnego dla danego systemu operacyjnego.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

14 / 28

Wieloplatformowo programw w Javie


HelloDemo.java
class HelloDemo {
public static void main(String[] args){
System.out.print(Hello);
}
}

Hello

Windows
kompilator javac

JVM java

Hello

JVM java

Linux

HelloDemo.class
Hello

B-kod

JVM java
Solaris

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

15 / 28

Program w Javie
 Kady program w Javie jest zestawem klas.
 Klasa jest podstawow jednostk enkapsulacji
(nie mona pisa kodu poza definicj klasy).
 Pisany przez nas program moe by zapamitany w jednym lub wielu
plikach rdowych o rozszerzeniu "java".
 Naley przestrzega nastpujcej konwencji dotyczcej nazewnictwa
nazwa klasy powinna by zgodna z nazw pliku, ktry przechowuje program.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

16 / 28

Kompilacja
 Kompilator Javy wymaga, aby pliki rdowe

edytor tekstowy

miay rozszerzenie java.


 Pliki rdowe s kompilowane za pomoc kompilatora Javy
(javac.exe) do

Program.java

postaci kodu bajtowego (poredniego),

a nie kodu maszynowego.


 Polecenie kompilacji pliku rdowego ma posta:

kompilator javac

Program.class

javac nazwa_pliku.java
 Wynikiem kompilacji s pliki z rozszerzeniem class,

JVM java

ktre mog by wykonane przez maszyn wirtualn Javy.


Hello

 Podczas kompilacji pliku rdowego kada klasa zostaje


przeniesiona do swojego wasnego pliku o nazwie waciwej
zgodnej z nazw klasy i rozszerzeniu class
Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

17 / 28

Aplikacje i Aplety
 Wyrniamy dwa rodzaje programw: aplikacje (standalone programs)
i aplety (applets).
 Aplikacje mog dziaa zarwno w trybie graficznym
jak i tekstowym.
 Aplety dziaaj jedynie w rodowisku graficznym.
 Aby zobaczy dziaanie aplikacji musimy mie zainstalowan
w naszym komputerze wirtualn maszyn Javy JVM.
 Aplety s wykonywane przez rodowisko przegldarek; s one widoczne wtedy,
gdy przegldarka posiada zintegrowan wirtualn maszyn Javy.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

18 / 28

Aplikacja
 Aby aplikacja moga zosta uruchomiona, gwna klasa musi zawiera metod
public static void main(String args[])
 Maszyna wirtualna Javy jest wywoywana za pomoc polecenia java
z argumentami: nazwa pliku o rozszerzeniu class zawierajcego
metod main() oraz argumenty wywoania tej metody, np.:
java nazwa_pliku arg1 arg2
 Po zaadowaniu klasy przez JVM sterowanie zostaje przekazane do
metody main() i tu zaczyna si waciwe dziaanie programu:
tworzenie obiektw, odwoania do innych klas aplikacji.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

19 / 28

Aplet
 Aplety w odrnieniu od aplikacji nie posiadaj metody main(). Gwna klasa
kadego

apletu

(np.

MyApps

musi

by

klas

publiczn,

dziedziczy

z predefiniowanej klasy Applet z pakietu java.applet, albo JApplet z pakietu


javax.swing.
 Nazwa pliku rdowego w ktrym znajduje si gwna klasa musi by taka jak nazwa
klasy, a jego rozszerzenie musi by java.
 Do uruchomienia apletu trzeba utworzy plik HTML zawierajcy znacznik wywoania
tej klasy, np.:
<applet code = MyApps.class
width = 300 height = 300>
</applet>

 Po napotkaniu tego znacznika przegldarka aduje plik MyApps.class, nastpnie


wywoywany jest konstruktor tej klasy oraz metoda inicjalizacyjna, itd.
Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

20 / 28

Pierwszy program
 Tworzymy plik PierwszyProgram.java i wprowadzamy nastpujcy kod:
class PierwszyProgram
{
public static void main(String arg[]){
System.out.println("To jest pierwszy program");
}
}

 Nastpnie kompilujemy program rdowy za pomoc kompilatora javac:


javac PierwszyProgram.java
 Na kocu wykonujemy program, korzystajc z interpretera java:
java PierwszyProgram

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

21 / 28

Program z argumentami
 Tworzymy plik Argumenty.java i wprowadzamy nastpujcy kod:
class Argumenty
{
public static void main(String[] args)
{
int n = args.length;
System.out.println("Argumenty: ");
for (int i=0; i<n; ++i)
System.out.println(args[i]+ "\t");
}
}

 Nastpnie kompilujemy program rdowy


za pomoc kompilatora javac:
javac Argumenty.java
 Na kocu wykonujemy program,
korzystajc z interpretera java:
java Argumenty par1 par2 par3

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

22 / 28

Pierwszy aplet
 Tworzymy plik PierwszyAplet.java i wprowadzamy nastpujcy kod:
import java.awt.*;

import java.applet.*;
public class PierwszyAplet extends Applet
{
public void paint(Graphics g)
{
g.drawString("To jest pierwszy aplet ", 20, 20);
}
}

 Nastpnie kompilujemy program rdowy za pomoc kompilatora javac:


javac PierwszyAplet.java
 Co si stanie, gdy aplet zostanie uruchomiony jako samodzielna aplikacja?
Interpreter Javy wywietli wtedy komunikat o bdzie, e nie znalaz metody main:
Exception in thread "main" java.lang.NoSuchMethodError: main

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

23 / 28

Pierwszy aplet c.d.


 Musimy jeszcze przygotowa prost stron WWW z odpowiednio zapisanym
znacznikiem <APPLET>. Wymaganymi parametrami znacznika <APPLET> s:
 width i height, ktre definiuj rozmiar obszaru wykorzystywanego przez aplet
na stronie WWW,
 code okrelajcy nazw pliku class z kodem bajtowym apletu.
<html>
<body>
<applet code = "PierwszyAplet.class"
width = "300"
height = "200">
</applet>
</body>
</html>

 Po otwarciu strony WWW przegldarka utworzy okno o rozmiarach width x height,


a nastpnie uruchomi i wywietli w utworzonym oknie aplet, ktrego kod bajtowy
znajduje si w pliku PierwszyAplet.class.

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

24 / 28

Aplet uruchamiany jako aplikacja


Istnieje moliwo napisania apletu, ktry bdzie mg pracowa zarwno jako aplet,
jak i aplikacja. Wystarczy doda do niego metod main, ktra utworzy okno
(obiekt klasy Frame) i egzemplarz apletu.
import java.awt.*;

import java.applet.*;
public class Hello extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
public static void main(String args[])
{
Frame frame = new Frame("Pogram Hello");
Hello aplet = new Hello();
frame.setSize(300, 300);
frame.add(aplet);
frame.show();
aplet.init();
}
}

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

25 / 28

Okna dialogowe do wczytywania i wywietlania tekstw


 Tekst (acuch znakw) mona zapamita w obiektach klasy String
String text;

// deklaracja obiektu klasy String

 Tekst mona wczytywa w graficznym oknie dialogowym


tworzonym przez metod showInputDialog z klasy JOptionPane
text = JOptionPane.showInputDialog(tekst zachty:);
 Text mona wywietli w oknie konsoli za pomoc metody print lub println
System.out.print(text);
 Tekst mona wywietla w oknie graficznym tworzonym
przez metod showInputDialog z klasy JOptionPane
JOptionPane.showMessageDialog(text);

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

26 / 28

Okna dialogowe do wczytywania i wywietlania tekstw

import javax.swing.JOptionPane;
class TextInOut
{
public static void main(String arg[])
{
String text;
text = JOptionPane.showInputDialog(null,
"Wprowad tekst:");
System.out.println(text);
JOptionPane.showMessageDialog(null, text);
System.exit(0);
}
}

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

27 / 28

Wczytywanie i wywietlanie tekstw - przykad


import javax.swing.JOptionPane;
class Wizytowka
{
public static void main(String[] arg)
{
String nazwisko, imie;
// wcztytanie danych
nazwisko = JOptionPane.showInputDialog(null, "Podaj nazwisko:");
imie = JOptionPane.showInputDialog(null, "Podaj imie:");
// wyswietlanie w oknie konsoli
System.out.println("Imie: " + imie);
System.out.println("Nazwisko: " + nazwisko);
// wyswietlanie w oknie graficznym
String text;
text = "Imie: " + imie + "\n";
text += "Nazwisko: " + nazwisko;
JOptionPane.showMessageDialog(null, text);
// zakonczenie aplikacji
System.exit(0);
}
}

Wstp do programowania w jzyku Java Autor: Pawe Rogaliski Instytut Informatyki, Automatyki i Robotyki PWr

28 / 28

You might also like