Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1. ipucu Yardım çağırmak için son dakikayı beklemeyin.

Benzer bir sunumlar


... konulu sunumlar: "1. ipucu Yardım çağırmak için son dakikayı beklemeyin."— Sunum transkripti:

1 1. ipucu Yardım çağırmak için son dakikayı beklemeyin

2 Yeteri kadar not alırsam geçeceğim.
2. ipucu Yeteri kadar not alırsam geçeceğim. Yeni bir konu öğrenirken kötü olaylarla karşılaşabilirsiniz. Büyük ihtimalle bazı programlarınız çökecek. Erken işe koyulun; hatalar için kendinize zaman verin.

3 3. ipucu Ders yüküyle ilgili çok fazla endişeniz olmasın. Bu dersten birkaç gün bile kaytaramazsınız.

4 İpucu 4 Büyük resme odaklanın.
Unutmayın ki , bu ders bir programlama dersidir, Java dersi değil. Dersin programlama kısmından kaçmayın. Finalde ezilebilirsiniz.

5 Özet Eğer yeteri kadar bu ders için hazırlık yapmadıysanız
1.seçenek: Hazırlanın 2.seçenek: Şimdiden dersi bırakın. İki taraf için de iyilik etmiş olursunuz. Ders için gerekli olan ön yeterlilik bilginizi test etmek amacıyla “home quiz” dediğimiz sınavlarınız olacak.

6 Yardımcı kaynaklar Sun firmasının Java konusunda 1000 sayfaya yakın ücretsiz kaynağı internette mevcuttur. Bu kaynağı internetten indirmeli ya da bu sayfayı mutlaka işaretlemelisiniz.

7 Java ‘ya giriş Java nedir: Java ne değildir:
İyi programlama için bir araç JVM yorumlayıcısına sahip herhangi bir platforma taşınabilir İyi bir temele sahipseniz öğrenmesi kolay Nesneye yönelik bir dil Java ne değildir: “Nihai (Son) Programlama Dili” HTML ya da diğer web içerikli dir dil Sadece web applet için gereklidir. Gereksiz bir kısaltma (Just Another Vacuous Acronym)

8 Java ‘ya giriş (devam) Java ‘nın güçlü yönleri:
Gerçek hayatta kullanılan gerçek bir dildir. Taşınabilirlik. Öğrenilmesi kolay Java ile makinaya zarar vermek kolay değil ;-) Gelişmiş GUI grafik bileşenlerine sahiptir Java ‘nın zayıf yönleri: Yorumlandığından ve nesneye yönelik olduğundan yavaştır. GUI/Grafiksel elemanlar için “En Küçük Ortak Payda” (“Least Common Denominator”) yaklaşımı (platformdan bağımsızlık sağlamak için) Yazımla ilgili bazı zorlukların olması

9 Java ‘nın popülaritesi
Java ‘nın popülaritesinin püf noktaları: Basit ve nesneye yönelik bir dil olması. Java Virtual Machine sayesinde yazılan programların değişik sistemler arasında taşınabilir olması. İnternet tarayıcıların JVM ‘e sahip olması sayesinde Java programlarının internet üzerinde taşınabilir olması.

10 Java nedir? “Basit, nesneye yönelik, dağıtık, yorumlanmış, güçlü, güvenli, platform bağımsız, taşınabilir, yüksek performanslı, çoklu kullanım imkanı olan (multithreaded), dinamik bir dildir” -- Sun Pazarlamacı bir ifade; Gelin daha yakından inceleyelim . . .

11 “… nesneye yönelik …” . Java nesneye yönelik bir dildir.
. Java ile nesneye yönelik olmayan programlar yazmak da mümkündür. . Nesneye yönelik bir dilde verinin durumunu ve davranışını belli bir biçimde ifade etmek ve izole etmek için sınıf (class) kullanılır. Veriyi işlemek ve programda kullanabilmek için sınıfın bir üyesi (instance) oluşturulur. Sınıflar belli bir hiyerarşik düzen içinde veya paketler şeklinde düzenlenmiştir.

