Bu makalede, Java dilinde öğrenmek isteyenler için farklı programlama kavramlarına ışık tutacak 10 kod örneği yer almaktadır. Java dilinde yapılabilecek pek çok işlevin örnek kodları, açıklamaları ve detayları işlenecektir. Bu örnekler, temel veri türleri ve döngülerden nesne yönelimli programlama, hata yönetimi ve dosya işlemleri gibi daha gelişmiş konulara kadar birçok konuyu kapsamaktadır.
Java kod örnekleri, bu dilde açıklanabilecek birçok konuyu öğrenmek isteyenler için oldukça faydalıdır. Bu örnekler, programlama dilinin mantığını anlamada yardımcı olacaktır. Ayrıca, Java’ya hakim olduğunuzda, çeşitli özelleştirilmiş uygulamalar oluşturabilir ve kodlarınızı hata ayıklama tekniklerini kullanarak daha verimli hale getirebilirsiniz.
- Örnek Kod 1: Merhaba Dünya Programı
- Örnek Kod 2: Veri Türleri
- Karakter Veri Türü
- Unicode Karakter Kodlaması
- Karakter Dizileri
- String Veri Türü
- Karakter Dizilerini Birleştirme
- String Sınıfı Metodları
- Örnek Kod 3: Koşullu İfadeler
- Örnek Kod 4: Döngüler
- For Döngüsü
- While Döngüsü
- Do-While Döngüsü
- Örnek Kod 5: Fonksiyonlar
- Parametreli Fonksiyonlar
- Dönüş Değeri Olan Fonksiyonlar
- Örnek Kod 6: Diziler
- Çok Boyutlu Diziler
- Örnek Kod 7: Nesne Yönelimli Programlama
- Sınıf ve Nesne Oluşturma
- Miras Alma
- Örnek Kod 8: Dosya İşlemleri
- Örnek Kod 9: Hata Yönetimi
- Örnek Kod 10: Veritabanı Bağlantısı
Java kod örnekleri, yazılım geliştirme dünyasında bir standart haline gelmiştir. Bu örnekler, kodlama becerilerinizi geliştirirken aynı zamanda Java dilinin inceliklerini öğrenmenize ve kodlama anlayışınızı derinleştirmenize yardımcı olacaktır. Her bir örnekte verilen açıklamalar ve detaylar sayesinde programlama mantığını daha rahat bir şekilde anlayacaksınız. Yeni bir programlama diline adım atmak isteyenlerin önce bu örnek kodları incelerken, Java’yı daha kolay bir şekilde öğreneceğini garanti edebiliriz.
Kod Örneği 1: Merhaba Dünya Programı
Merhaba Dünya programı, Java dilinin en popüler örneklerinden biridir. Program, ekrana basit bir mesaj yazdıran bir Java kodudur. Bu kod, Java dilindeki basit yazım kurallarını anlamak için harika bir başlangıçtır.
Aşağıdaki örnek kodda, System.out.println();
kullanılarak “Merhaba Dünya” ifadesi ekrana yazdırılır:
JAVA KODU | AÇIKLAMA |
---|---|
|
Bir sınıf oluşturulur ve main() metodu oluşturulur. Ekrana “Merhaba Dünya” yazdırmak için System.out.println(); kullanılır. |
Kodunuzun çıktısı aşağıdaki gibi olacaktır:
Merhaba Dünya
Merhaba Dünya programı, Java dilinde yeni başlayanlar ve programlama öğrenmeye çalışanlar için harika bir ilk adımdır. Bu program, Java’daki yazım kurallarını anlama konusunda iyi bir temel sağlar ve daha iyi, daha karmaşık programlar yazmak için gerekli olan temel becerileri ve yöntemleri öğretir.
Kod Örneği 2: Veri Türleri
Bu kod örneği, Java’da kullanılan temel veri türleri hakkında bilgi vermektedir. Java’da kullanılan temel veri türleri şunlardır:
- byte: 8 bitlik işaretli bir tam sayıdır. Değer aralığı -128 ile 127 arasındadır.
- short: 16 bitlik işaretli bir tam sayıdır. Değer aralığı -32,768 ile 32,767 arasındadır.
- int: 32 bitlik işaretli bir tam sayıdır. Değer aralığı -2,147,483,648 ile 2,147,483,647 arasındadır.
- long: 64 bitlik işaretli bir tam sayıdır. Değer aralığı -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındadır.
- float: 32 bitlik bir ondalık noktalı sayıdır. Değer aralığı ±3.40282347E+38F’dir.
- double: 64 bitlik bir ondalık noktalı sayıdır. Değer aralığı ±1.79769313486231570E+308’dir.
- boolean: sadece true veya false olabilen değişken tipidir.
Kod örneği, bu temel veri türlerinden birkaçını kullanarak örnek veri yazdıran bir kod içermektedir. Bu örnekte, char ve String veri türleri de kullanılmaktadır.
Örneğin:
public class VeriTuruOrnegi{ public static void main(String[] args) { byte b = 10; short s = 20000; int i = 3000000; long l = 123456789123456789L; float f = 1.23456789F; double d = 1.234567890123456789; boolean bool = true; char c = 'A'; String str = "Merhaba Dünya"; System.out.println("byte değeri: " + b); System.out.println("short değeri: " + s); System.out.println("int değeri: " + i); System.out.println("long değeri: " + l); System.out.println("float değeri: " + f); System.out.println("double değeri: " + d); System.out.println("boolean değeri: " + bool); System.out.println("char değeri: " + c); System.out.println("String değeri: " + str); }}
Bu örnekte, her değişken tipinin bir örneği oluşturulup değeri yazdırılmaktadır. Bu şekilde, Java’da kullanılan temel veri türleri hakkında daha iyi bir fikir edinilebilir.
Karakter Veri Türü
Char, Java’da kullanılan temel veri türlerinden biridir ve karakterleri temsil eder. Char veri türü, tek tırnak içinde yazılan tek bir karakteri ifade eder. Bu karakterin Unicode kodlamasını kullanarak karakterlerin okunmasına olanak sağlar. Char veri türünün örnek kodu aşağıdaki gibidir:
|
Bu örnekte, ‘A’ karakteri char veri türünde saklanır. |
Ayrıca, char veri türü, bir metin veya kelime yerine yalnızca tek bir karakteri temsil eden durumlarda kullanılabilir. Örneğin, bir kullanıcının bir seçim yapması gerektiğinde, char veri türü kullanılabilir:
-
char secim = 'E';
Bu örnekte, kullanıcı ‘E’ seçeneğini belirtmek için char veri türünü kullanır.
Char veri türü, Unicode kodlama sistemini kullanır, bu nedenle Unicode kod değerleri kullanılarak karakterler oluşturulabilir. Örneğin:
|
Bu örnekte, Unicode kodlamasını kullanarak ‘0’ karakteri oluşturulur. |
Char veri türü, diğer veri türleriyle birlikte kullanılabilir. Örneğin:
|
Bu örnekte, bir char (karakter) veri türü ve bir int (tamsayı) veri türü kullanıldı. |
Char veri türü, birçok programlama dili tarafından kullanılır ve Java’da da oldukça sık kullanılır. Char veri türü, yalnızca tek bir karakteri temsil etmek için kullanılabilir ve Unicode kodlaması sayesinde farklı karakterler oluşturabilir.
Unicode Karakter Kodlaması
Unicode, karakter kodlaması için uluslararası bir standarttır. Java, Unicode karakter kodlamasını destekleyen bir programlama dili olduğundan, farklı dillerdeki karakterleri kolayca yazdırabilirsiniz. Aşağıdaki örnek kod, Unicode karakter kodlamasını kullanarak Türkçe harfleri yazdırmak için kullanılabilir:
Karakter | Unicode Değeri |
---|---|
Ç | \u00C7 |
Ğ | \u011E |
İ | \u0130 |
Ö | \u00D6 |
Ş | \u015E |
Ü | \u00DC |
Yukarıdaki örnek kod, Türkçe harflerin Unicode kod değerlerini kullanarak ekrana yazdırır. Bu örneği kullanarak, farklı dillerdeki harfleri de aynı şekilde yazdırabilirsiniz.
Karakter Dizileri
Java programlama dilinde karakter dizileri, bir ya da daha fazla karakterin bir araya gelmesiyle oluşan veri tipleridir. Karakter dizileri, String veri tipine benzer şekilde kullanılır ve özellikle metin tabanlı işlemlerde oldukça önemlidir. Bir Java programında karakter dizisi yazdırmak için System.out.println() metodu kullanılır.
Aşağıda, Java’da karakter dizileri kullanarak veri yazdıran örnek kod verilmiştir:“`public class Main { public static void main(String[] args) { char[] karakterler= {‘M’, ‘e’, ‘r’, ‘h’, ‘a’, ‘b’, ‘a’, ‘ ‘, ‘D’, ‘ü’, ‘n’, ‘y’, ‘a’}; String mesaj = new String(karakterler); System.out.println(mesaj); }}“`
Bu örnek kodda bir karakter dizisi (‘Merhaba Dünya’) oluşturulurken, sonrasında bu karakter dizisi String veri tipine dönüştürülerek System.out.println() metodu ile ekrana yazdırılır. Karakter dizisi oluşturmak için char[] veri tipi kullanılır ve karakterler köşeli parantez içinde tanımlanır. Daha sonra, new String() metodu kullanarak karakter dizisi String veri tipine dönüştürülür ve mesaj adlı String değişkenine atanır. Son olarak, System.out.println() metodu ile mesaj değişkeni ekrana yazdırılır.
Bu örnek kodda, karakter dizilerinin nasıl kullanıldığı ve String veri tipine nasıl dönüştürüldüğü anlatılmaktadır. Karakter dizileri, metin tabanlı işlemlerde oldukça sık kullanılır ve bu örnek kodda da karakter dizilerinin nasıl kullanıldığına dair bilgi verilmiştir.
String Veri Türü
Java’da kullanılan en yaygın veri türlerinden biri string veri türüdür. String veri türü, karakter dizilerinin işlenmesi ve depolanması için kullanılır. String verileri çift tırnak içinde tanımlanır. String veri türü hakkında daha fazla bilgi için aşağıdaki örnek koda bakabilirsiniz:
public class StringExample { public static void main(String[] args) { String message = "Merhaba Dünya!"; System.out.println(message); int length = message.length(); System.out.println("String uzunluğu: " + length); String upperCase = message.toUpperCase(); System.out.println("Büyük harfli: " + upperCase); String replaced = message.replace("Merhaba", "Hello"); System.out.println("Değiştirilmiş: " + replaced); }}
Bu kod, ekrana “Merhaba Dünya!” yazdırır ve string verilerin nasıl işlenebileceğini gösterir. İlk olarak, string verisi tanımlanır ve “message” değişkenine atanır. Sonra, string verisinin uzunluğunu ve büyük harflerini hesaplamak için farklı metodlar kullanılır. Son olarak, “replace” metodu kullanılarak “Merhaba” kelimesi “Hello” ile değiştirilir ve sonuç ekrana yazdırılır.
Bunun yanı sıra, string verilerini birleştirmek için de “+” operatörü kullanılabilir. Örneğin:
String firstName = "Ali";String lastName = "Yılmaz";String fullName = firstName + " " + lastName;System.out.println("Tam ad: " + fullName);
Bu kod, “firstName” ve “lastName” değişkenlerini kullanarak bir tam ad oluşturur ve sonucu ekrana yazdırır.
Karakter Dizilerini Birleştirme
Karakter dizileri, Java programlama dilinde önemli bir veri tipidir. Karakter dizileri, tek veya birden fazla karakter içeren bir dizi veri tipidir. Genellikle metinlerin işlenmesinde kullanılırlar. Ancak, tek tek karakter dizileri kullanmak yerine bazen farklı karakter dizilerini birleştirmek daha kullanışlı olabilir. Bu işlemi yapmanın birkaç yolu vardır ve bu yazıda Java’da karakter dizilerini birleştirme yolları hakkında bilgi veren örnek kodu inceleyeceğiz.
Karakter dizilerini birleştirmek için “+” operatörü kullanılabilir. İki veya daha fazla karakter dizisini birleştirmek için “+” operatörü kullanılır. Örneğin, “Hello” ve “World” karakter dizilerini “+” operatörü ile birleştirmek için aşağıdaki kodu kullanabiliriz:
“`String str1 = “Hello”;String str2 = “World”;String result = str1 + str2;System.out.println(result);“`
Yukarıdaki kodu çalıştırdığımızda, “HelloWorld” çıktısı alırız. “+” operatörü, karakter dizileri birleştirirken kullanışlıdır, ancak performans sorunlarına neden olabilir. Bu nedenle, daha büyük dizi nesnelerinin birleştirilmesi önerilmez.
Diğer bir yöntem, `concat()` yöntemidir. Bu yöntem, iki karakter dizisini birleştirir. Aşağıdaki örnekte, önce “Hello” karakter dizisi oluşturulur ve ardından “World” karakter dizisi ile birleştirilir:
“`String str1 = “Hello”;String str2 = “World”;String result = str1.concat(str2);System.out.println(result);“`
Bu kodu çalıştırdığımızda, yine “HelloWorld” çıktısı alırız. `concat()` yöntemi, “+” işleme göre daha az performans sorunu yaratır.
Sonuç olarak, karakter dizilerini birleştirmek için “+” işlemi ve `concat()` yöntemi kullanılabilir. Ancak, “+” işlemi daha kullanışlıdır, ancak performansa etki edebilir. Öte yandan, `concat()` yöntemi daha az performans sorunu yaratsa da, daha düşük kullanılabilirliğe sahiptir. Programlamacıların bu işlemi seçerken bu nüansları ele almaları önemlidir.
String Sınıfı Metodları
Java programlama dili, String sınıfı metodları sayesinde, yazdığımız kodların işlevselliğini artırmakta ve programlara farklı özellikler eklemekte kullanılan birçok yönteme sahiptir. String sınıfı metodlarından bazıları şunlardır:
Metot İsmi | Açıklama |
---|---|
length() | String nesnesinin uzunluğunu döndürür. |
charAt(int index) | String nesnesindeki verilen indeksteki karakteri döndürür. |
concat(String str) | Belirtilen stringi orijinal String nesnesine ekler. |
indexOf(String str) | Belirtilen stringin nesnede geçtiği ilk konumun indeksini döndürür. |
replace(char oldChar, char newChar) | Belirtilen karakterleri değiştirir. |
trim() | String nesnesinin başındaki ve sonundaki boşlukları kaldırır. |
substring(int beginIndex, int endIndex) | Belirtilen indeks aralığında yeni bir String nesnesi oluşturur. |
toLowerCase() | String nesnesindeki tüm karakterleri küçük harfe çevirir. |
toUpperCase() | String nesnesindeki tüm karakterleri büyük harfe çevirir. |
Yukarıda belirtilen String metodları, yazdığımız Java kodlarında sık sık kullanılan metotların başında gelmektedir. Bu örnek kodlar sayesinde öğrendiğimiz bu metodların uygulamalarını farklı örneklerle deneyimleyebilir ve daha iyi anlayabiliriz.
Kod Örneği 3: Koşullu İfadeler
Java’da koşullar, programınızın belirli bir durumda belirli bir eylem yapmasını sağlar. Bu makalede, Java’da if, else if ve else kullanarak koşullu ifadelerin nasıl kontrol edileceğini inceleyeceğiz.
İlk örnek kodumuzda, eğer verilen sayı 0’dan büyükse “Pozitif sayı” yazdıracağız. Eğer sayı 0’dan küçükse “Negatif Sayı” ve eğer sayı 0 ise “Sıfır” yazdıracağız:
Kod | Açıklama |
---|---|
if (sayi > 0) { System.out.println("Pozitif sayı");} else if (sayi < 0) { System.out.println("Negatif sayı");} else { System.out.println("Sıfır");} |
Bir sayının pozitif mi yoksa negatif mi olduğunu kontrol eden örnek kod bloğu. |
İkinci örnek kodumuzda, kullanıcının yaşına göre belirli bir mesaj yazdıracağız. Eğer kullanıcının yaşı 18'den büyükse "Ehliyet alabilirsiniz", eğer 16'dan büyükse "Motosiklet ehliyeti alabilirsiniz", aksi takdirde ise "Henüz ehliyet alamazsınız" mesajını yazdıracağız:
Kod | Açıklama |
---|---|
int yas = 20;if (yas >= 18) { System.out.println("Ehliyet alabilirsiniz");} else if (yas >= 16) { System.out.println("Motosiklet ehliyeti alabilirsiniz");} else { System.out.println("Henüz ehliyet alamazsınız");} |
Kullanıcının yaşına göre belirli bir mesaj yazdıran örnek kod bloğu. |
Koşullu ifadeler, programlama dillerinde çok önemlidir ve Java'da da temel yapı taşları arasındadır. Bu örnek kodlar sayesinde Java'da if, else if ve else kullanarak koşulları nasıl kontrol edeceğinizi öğrenebilirsiniz.
Kod Örneği 4: Döngüler
Kod Örneği 4: Döngüler
Java programlama dili, döngülerle birlikte tekrarlayan işlemler için çeşitli seçenekler sunar. Bu örnekte for, while ve do-while döngülerini kullanarak tekrarlanan işlemleri kontrol etmek için örnek kodlar sunulmuştur.
For Döngüsü: For döngüsü, belirli bir koşul doğru olduğu sürece işlemleri tekrarlamak için kullanılır. Örneğin, 1'den 10'a kadar sayıları yazdırmak için for döngüsü kullanabiliriz.
Kod | Açıklama |
---|---|
|
1'den 10'a kadar sayıları yazdırır. |
While Döngüsü: While döngüsü, belirli bir koşul doğru olduğu sürece işlemleri tekrarlamak için kullanılır. Örneğin, verilen bir sayının faktöriyelini hesaplamak için while döngüsü kullanabiliriz.
Kod | Açıklama |
---|---|
|
5'in faktöriyelini hesaplar. |
Do-While Döngüsü: Do-while döngüsü, işlemleri en az bir kez tekrarlamak için kullanılır. Ardından, belirli bir koşul doğru olduğu sürece işlemleri tekrarlar. Örneğin, verilen bir sayının rakamlarını toplayan do-while döngüsü kullanabiliriz.
Kod | Açıklama |
---|---|
|
123 sayısının rakamlarının toplamını hesaplar. |
Bu örnekte, for, while ve do-while döngülerini kullanarak tekrarlanan işlemleri kontrol etmek için örnek kodlar sunuldu. İhtiyacınıza göre bu kodları değiştirebilir veya farklı senaryolar üzerinde uygulayarak daha fazla örnekler oluşturabilirsiniz.
For Döngüsü
For döngüsü, Java programlama dilinde sıklıkla kullanılan bir döngüdür. Bu döngü, belirli bir sayıda tekrarlamak için kullanılır ve genellikle bir koşula bağlı olarak çalışır.
Bir örnek olarak, for döngüsü kullanarak 1'den 10'a kadar olan sayıları yazdıralım. Bu kodu yazmak için öncelikle döngü değişkenini (i) tanımlamalıyız. Daha sonra, döngünün koşulu (i<11) ve artım miktarı (i++) belirtilmelidir. Son olarak, döngü bloğu içinde her bir sayı yazdırılmalıdır.
for (int i = 1; i < 11; i++) { System.out.println(i);}
Bu kodu çalıştırdığımızda, konsolda 1'den 10'a kadar olan sayılar sırasıyla yazdırılacaktır.
Bu örneğin üzerinden gidelim: for döngüsünün ilk kısmında (int i = 1) döngü değişkeni tanımlanır ve başlangıç değeri 1 olarak belirlenir. Koşul kısmında ise (i<11) döngünün kaç kez tekrarlanacağı belirtilir. Burada i'nin 11'den küçük olduğu sürece döngü tekrarlanacaktır. Son olarak, artım kısmında (i++) döngü değişkeninin her tekrarda bir arttırılması sağlanır. Bu nedenle döngü 1'den başlayarak 10'a kadar toplam 10 kez tekrarlanacaktır.
For döngüsü, programlama dünyasında oldukça popüler olmakla birlikte, koşula bağlı kalması programın verimliliğini de arttırır.
While Döngüsü
While döngüsü, bir koşul doğru olduğu sürece tekrarlanacak kod bloklarını belirlemek için kullanılır. Bu örnekte, Java'da while döngüsünü kullanarak faktöriyel hesaplamayı öğreneceğiz.
Faktöriyel, bir sayının tüm pozitif tam sayılardaki çarpımına eşittir. Örneğin, 5 faktöriyeli 5x4x3x2x1 = 120'dir.
Aşağıdaki örnek kodda, kullanıcı tarafından girilen bir sayının faktöriyelini hesaplamak için while döngüsü kullanılmıştır:
import java.util.Scanner;public class FactorialExample { public static void main(String[] args) { int number, i = 1, factorial = 1; Scanner scanner = new Scanner(System.in); System.out.print("Enter a number:"); number = scanner.nextInt(); while (i <= number) { factorial *= i; i++; } System.out.println("Factorial of " + number + " is: " + factorial); }}
Bu örnek kodda, kullanıcıdan bir sayı almak için Scanner sınıfı kullanılmıştır. Daha sonra while döngüsü, faktöriyel hesaplamak için birkaç değişken kullanır; i, sayının kontrol edildiği sayacıdır ve factorial, faktöriyelin hesaplandığı değişkendir. Döngü, i sayacı istenilen sayıya ulaşana kadar çalışır ve her döngüde factorial değişkeni i ile çarpılır.
Örneğin, kullanıcının 5'i girdiğini varsayarsak, döngü 5 döngü eder. Her döngüde, factorial değişkeni i ile çarpılır ve i de 1 artırılır. Sonuç olarak, faktöriyel değişkeni 5x4x3x2x1 = 120'e eşit olacaktır.
İşte böylece, while döngüsü kullanarak faktöriyel hesaplamanın örneği! Bu örnek, temel programlama kavramlarını daha iyi anlamak için harika bir yol olabilir.
Do-While Döngüsü
Do-while döngüsü bir kez döndürülmesini sağlar ve daha sonra koşul kontrol edilir. Bu, koşulun doğru olup olmadığının önemli olmadığı durumlarda kullanışlıdır. Örneğin, kullanıcının girdiği sayının rakamlarını toplamak istediğimizi varsayalım.
Aşağıdaki örnekte, firstNumber değişkenine kullanıcının girdiği sayı atanır. Daha sonra, do-while döngüsü kullanarak, sayının rakamlarının birikimli toplamı olan sum değişkenine eklenmesi sağlanır. Bir sonraki adımda, bir sonraki rakamın hesaplanması için sayının 10'a bölümünden kalan alınır. Sum değişkenindeki toplama işlemi yapıldıktan sonra, sayı 10'a bölünür ve sonuç firstNumber'a atanır. Bunlar, döngünün başka bir turda çalışması için kullanılır.
Kod Örneği: |
---|
|
Bu örnekte, firstNumber değişkeninin değeri 1234'tür. İlk iterasyonda, sum değişkeni 4'e eşitlenir (1234%10=4), firstNumber değişkeni 123'e bölünerek değeri 123'e atanır. İkinci iterasyonda, sum değişkeni 7'ye eşitlenir (3+4), firstNumber değişkeni 12'ye bölünerek değeri 12'ye atanır. Bu işlem 0'a ulaşıncaya kadar devam eder. Sonuç olarak, "Sayının rakamları toplamı: 10" yazdırılır.
Do-while döngüsünün kullanımı, özellikle durumun herhangi bir koşulun doğru olup olmadığının önemli olmadığı durumlarda oldukça kullanışlıdır.
Kod Örneği 5: Fonksiyonlar
Java'da fonksiyonlar oluşturmak ve kullanmak oldukça kolaydır. Fonksiyonlar, belirli görevleri yerine getirmek için kullanılırlar ve kodunuzu daha modüler hale getirirler. Bir fonksiyon oluşturmak için öncelikle fonksiyonun dönüş değeri belirtilir. Dönüş değeri olmayan fonksiyonlar "void" anahtar kelimesiyle tanımlanırlar ve bir şey döndürmezler. Dönüş değeri olan fonksiyonlar ise dönüş değeri tipi ve fonksiyon adı ile tanımlanırlar.
Örnek olarak, aşağıdaki kod, "helloWorld" adında bir fonksiyon tanımlar. Bu fonksiyon, ekrana "Merhaba Dünya!" yazdırır.
public class HelloWorld { public static void helloWorld() { System.out.println("Merhaba Dünya!"); } public static void main(String[] args) { helloWorld(); }}
Bu kod, "Merhaba Dünya!" yazdıran bir fonksiyon oluşturur ve "helloWorld" adını verir. Fonksiyon, "void" anahtar kelimesiyle tanımlandığı için bir şey döndürmez. Fonksiyon çağrısı, "main" fonksiyonunda yapılır.
Java'da parametreli fonksiyonlar da oluşturulabilir. Bu fonksiyonlar, parametre olarak bir değer veya birçok değer alabilirler. Örneğin, aşağıdaki kod, "toplama" adında bir fonksiyon oluşturur ve iki parametre alır. Fonksiyon, bu parametreleri toplar ve sonucu döndürür.
public class Toplama { public static int toplama(int num1, int num2) { int sonuc = num1 + num2; return sonuc; } public static void main(String[] args) { int toplam = toplama(5, 7); System.out.println("Toplam: " + toplam); }}
Bu kodda, "toplama" adında bir fonksiyon oluşturulur ve "int" dönüş değeri ile tanımlanır. Fonksiyon, "num1" ve "num2" adlı iki parametre alır. Fonksiyon, parametreleri toplar ve dönüş değeri olarak toplamı döndürür. "Main" fonksiyonunda, "toplama" fonksiyonu çağrılır ve sonuç konsola yazdırılır.
Java'da fonksiyonlar, programlama dillerindeki diğer fonksiyonlara benzer şekilde çalışır. Fonksiyonlar, belirli görevleri yerine getiren bloklardır ve kodu daha modüler hale getirir. Fonksiyonlarınızı anlamanıza yardımcı olacak diğer örnekler için Java dokümantasyonuna ve çevrimiçi kaynaklara başvurabilirsiniz.
Parametreli Fonksiyonlar
Java'da fonksiyonlar, işlevleri yerine getirmek için kullanılır. Fonksiyonlar, belirli bir işlemi gerçekleştiren kod bloklarıdır ve parametreler ile işlevlerini yerine getirirler.
Parametre, fonksiyona aktarılan değerlerdir. Bu değerler, fonksiyon içinde kullanılarak işlemleri gerçekleştirmek için kullanılır.
Aşağıdaki örnek, parametre alan bir fonksiyon oluşturmayı göstermektedir:
```javapublic class FunctionsExample { static void multiply(int a, int b) { System.out.println(a * b); } public static void main(String[] args) { multiply(5, 3); }}```
Yukarıdaki örnek, `multiply` adında bir fonksiyon oluşturmaktadır. Bu fonksiyon, iki parametre alır ve bu parametrelerin çarpım sonucunu ekranda gösterir. `Main` metodunda, `multiply` fonksiyonu 5 ve 3 değerleri ile çağırılır ve sonuç olarak 15 döner.
Parametre alan fonksiyonlar, işlevlerini daha esnek hale getirirler. Bu sayede, aynı kod bloğu farklı değerler ile kullanılabilir. Örneğin, yukarıdaki örnek ile farklı iki sayıyı çarpmak istiyorsak, sadece fonksiyonu yeni değerler ile çağırmamız yeterlidir.
Bu örnekteki kod bloğunda, `int` veri tipinde `a` ve `b` adında iki adet parametre tanımlanmıştır. Fonksiyon, `void` veri tipine sahiptir, yani geriye herhangi bir değer döndürmez. Eğer fonksiyondan geriye bir değer döndürmek istiyorsak, fonksiyon başında geri döndürülecek veri tipi belirtilir. Örneğin, `int multiply(int a, int b)` şeklinde bir fonksiyon, iki sayının çarpımını döndürebilir.
Bu örnekteki `multiply` fonksiyonu, sadece iki adet parametre alırken, fonksiyonlar farklı veri tipleri veya farklı sayıda parametreler de alabilir. Parametreli fonksiyonlar, Java'da kod yazarken oldukça sık kullanılan bir araçtır.
Dönüş Değeri Olan Fonksiyonlar
Java'da fonksiyonlar, işlevsel bir kod yazmanın en önemli parçalarından biridir. Birçok durumda, bir fonksiyon yalnızca bir şey yapmakla kalmaz, aynı zamanda bir değer döndürür. Bu değer, genellikle daha sonra başka bir fonksiyon veya değişken tarafından kullanılır. "Dönüş değeri" olarak adlandırılan bu değer, Java'da fonksiyonlar için oldukça önemlidir.
Dönüş değeri olan fonksiyonlar, işlevlerini tamamlamalarının yanı sıra bir değer döndürürler. Bu değer, fonksiyon çağrısında değişkenlere atanabilir veya başka bir yerde kullanılabilir. Bir dönüş değeri olan fonksiyonun kodu, önceki örneklerde olduğu gibi benzerdir, ancak sonunda bir değer döndürür.
Örneğin, aşağıdaki kod, iki sayının toplamını hesaplar ve sonucu döndürür:
Kod | Açıklama |
---|---|
|
Bu fonksiyon, iki sayının toplamını hesaplar ve sonucu döndürür. |
Bu örnekte, topla adlı bir dönüş değeri olan fonksiyon oluşturduk. Bu fonksiyon, iki tam sayıyı parametre olarak alır, toplamlarını hesaplar ve sonucu bir tamsayı olarak döndürür. Bu değer, örneğin aşağıdaki gibi bir değişkene atanabilir:
Kod | Açıklama |
---|---|
|
Bu kod, önceki fonksiyonu çağırır ve sonucunu bir değişkene atar. |
Bu örnek, temel bir dönüş değeri olan fonksiyonu gösterir ve Java'da bir fonksiyonun nasıl döndürüleceğini gösterir. Kodlarınızda, dönüş değeri olan fonksiyonlar kullanarak çeşitli işlemler gerçekleştirip, sonucu kolayca kullanabilirsiniz.
Kod Örneği 6: Diziler
Java'da diziler, aynı veri türünden birden çok elemanın depolandığı yapılardır. Bu elemanlara, dizinin indis numarası kullanılarak erişilir. Örneğin, bir integer dizisinin ilk elemanına erişmek için dizinin adı yazılır ve indis numarası olan [0] eklenir.
Bir dizi oluşturmak için, veri türü belirtilir ve sonra köşeli parantez içinde boyutu belirtilir. Örneğin, 3 elemanlı bir string dizisi oluşturmak için şu kod yazılabilir:
|
Dizinin elemanlarına, indis numarası kullanılarak erişilir ve değer atanır. Örneğin, isimler dizisinin her bir elemanını ayrı ayrı atamak için şu kod yazılabilir:
|
Dizinin elemanlarına, for döngüsü kullanarak da erişilebilir ve işlemler yapılabilir. Örneğin, yukarıdaki isimler dizisinin elemanlarının hepsini ekrana yazdırmak için şu kod yazılabilir:
|
Bu örnek kodlar, Java'da dizilerin oluşturulması ve kullanımı hakkında fikir vermektedir. Diziler, programlama dillerinde sık kullanılan yapıların başında gelir ve Java'da da oldukça önemli bir yer tutar.
Çok Boyutlu Diziler
Java'da çok boyutlu diziler oluşturmak oldukça önemlidir. Çünkü bazen tek boyutlu bir dizi, programlama problemlerini çözmekte yeterli olmaz. Çok boyutlu diziler, birkaç boyutlu diziler olarak da bilinir ve satır ve sütunlar şeklindeki bir matris formunda saklanır. Bu dizi türü, yapay zeka ve bilgisayar grafikleri gibi çeşitli alanlarda kullanılır.
Java'da iki boyutlu bir dizi oluşturmak için, önce düzgün bir şekilde boyutlandırmanız gerekir. Ardından, içinde saklanacak veri türüne göre gibi çeşitli veri türleri kullanabilirsiniz. Örnek olarak int[][] diziAdi = new int[satirSayisi][sutunSayisi]; şeklinde bir dizi oluşturabilirsiniz.
Üç boyutlu bir dizi oluşturmak için ise aynı işlemi uygulamanız gerekir. Yalnızca diziyi tanımlarken üç boyutlu olarak boyutlandırmanız gerekiyor. Örnek olarak int[][][] diziAdi = new int[sayi1][sayi2][sayi3]; şeklinde bir dizi oluşturabilirsiniz.
Çok boyutlu dizileri kullanırken dikkat etmeniz gereken birkaç önemli faktör vardır. Birincisi, dizinin boyutunu doğru bir şekilde belirlemek önemlidir. Diziyi oluştururken taşma hatası almanızı önlemek için boyutları doğru bir şekilde belirlemeye özen göstermelisiniz. İkincisi, çok boyutlu dizilerin kullanımı, programlama becerilerinizi geliştirmenize yardımcı olabilir ve farklı programlama problemlerine karşı hazırlıklı olmanıza yardımcı olabilir.
Kod Örneği 7: Nesne Yönelimli Programlama
Java'da nesne yönelimli programlama (OOP), kodun işleyişini nesnelere ve sınıflara dayandıran bir programlama yaklaşımıdır. Nesne yönelimli programlama ile birlikte sınıflar ve nesneler oluşturulur. Sınıf, nesnelerin özelliklerini ve davranışlarını içeren bir kalıptır. Nesne ise bu kalıptan oluşturulan bir örnektir.
Aşağıdaki örnek kodlarda nesne yönelimli programlama kullanılmıştır:
Java'da sınıf oluşturmak için class anahtar kelimesi kullanılır. Bir sınıf içinde değişkenler ve fonksiyonlar tanımlanabilir. Aşağıdaki örnekte, Person adında bir sınıf oluşturulmuştur:
class Person { |
String name; |
int age; |
} |
Sınıf oluşturulduktan sonra, bu sınıftan bir nesne oluşturulabilir. Bir nesne oluşturmak için new anahtar kelimesi kullanılır. Aşağıdaki örnekte, Person sınıfından bir nesne (person1) oluşturulmuştur.
Person person1 = new Person(); |
Miras alma, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını devralmasıdır. Miras alınan sınıfa üst sınıf, miras alan sınıfa alt sınıf denir.
Aşağıdaki örnek kodda, Animal adında bir üst sınıf ve Cat adında bir alt sınıf oluşturulmuştur. Cat sınıfı, Animal sınıfından özelliklerini ve fonksiyonlarını miras almıştır:
class Animal { |
String name; |
int age; |
} |
class Cat extends Animal { |
String color; |
void meow() { |
System.out.println("Meow!"); |
} |
} |
Yukarıdaki örnekte, Cat sınıfı, Animal sınıfından miras aldığı özelliklerin yanı sıra kendine özgü bir color özelliği ve meow() fonksiyonu içermektedir.
Sınıf ve Nesne Oluşturma
Java'da nesne yönelimli programlama (OOP) kavramı oldukça önemlidir ve sınıflar, nesneler ve metodlar bu yaklaşımın temel yapı taşlarıdır. Bir sınıf, benzer özelliklere ve davranışlara sahip nesneleri temsil eder. Bir nesnenin özellikleri, sınıf tarafından sağlanan özelliklere sahip olacaktır.
Sınıf oluşturmak için "class" anahtar kelimesi kullanılır. Başka bir kelimenin kullanılmaması halinde sınıfın adı, oluşturulmuş dosya ile aynı olmalıdır. Örneğin, "Person" diye bir sınıfımız varsa, dosya adı "Person.java" olacaktır.
Şimdi bir örnek kod yazalım:
```javapublic class Person { String name; int age;
public void setName(String name) { this.name = name; }
public void setAge(int age) { this.age = age; }
public void displayInfo() { System.out.println("Name: " + name + "\nAge: " + age); }}```
Yukarıdaki kod, "Person" adında bir sınıf oluşturur. Bu sınıf, "name" ve "age" adında iki özellik içerir. "setName" ve "setAge" adında iki metod, "displayInfo" adında bir metod içerir. "setName" ve "setAge" metodları, "name" ve "age" özelliklerine değer atamak için kullanılırken, "displayInfo" metodu, bu özellikleri ekrana yazdırmak için kullanılır.
Sınıf oluşturma işleminden sonra, bir nesne oluşturmak için "new" anahtar kelimesi kullanılır. Örneğin, "Person" sınıfından bir nesne oluşturmak için şöyle bir kod yazabiliriz:
```javaPerson p1 = new Person();```
Bu kod, "Person" sınıfından bir "p1" nesnesi oluşturur. Bu nesneye, "setName" ve "setAge" metodu ile özellikler atayabiliriz. Son olarak, "displayInfo" metodu ile bu özellikleri ekrana yazdırabiliriz.
```javap1.setName("John");p1.setAge(30);p1.displayInfo();```
Bu kod, "p1" nesnesine "John" isimli bir kişi ve 30 yaşında olduğunu belirtir. Daha sonra, "displayInfo" metodu ile bu özellikleri ekrana yazdırır.
Sınıf ve nesne kavramları, Java programlama dilinde oldukça önemlidir. Bu örnekte verilen kodlar, sınıf ve nesne oluşturma hakkında temel bir anlayış sağlayacaktır. Bu konuda daha fazla bilgi edinmek isterseniz, Java OOP kavramlarına bir göz atabilir veya örnek kodlarla deney yapabilirsiniz.
Miras Alma
Java'da miras alma kavramı, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını miras alarak kullanmasıdır. Bu, kod tekrarını önleyerek, daha az kod yazarak ve daha iyi organize edilmiş kod tabanı yaratmaya yardımcı olur.
Bir sınıfın diğer bir sınıfı miras alabilmesi için, extends anahtar kelimesi kullanarak miras almayı istediği sınıfı belirtmesi gerekir. Aşağıda, miras alma kavramını örneklerle açıklayan bir Java kodu verilmiştir.
public class Kisi { |
---|
private String adi; |
private int yasi; |
public Kisi(String adi, int yasi) { |
this.adi = adi; |
this.yasi = yasi; |
} |
} |
public class Ogrenci extends Kisi { |
private String okulu; |
public Ogrenci(String adi, int yasi, String okulu) { |
super(adi, yasi); |
this.okulu = okulu; |
} |
public String getOkulu() { |
return okulu; |
} |
} |
Yukarıdaki örnekte, Kisi sınıfı, adi ve yasi özelliklerini ve Kisi constructor'ını içerir. Ogrenci sınıfı, Kisi sınıfını miras alır ve okulu özelliğine sahip olur. Ogrenci sınıfı, Kisi constructor'ını super anahtar kelimesi kullanarak çağırarak miras aldığı özellikleri de kullanabilir. Ayrıca, Ogrenci sınıfı, getOkulu metodunu kendine özgü bir özellik olarak eklemiştir.
Miras alma, kod tekrarını azaltır ve kod tabanını daha temiz ve düzenli hale getirir. Aynı zamanda, sınıfların birbirine daha sıkı şekilde bağlandığı nesne yönelimli programlamada önemli bir kavramdır.
Kod Örneği 8: Dosya İşlemleri
Java programlama dilinde dosya işlemleri oldukça sık kullanılan bir kavramdır. Dosya işlemleri, programların dosyalarda saklanan verilere erişmelerine ve bu verileri kullanmalarına olanak tanır. Bu kod örneğinde, Java'da dosya okuma, yazma ve dosya işlemleri hakkında örnek kodlar sunacağız.
Java'da dosya işlemleri yapmak için, öncelikle java.io paketini kullanmanız gerekmekte. Bu paket, Java I/O işlemlerinde kullanılan sınıf ve arayüzleri içermektedir. İşlemler için java.io.File sınıfını kullanabilirsiniz. Bu sınıf, dosya adı veya yolunu temsil eder ve dosya işlemleri için kullanılır.
Dosya okuma işlemi için, java.util.Scanner sınıfı kullanılır. Bu sınıf sayesinde, dosyadan verileri okuyabilir ve bu verileri programınızda kullanabilirsiniz. Aşağıdaki örnek kodu inceleyelim:
```import java.io.File;import java.io.FileNotFoundException;+import java.util.Scanner;
public class DosyaOkumaOrnegi { public static void main(String[] args) { try { File dosya = new File("test.txt"); Scanner scanner = new Scanner(dosya); while (scanner.hasNextLine()) { String veri = scanner.nextLine(); System.out.println(veri); } scanner.close(); } catch (FileNotFoundException e) { System.out.println("Dosya bulunamadı."); e.printStackTrace(); } }}```
Yukarıdaki kodda, "test.txt" dosyasındaki verileri okur ve konsola yazdırırız. Eğer belirtilen adreste dosya yoksa, FileNotFoundException ile hata mesajı verilir.
Dosya yazma işlemi için ise, java.io.FileWriter sınıfını kullanabiliriz. Bu sınıf, dosyaya veri yazmak için kullanılır. Aşağıdaki örnek kodda, yeni bir dosya oluşturulur ve bu dosyaya veri yazılır:
```import java.io.File;import java.io.FileWriter;import java.io.IOException;
public class DosyaYazmaOrnegi { public static void main(String[] args) { try { FileWriter dosya = new FileWriter("yeni.txt"); dosya.write("Bu bir test verisidir."); dosya.close(); System.out.println("Dosya başarıyla oluşturuldu."); } catch (IOException e) { System.out.println("Dosya oluşturulurken hata oluştu."); e.printStackTrace(); } }}```
Yukarıdaki kodda, "yeni.txt" adında yeni bir dosya oluşturulur ve bu dosyaya "Bu bir test verisidir." yazısı yazılır. Dosya başarıyla oluşturulduktan sonra, konsola mesaj yazdırılır.
Son olarak, dosya işlemleri kullanan programlarda, hata yönetimi oldukça önemlidir. Hata durumlarını tespit etmek ve bu hataları düzeltmek için try-catch blokları kullanmanız önerilir. Bu sayede, kullanıcılara çözüm önerileri sunabilir ve programınızın daha güvenli çalışmasını sağlayabilirsiniz.
Bu kod örnekleri, Java'daki dosya işlemleri konusunda size temel bir anlayış sağlamalıdır. Daha fazla örnek için Java belgelerini ve diğer kaynakları inceleyebilirsiniz.
Kod Örneği 9: Hata Yönetimi
Java'da programlama yaparken hatalar oluşabilir. Bu hatalar, programın çalışması durdurabilir ya da yanlış sonuçlar verebilir. Bu nedenle, hata yönetimi oldukça önemlidir. Java'da hata yönetimi için try-catch blokları kullanılır. Bu bloklar, programın belirli bir bölümünde hata oluşması durumunda, programın çökmesini önler. Peki, nasıl kullanılır?
Try bloğu içinde yazılan kod, hata oluşması ihtimaline karşı kontrol edilir. Eğer hata oluşursa, bu hatayı yakalamak için catch blokları kullanılır. Eğer hata ile karşılaşılırsa, catch bloğu çalışır ve hatanın tipine göre işlem yapılır.
Örneğin, aşağıdaki kodda, bir sayının sıfıra bölünmesi halinde hata mesajı verilir. Try bloğu içindeki kod hata verirse, program kontrolunu catch bloğuna aktarır ve hata mesajı ekranda görüntülenir.
|
Yukarıdaki örnekte, try bloğu içindeki kod hata verdiği için, catch bloğu çalışır ve ekrana "Sıfıra bölemezsiniz!" mesajı yazdırılır. Bu sayede, programın çökmesi önlenir ve hatanın nedeni açık bir şekilde gösterilir.
Hata yönetimi, yazılan kodun kalitesi ve doğruluğu açısından son derece önemlidir. Try-catch blokları kullanarak, hataların kontrol altında tutulması ve kullanıcıya açık bir şekilde gösterilmesi sağlanır. Bu sayede, programlar daha güvenli ve kullanışlı hale gelir.
Kod Örneği 10: Veritabanı Bağlantısı
Java'da veritabanı bağlantısı kurmak, birçok uygulamanın gerek duyduğu bir işlemdir. Bu örnekte, JDBC (Java Database Connectivity) sınıfını kullanarak veritabanı bağlantısı sağlayacağız.
İlk olarak, projemize jar dosyasını dahil etmeliyiz. MySQL veritabanı kullanacak olursak, MySQL JDBC Sürücüsü - mysql-connector-java.jar dosyasını dahil etmeliyiz. Ardından, Java kodumuzu yazmaya başlayabiliriz.
Paket | Sınıf | Açıklama |
---|---|---|
java.sql | DriverManager | DriverManager, JDBC sürücülerinin yönetimi için kullanılır. |
java.sql | Connection | Connection, veritabanı bağlantısını temsil eder. |
java.sql | Statement | Statement, SQL ifadelerinin yürütülmesi için kullanılır. |
java.sql | ResultSet | ResultSet, bir sorgu sonucu dönen veri kümesini temsil eder. |
Yukarıdaki tabloda verilen paketler ve sınıflar, JDBC bağlantısında kullanmamız gereken temel yapı taşlarıdır. Şimdi, veritabanına bağlanmak için bir örnek kod yazalım.
// JDBC sınıfını yüklemeClass.forName("com.mysql.jdbc.Driver");// Veritabanına bağlantı bilgileriString url = "jdbc:mysql://localhost:3306/database_name";String user = "root";String password = "password";// Veritabanına bağlanmaConnection con = DriverManager.getConnection(url, user, password);// Sorgu yürütmek için bir statement nesnesi oluşturunStatement stmt = con.createStatement();// Sorgumuzu yazalımString sql = "SELECT * FROM table_name";// Sorguyu yürüt, sonuç kümesini elde etResultSet rs = stmt.executeQuery(sql);// Sonuçlarla çalışwhile (rs.next()) { String column1 = rs.getString("column1"); int column2 = rs.getInt("column2"); System.out.println(column1 + " " + column2);}// Bağlantıyı kapatcon.close();
Yukarıdaki örnek kod, veritabanına bağlanmak, bir sorgu yürütmek ve sonuç kümesindeki verilerle çalışmak için kullanılabilecek temel bir şablondur. Ancak, gerçek bir uygulama geliştirirken, bu kodu değiştirmeniz ve özelleştirmeniz gerekebilir.
Bu örnek, JDBC bağlantısı için kullanılabilecek en temel kod bloklarını tanıttı. JDBC'de pek çok farklı özellik ve işlev mevcuttur. Bu nedenle, ihtiyaçlarınıza uygun olarak farklı JDBC metodları kullanarak özelleştirilmiş bir çözüm oluşturmanız gerekebilir.