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

Slides:



Advertisements
Benzer bir sunumlar
Java Hakkında Java Nedir? Java’nın Tarihi Java’nın Avantajları
Advertisements

8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Programlama-II (Java ile Bilgisayar Programlama)
Yazılım Geliştirme ve Java
Java-Veri Tipleri- Operatorler
JAVA TEMELLERİ GİRİŞ JAVA TEMELLERİ GİRİŞ signalsec.com & mialkan.com.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişkenler ve bellek Değişkenler
Programlama-II (Java ile Bilgisayar Programlama)
ÜNİTE DEĞERLENDİRMESİ 1.Sınıf Türkçe
C Programlama Diline Giriş
Bilgisayar Ağlarına Giriş
Bölüm 6 – Metodlar ve Parametreler
Bölüm 4 – Kontrol İfadeleri:1.kısım
EDUTIME Java Day 4 Serdar TÜRKEL.
FRAMEWORK.
1. ipucu Yardım çağırmak için son dakikayı beklemeyin.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Karar ifadeleri ve Döngüler
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
Java Programlama Diline Giriş
EDUTIME Java Day 3 Serdar TÜRKEL.
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
BPR152 ALGORİTMA VE PROGRAMLAMA - II
C# Metot Overloading (Aşırı yükleme)
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
Java Programlama Dili - 02 Class'larla Programlama BU-SWE 510BU-SWE 510 Fall 2003Fall 2003 Dr. Haluk Bingöl BÜ - CmpE
Bölüm 1: Bilgisyara, Programlamaya ve Java’ya giriş
İSİM UZAYLARI (NAMESPACE)
TEST – 1.
NESNEYE DAYALI PROGRAMLAMA
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
Java Sınıf ve Nesne Kavramı UML Gösterimi
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
Net Class Framework ’ ün en üst yapısına İsim Uzayı denir. İsim uzayları ; pascal programlama dilinde 1990 ve hatta öncesinden beri varolmuş, C’de yer.
JAVA İLE PROGRAMLAMAYA GİRİŞ
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
Kalıtım.
Numaralandırmalar(Enumaration)
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
JAVA’DA DİZİLER Dr.Galip AYDIN.
Chapter 1: A First Program Using C#
Algoritma ve Programlama BMÜ 112
Ders İçeriği Liste Soyut veri yapısı (ADT)
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Linux İşletim Sistemi Altında Bileşen Tabanlı Yazılım Geliştirmeye Olanak Sağlayan XCOM Sistemi İçin Java Desteği Ahmet Mutlu.
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
BTÖ 306 Bilgisayar Ağlarına Giriş Dr. Şirin Karadeniz Çelebi Uluyol.
JAVA PROGRAMLAMA ORNEKLER
İKMAP İnternet 1 Ders Notu
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
Mobil Uygulama Geliştirme
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
Mobil Uygulama Geliştirme Teknikleri
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
JDK(Java  Development  Kit):  Java  kodlarını  derlemek  için gerekli  geliştirme  ortamını.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
Dünyanın bilgisine açılan pencere...
Mobil uygulama geliştirme pelin yıldırım Fatma bozyiğit
NİŞANTAŞI ÜNİVERSİTESİ
Dünyanın bilgisine açılan pencere...
Bilgisayar Mühendisliğine Giriş
Kurucular(Yapıcılar), Yıkıcılar
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

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

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

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 meraklisina.com Java Genel Bakış

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 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 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 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 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 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 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 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 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

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

15 15 meraklisina.com Tek Class ile Java Programlama

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 – Merhaba Dunya out

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 – Lütfen bir sayı girin: 34 i: 51 consol

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 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 meraklisina.com Temel Tipler

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 meraklisina.com Temel Veri Tipleri … Büyüklükler bytebyte shortshort intint longlong floatfloat doubledouble charchar booleanboolean

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 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 meraklisina.com Operatörler ve İşlem Sırası

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

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 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 prefix out

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 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 out

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 meraklisina.com Değişkenler

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 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 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 meraklisina.com Değişkenler... Scope MemberMember YerelYerel MetodMetod ExceptionException

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 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 meraklisina.com Akış Kontrolu

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 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 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 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 meraklisina.com Akış Kontrolu … Döngü... while // tartı while(terazi.dengelendimi()) { terazi.agirlikEkle(10); } while(condition){ statements; }

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 meraklisina.com Temel Nesneler

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 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 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 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 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 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,