12 “… nesneye yönelik, …” Örnek:
“Stack” java.util paketinde bulunan bir sınıftır. new terimini kullanarak Stack sınıfının bir üyesi oluşturulur. Yani: import java.util.*; Stack c = new Stack(); c.push(“3”); java.util.Stack x = new Stack(); Diğer veri yapılarının Stack (yığın) modellemek için kullanıldığı fonksiyonel (işlevsel) ve prosedürel (yordamsal) yapıya sahip C ve Pascal gibi dillerden bu şekilde ayrılır.

13 “… dağıtık, …” Java ayrıca dağıtık bir dildir.
Bilgisayar ağları göz önüne alınarak inşa edilmiştir. IPv4 protokolünü tam destekler. Ayrıca internette kullanılan IPv6 protokolünü destekleyen yapılara sahiptir. HTML dökümanlarına gömülmüş haldeki küçük programlar olan Applet ‘leri destekler. Bkz: java.net package RMI/CORBA

14 “… yorumlanmış, …” Her bir komutun derleme esnasında değil de çalışma esnasında makine koduna çevrildiği (diğer bir ifadeyle yorumlama) dildir. Bu, Java ‘ya platform bağımsızlık sağlar: “WORA” ( write once run anywhere) “bir kere yaz her yerde çalıştır”. Bu aynı zamanda, program çalışırken üzerinde değişiklik yapılabilmesini sağlar. Dezavantajı: yavaşlık

15 “… güçlü, …” Java basittir: İşaretçi ve yığın mantığından büyük ölçüde arındırılmıştır. Hata yakalama (Exception handling): try/catch/finally komut dizisi hataların kolay bir şekilde yakalanmasını ve düzeltilmesine olanak verir. Tip bildirimi ve kullanımını zorlar(Strongly typed language): Derleme esnasında birçok hata yakalanır.

16 “… güvenli, …” Sadece derleme esnasında değil aynı zamanda yükleme esnasında da Byte-code doğrulaması yapılır. Applet kodu önemli kısıtlamalar çerçevesinde web dökümanının içerisinde çalışır. ('sandbox') Güvenlik SecurityManager sınıfı tarafından sağlanır. Applet ‘lerin güvenlik kısıtlamaları dijital imzaları ve Servlet ‘leri içermektedir.

17 Java Programlarının Yapısı
Uygulamalar (“standard” bilgisayar programları): Bir ya da daha fazla Java kaynak dosyası oluşturun Her bir kaynak dosyasını sonuçta sınıf dosyası oluşturacak şekilde derleyin. Böylece bir uygulama, bir tek .exe dosyasından değil de birden fazla sınıf dosyasından oluşacaktır. Bir sınıf dosyasını Java sistemine gönderin. Bu sınıfın main adında bir metoda sahip olması gerekir. public static void main(String[ ] argv) main metodu program akışını denetler.

18 Basit bir uygulama ( “HelloWorld.java” adıyla kaydedildi)
public class HelloWorld { public static void main(String argv[]) System.out.println(“MerhabaDünya!”); }

19 Java Dosya İsimleri Kaynak kod dosyası “.java” uzantılı olmalıdır. Dosya adı ile sınıf adı aynı olmak zorundadır. Bu isimlendirme kuralı birçok derleyici tarafından uygulanmaktadır. Örneğin, kurallara uygun olmayan bir isimlendirme şekli aşağıda gösterilmiştir. Kaynak kod dosyası "myTest.java“ olarak kaydedilmiş olsun, Sınıf tanımı da aşağıdaki gibi olsun: class test { ... } YANLIŞ

20 Java Dosya İsimleri Derlenmiş byte kodlarının tutulduğu dosya “.class” uzantısına sahiptir. Kurallara uygun bir isimlendirme şekli ise aşağıda gösterilmiştir. Kaynak kod dosyası “Test.java” şeklinde kaydedilmiş olsun, Sınıf isimlendirmesi de aşağıdaki gibi olursa kurallara uygun bir isimlendirme yapılmış olur. class Test { ... }

