Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

© 2000-2003 Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE.

Benzer bir sunumlar


... konulu sunumlar: "© 2000-2003 Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE."— Sunum transkripti:

1 © 2000-2003 Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE bingol@boun.edu.trmeraklisina.com BU-SWE 510 Fall 2003

2 © 2000-2001 integral v2.16 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl İntegral Bilgisayar Hizmetleri A.Ş. www.integral.com.trmeraklisina.com BU-CmpE 473 Fall 2001

3 3 meraklisina.comİçerik KaynaklarKaynaklar Java genel bakışJava genel bakış Tek Class ile Java programlamaTek Class ile Java programlama –Temel Tipler –Operatörler –Değişkenler –Akış kontrolu –Temel Nesneler

4 4 meraklisina.com Java Genel Bakış

5 5 meraklisina.com Java nedir? Java is a simple,simple, object oriented,object oriented, distributed,distributed, interpreted,interpreted, robust,robust, secure,secure, architecture natural,architecture natural, portable,portable, high-performance,high-performance, multithreaded,multithreaded, dynamicdynamiclanguage.

6 6 meraklisina.com Java nedir?... Sun geliştirdi (James Gosling)Sun geliştirdi (James Gosling) –1991 Embedded sistemler –1995 web Bir programlama diliBir programlama dili –Nesneye dayalı –Concurrent ThreadThread SynchronizationSynchronization Standart class kütüphaneleriStandart class kütüphaneleri JVM-Java Virtual MachineJVM-Java Virtual Machine

7 7 meraklisina.com Java Çalışma Ortamı Java Kaynak Kodu Java Byte-Code javac geliştirme çalışma Java Byte-Code JVM İşletim Sistemi Java Byte-Code JVM Browser

8 8 meraklisina.com Java Artılar Platformdan bağımsızPlatformdan bağımsız –Windows, Unix, Mac –Internet Explorer, Netscape Navigator Standart kütüphanelerStandart kütüphaneler –Grafik Kullanıcı Arayüzü –Resim ve ses –JDBC –Network –...

9 9 meraklisina.com Java Artılar... Tasarım olarak internete hazırTasarım olarak internete hazır –"Canlı" Web sayfaları –FTP clients, POP mail clients –HTTP –RMI-Remote Method Invocation –Güvenlik –...

10 10 10 meraklisina.com JIT Derleyiciler Just In Time (JIT)Just In Time (JIT) –byte-code -> makine kodu –istemci tarafında derleme –sadece kullanılan kısmın derlenmesi Java Byte-Code JVM Makine Kodu

11 11 11 meraklisina.com Java ve C++ Karşılaştırması pointerpointer struct, union, enumstruct, union, enum çoklu kalıtımçoklu kalıtım preprocessorpreprocessor

12 12 12 meraklisina.com Java ve C++ Karşılaştırması... Byte-codeByte-code String ve diziler birer nesneString ve diziler birer nesne otomatik garbage collectionotomatik garbage collection

13 13 13 meraklisina.com JDK Araçları Java Development Kit (JDK)Java Development Kit (JDK) –javac Java derleyicisiJava derleyicisi –appletViewer appletlerin çalıştığı ortamappletlerin çalıştığı ortam –java uygulamaların çalıştığı ortamuygulamaların çalıştığı ortam –javadoc /** … */ belgelemesi/** … */ belgelemesi www.java.sun.com

14 14 14 meraklisina.com Entegre Geliştirme Ortamları eclipse (www.eclipse.org)eclipse (www.eclipse.org)www.eclipse.org JEdit (www.jedit.org)JEdit (www.jedit.org)www.jedit.org Visual Age for Java -> WebSphereVisual Age for Java -> WebSphere Forte -> SunONEForte -> SunONE JBuilderJBuilder......

15 15 15 meraklisina.com Tek Class ile Java Programlama

