Podstawy języka Java przygotował: pawel@kasprowski.pl
Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK)
Autorzy Javy Green Team Ojciec Javy: James Gosling
Poszukiwanie zastosowania 1992 - Star7 porażka marketingowa, urządzenia domowe nie gotowe TV kablowa nieudane podejście 1993 pierwsza przeglądarka WWW: Mosaic 1995 oficjalne ogłoszenie technologii apletów Java na konferencji SunWorld
Główne właściwości Oparta na języku C++ Prostota Obiektowość Niezależność od sprzętu Używanie bibliotek (packages) Bezpieczeństwo (zarządzenie pamięcią i VM)
Niezależność sprzętowa Kompilacja do byte-code Interpretacja do assemblera danego procesora
Java Virtual Machine przygotował: pawel@kasprowski.pl
Zalety i wady Zalety: Prostota Niezależność sprzętowa Bezpieczeństwo (garbage collector, VM) Podobieństwo do C++ Wady: Wolniejsza niż C++ Aplikacja potrzebuje Virtual Machine (JRE)
Pominięte właściwości C++ wielodziedziczenie wskaźniki preprocesor zarządzanie pamięcią (alloc, free) przeciążanie operatorów ukryte konwersje danych z utratą wartości struktury i unie (struct, union)
Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!");
Komponenty Javy JRE Java Runtime Environment Maszyny wirtualne na różne platformy JDK Java Development Kit Kompilator, biblioteki i narzędzia
Uruchomienie pierwszej aplikacji javac Hello.java java Hello lub javaw Hello Hello.java
Użycie IDE Integrated Development Environment Borland JBuilder SunONE Studio NetBeans Eclipse Inteligentny edytor, debugger, kompilator
Rozszerzenia plików Java *.java kod źródłowy *.class definicja klasy w byte-code *.jar archiwum z wieloma klasami (może to być cała aplikacja lub pakiet)
Przekazywanie parametrów class Hello2 { public static void main(string[] args) { if(args.length==2) System.out.println("Parametry:"+ args[0]+","+args[1]); Hello2.java
Liczenie sumy parametrów class HelloSum { public static void main(string[] args) { if(p.length!=2) { System.out.println("Podaj parametry!"); System.exit(0); int a = Integer.parseInt(p[0]); int b = Integer.parseInt(p[1]); System.out.println("Suma: "+(a+b)); HelloSum.java
Obsługa wyjątków class HelloSum2 { public static void main(string[] args) { if(p.length!=2) { System.out.println("Podaj parametry!"); System.exit(0); try{ int a = Integer.parseInt(p[0]); int b = Integer.parseInt(p[1]); System.out.println("Suma: "+(a+b)); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!"); HelloSum2.java
Kalkulator kredytowy Obliczenie wysokości miesięcznej raty spłaty kredytu na podstawie jego kwoty, oprocentowania rocznego i liczby rat miesięcznych rata = kwota* 1 1+ oproc /12 1 ( oproc /12) liczba _ rat
Kalkulator kredytowy class Kredyt { static public void main(string[] p) {... try{ double kwota = Double.parseDouble(p[0]); double procent = Double.parseDouble(p[1]); double lat = Double.parseDouble(p[2]); double rata = kwota * (procent/12)/ (1-(1/Math.pow(1+procent/12,lat*12))); System.out.println("Rata "+rata); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!"); Kredyt.java
Tworzenie funkcji class Kredyt { static public void main(string[] p) { try{ double rata = liczrate(double.parsedouble(p[0]), Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata "+rata); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!");...
Tworzenie funkcji class Kredyt2 { static public void main(string[] p) {... double liczrate(double kwota, double procent, double lat) { double proc_m = procent/12; double rat = lat*12; double wsp = 1/Math.pow(1.0+proc_m,rat); wsp = 1 - wsp; wsp = proc_m / wsp; return kwota * wsp; Kredyt2.java
Tworzenie funkcji class Kredyt2 { static public void main(string[] p) {... double liczrate(double kwota, double procent, double lat) { double proc_m = procent/12; double rat = lat*12; double wsp = 1/Math.pow(1.0+proc_m,rat); wsp = 1 - wsp; wsp = proc_m / wsp; return kwota * wsp; Kredyt2.java
Static members Class Foo{ int x;...... Foo f1=new Foo(); Foo f2=new Foo(); f1.x=1; f2.x=2; println(f1.x+, +f2.x); Class Foo{ static int x;...... Foo f1=new Foo(); Foo f2=new Foo(); f1.x=1; f2.x=2; println(f1.x+, +f2.x); 1,2 2,2
Tworzenie funkcji class Kredyt3 { static public void main(string[] p) { Kredyt3 k = new Kredyt3(); try{ double rata = k.liczrate(double.parsedouble(p[0]), Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata "+rata); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!"); Kredyt3.java
Konstruktor class Kredyt4 { double rata; static public void main(string[] p) { try{ Kredyt4 k = new Kredyt4(Double.parseDouble(p[0]), Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata "+k.rata); catch (NumberFormatException e) {... public Kredyt4(double kwota, double procent, double lat) { double wsp = 1-1/Math.pow(1.0+procent/12,lat*12); wsp = proc_m / wsp; rata = kwota * wsp; Kredyt4.java
Metoda typu getter class Kredyt5 { double rata; static public void main(string[] p) { try{ Kredyt5 k = new Kredyt5(Double.parseDouble(p[0]), Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata "+k.getrata()); catch (NumberFormatException e) {... public Kredyt5(double kwota, double procent, double lat) {... public double getrata() { return rata; Kredyt4.java
Kalkulator kredytowy Obliczenie wysokości miesięcznej raty spłaty kredytu na podstawie jego kwoty, oprocentowania rocznego i liczby rat miesięcznych rata = kwota* 1 1+ oproc /12 1 ( oproc /12) liczba _ rat
class Kredyt5 { double wsp; Parametryzacja kwoty static public void main(string[] p) {... Kredyt5 k = new Kredyt5(procent, lata); System.out.println("Rata "+k.getrata(kwota));... public Kredyt5(double procent, double lat) { wsp = 1-1/Math.pow(1.0+procent/12,lat*12); wsp = (procent / 12) / wsp; public double getrata(double kwota) { return wsp*kwota; Kredyt5.java
Kalkulator class Kalkulator { static public void main(string[] p) { try{ Kredyt k = new Kredyt(Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata"+ k.getrata(double.parsedouble(p[0]))); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!"); Kalkulator.java
Klasa Kredyt class Kredyt { double wsp; public Kredyt5(double procent, double lat) { wsp = 1-1/Math.pow(1.0+procent/12,lat*12); wsp = (procent / 12) / wsp; double getrata(double kwota) { return wsp * kwota; Kredyt.java
------Kalkulator.java---------------------------------------- class Kalkulator { static public void main(string[] p) { try{ Kredyt k = new Kredyt(Double.parseDouble(p[1]), Double.parseDouble(p[2])); System.out.println("Rata"+ k.getrata(double.parsedouble(p[0]))); catch (NumberFormatException e) { System.out.println("Nie podałeś liczb!"); ------Kredyt.java---------------------------------------- class Kredyt { double wsp; przygotował: pawel@kasprowski.pl public Kredyt5(double procent, double lat) { wsp = 1-1/Math.pow(1.0+procent/12,lat*12); wsp = (procent / 12) / wsp; double getrata(double kwota) { return wsp * kwota;
Tabela kredytów class Kalkulator1 { static public void main(string[] p) { int N = 10; Kredyt[] kredyty; for(int i=0; i<n; i++ ) { kredyty[i] = new Kredyt(0.02, i+1);...
Tabela kredytów class Kalkulator1 { static public void main(string[] p) { int N = 10; Kredyt[] kredyty; kredyty = new Kredyt[N]; for(int i=0; i<n; i++ ) { kredyty[i] = new Kredyt(0.02, i+1);...
Tabela kredytów class Kalkulator1 { static public void main(string[] p) { int N = 10; Kredyt[] kredyty = new Kredyt[N]; for(int i=0; i<n; i++ ) { kredyty[i] = new Kredyt(0.02, i+1);... Kalkulator1.java
Tabela kredytów class Kalkulator1 { static public void main(string[] p) { int N = 10; Kredyt[] kredyty = new Kredyt[N]; for(int i=0; i<n; i++ ) { kredyty[i] = new Kredyt(0.02, i+1); for(int i=0; i<n; i++ ) { System.out.println("Lata: "+(i+1)+ " Rata: "+kredyty[i].getrata(10000)); Kalkulator1.java