21 Büyük Resim Zamanı MerhabaDunya.class MerhabaDunya.java javac
0xCAFEBABE ... javac public class MerhabaDunya { public static void main(String argv[]){ System.out.println (“Merhaba Dünya!”); } javac MerhabaDunya.java java MerhabaDunya

22 Java Dosya Yapısı Java Dosyaları:
1. Opsiyonel olarak package ifadesi (dosyanın hangi paketin altına eklenmesi istendiğini belirten ifade), 2. Gerekli sınıfların eklenmesi için kullanılan import satırları, 3. Daha sonra sınıf ismi gelir, 4. Sınıf ismini takiben kalıtım (inheritance ) ve arayüz (interface) ifadeleri gelir, 5. NOT: Eğer kaynak kod içerisinde birden fazla sınıf (class) veya arayüz (interface) tanımlanmışsa sadece bir tanesi public olarak tanımlanabilir. Buna ek olarak, kaynak kod dosyasının ismi public olarak tanımlanan sınıf ismi ile aynı olmak zorundadır.

23 Ortalama bir Java Dosyası
Örnek: package fatih.edu.ceng217; import java.util.*; import fatih.edu.ceng217.lecturenotes.*; import netscape.javascript.JSObject; import netscape.javascript.JSException; public class SplayTree implements TreeType, TreeConstants { ... }// SplayTree Paket ismi global olarak tek olmak zorundadır. Yani, aynı isimde başka bir paket olamaz. Eğer herhangi bir paket ismi belirtilmezse, kaynak dosyamız içinde bulunulan dizin içerisinde isimsiz ve yazılım geliştirme ortamı tarafından varsayılan olarak belirlenmiş bir paketin altına kaydedilir.

24 Terimler Modüler (Yapısal) Programlama (Structured Programming):
Programı düz bir akış halinde oluşturmak yerine işlevsel parçalara bölüp bu parçaları bir araya getirmeyi öngörür.. Nesneye Yönelik Programlama (Object Oriented Programming): Nesneler ile bunların birbiriyle ilişkilerinin vurgulandığı ve ön plana çıktığı programlama modeli.. Bayt Derleyicisi (Byte Compiler): Yazılan kaynak kodun herhangi bir makine ve sisteme taşınıp çalıştırılabilen bayt kodlara (byte code) dönüştüren derleyici..

25 Terimler (devam) Bayt Yorumlayıcısı (Byte Interpreter):
Platform bağımsız olan bayt kodları (byte code) spesifik bir makine veya sistem üzerinde çalışan amaç kodlara (object code) çeviren ve çalıştıran yorumlayıcı.. Bayt Kodu (Byte Code): Kaynak kodun Sanal Makine (Virtual Machine) tarafından anlaşılabilecek dile çevrildiğinde oluşan kod parçacıkları. Java Virtual Machine (JVM): Programların birçok platform 'da değişiklik yapılmadan çalıştırılabilmesi için hazırlanan sanal ortam. Sadece bu sanal ortam kodunun diger platform 'lara taşınması ile kaynak kodun birçok değişik platformda çalıştırılabilmesi sağlanır.

26 Java ‘nın Taşınabilirlik Özelliği
Java Harici Geleneksel Yöntem: “Kaynak Kod” İşletim Sistemine özel derleyici ya da yorumlayıcı İşletim Sistemine özel amaç kod Programı çalıştır Java ‘nın yöntemi: “Kaynak kod” Java derleyicisi “Bayt Kod (Byte Code)” İşletim Sistemine özel JVM yorumlayıcısı İşletim Sistemine özel amaç kod Programı çalıştır Demo.java javac Demo.java Demo.class java Demo

27 Varolan Veri Türleri 4 “atomik veri türü” + String
Num (sayı) Char (karakter) Boolean Ptr (işaretçi) String Java: (6 önemli temel (primitive) tür + String) int (tamsayı) long (uzun tamsayı, 2x bit) float (gerçek sayı) double (uzun gerçek sayı, 2x bit) char karakter; tek tırnak içinde ifade edilir: ‘b’) boolean String (Java küçük büyük harf duyarlıdır, bu yüzden başlangıç harfine(S) dikkat edin) ; çift tırnak içinde ifade edilir: “deneme”) Not: String temel (primitive) bir tür değildir.

28 Veri Türlerinin Listesi
Temel (Primitive) Türler Varsayılan Değeri boolean false char '\u0000' (null) byte (byte) 0 short (short) 0 int long L float f double d void N/A

29 Değişken Tanımlamaları
Java: <Veri türü> <değişken adı>; Ya da (değişken bildirimi yapılırken ilk değer ataması yapılabilir) <Veri türü> <değişken adı> = <ilk değer>;