16 16 16 meraklisina.com Merhaba Dünya public class HelloWorld { public static void main(java.lang.String[] args) { System.out.println("Merhaba Dunya"); } Kernighan & Ritchie The C Programming Language 1978 UnicodeUnicode –16 bit –www.unicode.org Merhaba Dunya out

17 17 17 meraklisina.com Consol I/O public class ConsolIO { public static void main(java.lang.String[] args) throws java.io.IOException { System.out.println("Lütfen bir sayı girin: "); int i = System.in.read(); System.out.println("i: " + i); } Kernighan & Ritchie The C Programming Language 1978 UnicodeUnicode –16 bit –www.unicode.org Lütfen bir sayı girin: 34 i: 51 consol

18 18 18 meraklisina.comComment /* Bu bir açıklamadır */ /* Şimdi diziyi ters çevirelim * Son değere dikkat */ /** Bu bir belgeleme açıklamasıdır */ /** * Geçilebilir */ static final int GEÇ = 1; // Bu bir açıklamadır int sayı = 0; // ilk değeri koy çok satırçok satır tek satırtek satır belgelemebelgeleme –javadoc

19 19 19 meraklisina.com Comment... // ve /* kullanımı// ve /* kullanımı /** * Fibonacci serisi * f(0) = 1 * f(1) = 1 * f(n) = f(n-1) + f(n-2) */ public class Fibonacci { static final int MAX=9; public static void main(String[] args) { // başlangıç değerler int nm2 = 1; /* int nm1 = 1; // diğer değerler System.out.println("1: " + nm2); for (int i = 2; i <= MAX; i++) { System.out.println(i + ": " + nm1); nm1 = nm2 + nm1; nm2 = nm1 - nm2; } */ }

20 20 20 meraklisina.com Temel Tipler

21 21 21 meraklisina.com Temel Veri Tipleri public void initVariables() { byte byA; byA = 5; short shA; shA = 7; int intA; long lgA; lgA = 45L; float ftA; ftA = 1.2F; ftA = 1.2f; double dbA; dbA = 1.2D; dbA = 1.2d; dbA = 1.2; dbA =.12e1; dbA =.12E1; char chA; chA = '\n'; // diger \b, \t, \n, \f, \r, \", \', \\ chA = '\uffff'; // ffff hex chA = 'A'; boolean boA; boA = true; boA = false; } bytebyte shortshort intint longlong floatfloat doubledouble charchar booleanboolean

22 22 22 meraklisina.com Temel Veri Tipleri … Büyüklükler bytebyte shortshort intint longlong floatfloat doubledouble charchar booleanboolean

23 23 23 meraklisina.com Temel Veri Tipleri … Type Wrappes bytebyte shortshort intint longlong floatfloat doubledouble charchar booleanboolean java.lang.Bytejava.lang.Byte java.lang.Shortjava.lang.Short java.lang.Integerjava.lang.Integer java.lang.Longjava.lang.Long java.lang.Floatjava.lang.Float java.lang.Doublejava.lang.Double java.lang.Characterjava.lang.Character java.lang.Booleanjava.lang.Boolean

24 24 24 meraklisina.com Temel Veri Tipleri … Tipler Arası Çevrim public void casting() { System.out.println("\nTipler arasi cevrim"); double dbD = 7.99; long lgL = (long) dbD; System.out.println("dbD: " + dbD + "\tlgL: " + lgL); short shS = -134; byte byB = (byte) shS; System.out.println("shS: " + shS + "\tbyB: " + byB); String strI = "-134"; int intI = Integer.parseInt(strI); System.out.println("strI: " + strI + "\tintI: " + intI); String strF = "7.99"; float flF = Float.parseFloat(strF); System.out.println("strF: " + strF + "\tflF: " + flF); } Tipler arasi cevrim dbD: 7.99lgL: 7 shS: -134byB: 122 strI: -134intI: -134 strF: 7.99flF: 7.99 out

25 25 25 meraklisina.com Operatörler ve İşlem Sırası

26 26 26 meraklisina.com Operatorler ve İşlem Sırası

27 27 27 meraklisina.com Operatorler ve İşlem Sırası … Postfix ve Prefix public void operators() { int count = 0; // postfix System.out.println("postfix "); count = 0; do { System.out.println(count); } while (count++ < 4); // prefix System.out.println("prefix "); count = 0; do { System.out.println(count); } while (++count < 4); int j = 16; System.out.println(++j + " " + j++ + " " + j); }

28 28 28 meraklisina.com public void operators() { int count = 0; // postfix System.out.println("postfix "); count = 0; do { System.out.println(count); } while (count++ < 4); // prefix System.out.println("prefix "); count = 0; do { System.out.println(count); } while (++count < 4); int j = 16; System.out.println(++j + " " + j++ + " " + j); } Operatorler ve İşlem Sırası … Postfix ve Prefix... postfix 0 1 2 3 4 prefix 0 1 2 3 out

29 29 29 meraklisina.com Operatorler ve İşlem Sırası … Postfix ve Prefix... public void operators() { int count = 0; // postfix System.out.println("postfix "); count = 0; do { System.out.println(count); } while (count++ < 4); // prefix System.out.println("prefix "); count = 0; do { System.out.println(count); } while (++count < 4); int j = 16; System.out.println(++j + " " + j++ + " " + j); }

30 30 30 meraklisina.com public void operators() { int count = 0; // postfix System.out.println("postfix "); count = 0; do { System.out.println(count); } while (count++ < 4); // prefix System.out.println("prefix "); count = 0; do { System.out.println(count); } while (++count < 4); int j = 16; System.out.println(++j + " " + j++ + " " + j); } Operatorler ve İşlem Sırası … Postfix ve Prefix... 17 17 18 out

31 31 31 meraklisina.comÖrnek /** * Fibonacci serisi * f(0) = 1 * f(1) = 1 * f(n) = f(n-1) + f(n-2) */ public class Fibonacci { static final int MAX=9; public static void main(String[] args) { int nm2 = 1; int nm1 = 1; System.out.println("1: " + nm2); for (int i = 2; i <= MAX; i++) { System.out.println(i + ": " + nm1); nm1 = nm2 + nm1; nm2 = nm1 - nm2; } 1: 1 2: 1 3: 2 4: 3 5: 5 6: 8 7: 13 8: 21 9: 34 out

32 32 32 meraklisina.com Değişkenler

33 33 33 meraklisina.comİdentifiers AdlandırmaAdlandırma –başlangıç harfharf _ para:para: $,£,¥ –geri kalan harfharf rakamrakam ÖrnekÖrnek counter String açı_  2  çarpışmaKatsayısı TanımlanmışTanımlanmış –değişken –sabit –etiket

34 34 34 meraklisina.comDeğişkenler İçeriğiİçeriği –basit tipin değeri –nesne referansı SaklamaSaklama –local değişken –instance değişkeni –class değişkeni Otomatik garbage collectionOtomatik garbage collection

35 35 35 meraklisina.com Değişkenler... Adlandırma Değişken adıDeğişken adı –unicode dizisi –keyword olmamalı –aynı scope da aynı ad olmamalı ConvansiyonConvansiyon –küçük harfle başla –küçük harfle başla isVisible

36 36 36 meraklisina.com Değişkenler... Scope MemberMember YerelYerel MetodMetod ExceptionException

37 37 37 meraklisina.com Değişkenler... Ad Uzayı // The Java Programming Language, 3ed // Arnold, Gosling, Holmes // pp.153 package Reuse; class Reuse { Reuse Reuse(Reuse Reuse) { Reuse: for (;;) { if (Reuse.Reuse(Reuse) == Reuse) break Reuse; } return Reuse; } SıralamaSıralama –package –type –field –method –local variable –label Java da da okunmaz kod yazılabılırJava da da okunmaz kod yazılabılır

38 38 38 meraklisina.com Değişkenler... İlk değer Derleyici değişkenin değer verilmeden kullanılmasını engellerDerleyici değişkenin değer verilmeden kullanılmasını engeller // hatalı int a, b; boolean flag = true; if (flag ){ a = 2; } b = a;

39 39 39 meraklisina.com Akış Kontrolu

40 40 40 meraklisina.com Akış Kontrolu … Karar if /* *********** * if */ boolean flagKapi = true; boolean girilebilir = false, girilemez = false; // giriş kontrol if (flagKapi == ACIK) { girilebilir = true; } if (flagKapi == ACIK) { girilebilir = true; } else { girilemez = true; } /* *********** * if */ boolean flagKapi = true; boolean girilebilir = false, girilemez = false; // giriş kontrol if (flagKapi == ACIK) { girilebilir = true; } if (flagKapi == ACIK) { girilebilir = true; } else { girilemez = true; } if (condition) { statements; } if (condition) { statements; } else { statements; } if (condition) { statements; } if (condition) { statements; } else { statements; }

41 41 41 meraklisina.com Akış Kontrolu … Karar... switch /* *********** * switch */ // asansör hangi katta int asansorunOlduguKat = 2; String kat; switch (asansorunOlduguKat) { case 1 : kat = "Giriş Katı"; break; case 2 : kat = "Satış Katı"; break; case 4 : case 5 : kat = "Muhasebe Katı"; break; default : kat = "Girilmez"; break; } /* *********** * switch */ // asansör hangi katta int asansorunOlduguKat = 2; String kat; switch (asansorunOlduguKat) { case 1 : kat = "Giriş Katı"; break; case 2 : kat = "Satış Katı"; break; case 4 : case 5 : kat = "Muhasebe Katı"; break; default : kat = "Girilmez"; break; } switch (value) { case value1: statements; break; case value2: statements; break; default: statements; break; } switch (value) { case value1: statements; break; case value2: statements; break; default: statements; break; }

42 42 42 meraklisina.com Akış Kontrolu … Döngü for /* *********** * for */ // 1'den 100'e kadar sayıları topla int toplam = 0; for (int i = 0; i <= 100; i++) { toplam += i; } for (initialize; test; increment) { statements; }

43 43 43 meraklisina.com Akış Kontrolu … Döngü... do /* *********** * do */ // adım atarak yaklaş int araMesafe = 20; do { //etrafaBak(); araMesafe -= 10; } while (araMesafe != 0); do { statements; } while(condition);

44 44 44 meraklisina.com Akış Kontrolu … Döngü... while // tartı while(terazi.dengelendimi()) { terazi.agirlikEkle(10); } while(condition){ statements; }

45 45 45 meraklisina.com Akış Kontrolu … Diğer break, continue atla: while(ulasilmadi) { mesafe++; if (cokHafif) { continue atla; } if (cokAgir) { break disari; } agirlik += 10; disari: tamam = true; } break label; continue label; break, goto değilbreak, goto değil

46 46 46 meraklisina.com Temel Nesneler

47 47 47 meraklisina.com Temel Nesneler... Diziler // basit tiplerin dizileri int[] aylar = new int[12]; for (int i = 0; i < 12; i++) { aylar[i] = i; } // Nesne dizileri Hesap[] musteriler = new Hesap[200]; for (int i = 0; i < musteriler.length; i++) { musteriler[i].setBakiye(0D); } Diziler nesne olarak kabul edilirDiziler nesne olarak kabul edilir –Basit tiplerin dizisi –Nesnelerin dizisi Dizi sınırları kontrol edilirDizi sınırları kontrol edilir.length.length indexlerindexler –ilk 0 –son length-1

48 48 48 meraklisina.com Temel Nesneler... Dizi dizileri // matrix float[][] mat; mat = new float[4][5]; setupMatrix(mat); for (int y = 0; y < mat.length; y++){ for (int x = 0; x < mat[y].length; x++){ System.out.print(mat[y][x] + " "); } System.out.println(); } // çok boyutlu diziler float[][] mat = new float[4][]; mat[0] = new float[2]; mat[1] = new float[10]; mat[2] = new float[300]; mat[3] = new float[5]; // ilk değerler String[] tatilGünleri = { "Cumartesi", "Pazar"}; // paskal üçgeni int[][] pascalsTriangle = { {1}, {1, 1}, {1, 2, 1}, {1, 3, 3, 1} }; En sol boyut mutlaka tanımlanmalıEn sol boyut mutlaka tanımlanmalı

49 49 49 meraklisina.com Temel Nesneler... String // tanımla String sA = "Ali"; // uzunluğu int uzunluk = sA.length; // birleştir String sB = sA + " topu at"; // karşılaştırma if ( sA == sB) { // aynı nesneyi gösteriyorlarsa } if ( sA.equals(sB)) { // eşit içerikleri gösteriyorlarsa } int i = 3; System.out.println("i= " + i); String bir nesnedirString bir nesnedir

50 50 50 meraklisina.com public class Hesap { private double bakiye; private long ID; private static long lastID = 0; /* default constructor */ public Hesap() { this(0.0); } public Hesap(double acilisBakiyesi) { bakiye = acilisBakiyesi; ID = newID(); } /* para yatti */ public void bakiyeArttir(double yatan) { bakiye += yatan; } /* para cekildi */ public void bakiyeAzalt(double cekilen) { bakiye -= cekilen; } /* para cekildi */ public double getBakiye() { return (bakiye); } /* use static variable for ID */ public long newID() { lastID++; return (lastID); } Örnek Muhasebe Hesabı İlk program segmentiİlk program segmenti

51 51 51 meraklisina.comÖzet Java genelJava genel Java - C++Java - C++ Consol I/OConsol I/O CommentComment Temel veri tipleriTemel veri tipleri Operatörler ve İşlem SırasıOperatörler ve İşlem Sırası DeğişkenlerDeğişkenler DiziDizi StringString Akış kontrolAkış kontrol LabLab Tek class (+ dizi + String) ile program yazabilir hale geldik

52 52 52 meraklisina.comKaynaklar The Java Programming Language, 3e Arnold, Gosling, Holmes Addison-Wesley, 2000The Java Programming Language, 3e Arnold, Gosling, Holmes Addison-Wesley, 2000 The Java Tutorial Object-Oriented Programming for the Internet Campione, Walrath Addison-Wesley, 1996The Java Tutorial Object-Oriented Programming for the Internet Campione, Walrath Addison-Wesley, 1996 The Java Tutorial, 3e A Short COurse on the Basics Campione, Walrath Addison-Wesley, 2001The Java Tutorial, 3e A Short COurse on the Basics Campione, Walrath Addison-Wesley, 2001 Java How to Program, 4e Dietel & Dietel Prentice Hall, 2002Java How to Program, 4e Dietel & Dietel Prentice Hall, 2002 www.java.sun.com/docs/books/tutorialwww.java.sun.com/docs/books/tutorial


"© 2000-2003 Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE." indir ppt

Benzer bir sunumlar


Google Reklamları