30 Örnekler int counter; int numStudents = 583; float gpa;
double batAvg = .406; char gender; char gender = ‘f’; boolean isSafe; boolean isEmpty = true; String personName; String streetName = “North Avenue”; Bu konuda daha fazla örnekler...

31 Sorular?

32 Değer Atama Java birden fazla bildirimi ve değer atamayı aynı komut satırında yapmaya izin verir . int theStart, theEnd; int width = 100, height = 45, length = 12; Ancak bu javadoc açıklamalarını karmaşıklaştırabilir: /** * Silindirin çapı ve yüksekliğinin bildirimi ve ilk değer atamasının yapılması */ int diameter = 50, height = 34; Javadoc açıklamaları her bir değişken için tekrarlanır!

33 Örnekler Tam sayı sabitleri int kabul edildiği için başka tip değişkenlere atama yaparken çevirim gerekebilir: float maxGrade = 100f; // tutulan değer ‘100.0’ double temp = 583d; // tutulan değer çift duyarlılığa sahip 583. float anotherTemp = 5.5; // hata! ‘float’ için (F ya da f), ‘double’ için (D ya da d), ve ‘long’ için (l ya da L, fakat genelde L tercih edilir) kullanılır: float maxGrade = 100F; // tutulan değer ‘100.0’ long x = 583l; // tutulan değer 583, long y = 583L; // Bu şekliyle daha iyi !

34 Tür Dönüşümleri (Primitive Casting)
Tür dönüşümleri (1) dolaylı dönüşüm ve (2) açık dönüşüm olmak üzere iki şekilde yapılır: int total = 100; float temp = total; // temp değeri oldu Tür dönüşümleri yapılırken duyarlılık kaybı yaşanıyorsa açık veri dönüşümü yapılması gerekir. Açık dönüşüm, yeni tür isminin parantez içerisinde ifade edilmesiyle yapılır. float total = 100f; int temp = total; // ERROR! int theStart = (int) total; Tür Dönüşümünün nesnelerde yapılışı ile ilgili daha fazlasını ileride göreceğiz…

35 Dönüşüm: Bilginizi sınayın
Verilenler: int theStart = 10; float temp = 5.5f; temp = temp + (float)theStart; Şimdi temp değişkeninin içinde tutulan değer nedir? Hileli soru 15.5 Verilenler: char c = ‘A’; int x; x = c; Legal mi? Unutmayın ki sonuçta herşeyin sayısal bir ifadesi vardır. 65

36 Operatörler Atama işlemi: =
Aritmetik: +, -, *, /, % (mod), ve diğerleri int numLect = 2; int numStudents = 583; int studentsPerLect; studentsPerLect = numStudents / numLect; // tamsayı bölmesi yapıldığından sonuç 291 ‘dir. int numQualPoints = 30; int numCreditHours = 8; float GPA; GPA = numQualPoints / numCreditHours; // tamsayı bölmesi yapıldığından ve sonuç float türünden bir değişkende tutulduğundan sonuç 3.0 ‘dır. someIntVar = someIntVar * someFloatVar // derleme zamanı hatası verir

37 Bilginizi sınayın 3 4 1 2 Çeşitli Çözümler Paketi Problem:
int iVar = 10; float fVar = 23.26f; // derleme zamanı hatası verir iVar = iVar * fVar; Hangi çözüm daha iyi çalışır? 3 iVar = iVar * (int) fVar 230 4 iVar = (int) ((float) iVar * fVar) 1 iVar = (int) (iVar * fVar) 232 232 2 Ders: kolay anlaşılan kodu yazın iVar = (int) iVar * fVar Derleme hatası

38 Kısayol Operatörleri counter = counter + 1; //veya: counter++;
counter = counter * 5; //veya: counter*=5; Son iki örneğe dikkat ederseniz: counter+=2 ifadesi ile counter=+2 ifadesi aynı şey değildir. Kısayol operatörlerini kullanırken oluşan hatalara dair örnekleri ileride göreceğiz

39 Dokümantasyon & Açıklamalar
Üç türlü yöntem vardır: // Bu işaret satır sonuna kadar olan tüm ifadeyi açıklama olarak belirler. /* ve */ işaretleri arasında kalan tüm ifadeler satır sonu gözetmeksizin açıklama olrak kabul edilir. /** * Bu sentaks biçimi Javadoc açıklamaları için kullanılır, * HTML biçimlendirme özelliklerini sunar. */ BİLM217 için, Javadoc açıklamaları kullanın

40 Açıklamalar hakkında açıklamalar
1. C dilindeki gibi açıklamalar /* */; 2. C++ dilindeki gibi // ile başlayan açıklamalar 3. /** ...*/ ifadeleri arasında yazılan açıklamalar : /*/ /* // */ /////////////////// /* ========= */ kapanmaz anlamsız Bloklar için iyi Ders: Açıklamalar yardımcı nitelikte olmalıdır.

41 Yazım hatalarını uyaran bir editör kullanmak sizin için faydalı olur!
Açıklamalar Açılan ama kapanmayan açıklamalara dikkat edin: int x, y; /* * noktanın koordinatları * belirtilmektedir. // int z; */ Ders: Java, kullanılan operatör türünden, açıklamalara kadar, yazılan kodda açıklık ve anlaşılırlık ilkesini benimser. Yazım hatalarını uyaran bir editör kullanmak sizin için faydalı olur!

42 Javadoc /** * <PRE> * İsimi al. * Dizinin belirtilen
* pozisyondaki ismi geri döndürür. * </PRE> i geri döndürülmesi istenen ismin dizideki yeri (indeks) strName isim Employees#isEmployed() elemanın çalışıp çalışmadığını * doğrulamak için çağrılır */ public String getName (int i) { if (myEmpl.isEmployed()) return myArray[i]; else return "Nada"; } // getName(int)

43 Javadoc (devam) HTML etiketleri ekleyebilirsiniz fakat <H1> gibi yapısal etiketler kullanmaktan kaçının. Javadoc açıklamaları sınıf, alan veya metot bildiriminin hemen öncesinde yapılır. İlk cümle özet olmalıdır. Javadoc ‘a özel etiketler kullanın, örneğin . etiketi kullanılırsa diğer etiketine kadar çözümleme(parse) işlemi devam eder. @see <sınıf adı> @see <tam sınıf adı> @see <tam sınıf adı#metod adı> @version @author @param @return @exception @deprecated // jdk @since // jdk 1.1 @serial // jdk 1.2

44 Sabitler Java: public final static <tür> <değişken adı> = <değer>; public final static int MIN_PASSING = 60; public final static float PI = (float) ; Yazım şeklinin neden böyle olduğu konusunda açıklamalar birazdan...

45 Ekrana yazma Java: System.out.println(<argüman>);
System.out.println( ); // boş satır ekler System.out.println(5); // ekrana 5 yazar System.out.println(“Merhaba Dünya”); // ekrana Merhaba Dünya yazar “println” ve. “print” : println komutu ekrana mesajı bastıktan sonra imlecin bir alt satırın başına geçmesini sağlar print komutu ise ekrana mesajı bastıktan sonra imlecin kaldığı yerden devam etmesini sağlar

46 Yazma (devam) Java ‘da başlangıç olarak sizin için oluşturulmuş en az 3 adet stream türü vardır: System.in // giriş almak için System.out // çıktı almak için System.err // hataları belirtmek için Bunlar InputStream ve PrintStream objeleridir. Not: Win95/NT için System.out ile System.err hemen hemen aynı sonucu verir. Her ikisi de ekrana mesaj basar.

47 Yazma (devam) System.out.println(“Tırnak içerisindeki bu ifade ekrana basıldı"); System.err.println(“Bu ifade ise error streamine ait bir ekran çıktısıdır"); Bunların her ikisi de PrintStream sınıfının bir üyesidir. Bu sınıfa ait sizin için faydalı olabilecek başka metodlar da mevcuttur: System.out.flush(); System.out.write(int); System.out.write(byte[] buf, int offset, int length); // !!!

48 Özet Yeni arkadaşınız: System.out.println( ) Java ‘nın Temelleri: Özet
Java Uygulamaları JVM (Java Sanal Makinesi), uygulamalar & applet ‘ler Giriş noktası main() veya init() Java Temel Türleri ve Operatörleri Temel veri türleri Operatörler: = ve == dışındakiler bilinen işlevlere sahiptir. Yeni arkadaşınız: System.out.println( )

49 Sorular


"1. ipucu Yardım çağırmak için son dakikayı beklemeyin." indir ppt

Benzer bir sunumlar


Google Reklamları