You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: javaSyntax.md
+52-27Lines changed: 52 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,21 +74,30 @@ Genel mantık bu şkeilde. charAt() fonksiyonununa gelince buarada paremetre ola
74
74
tipik char, int, float, double, char var. C'den farklı olarak boolean ve String var. boolean c++'dakı bool. true, false iki şekilde olabiliyor. String ise adı üstünde string oluşturmamız sağlıyor. boyle ayrı bir değişken tipinin olması bize C'den farklı ozellikler kazandırıyor. String herhangi bir fonksiyon kullanılmadan değiştiribiliyor. ancak char dizisini string gibi kullanamıyoruz vb. buna string başlılığı altında detaylı değiniyorum. değişken tipler [örenk](https://github.com/NecmiyeSoylu/java_examples/blob/master/veriTipleri.java)
75
75
76
76
### Döngüler
77
-
bunun üzerinde durmeyeacağım for, while, do while, break. continue, switch hatta if else C'dekinin aynısı syntax 'ta dahil olmak üzere hiçbir fark yok. [örnek](https://github.com/NecmiyeSoylu/java_examples/blob/master/loops.java)[örnek](https://github.com/NecmiyeSoylu/java_examples/blob/master/loops2.java)
77
+
bunun üzerinde durmayacağım for, while, do while, break, continue, switch hatta if else C'dekinin aynısı syntax 'da dahil olmak üzere hiçbir fark yok. [örnek](https://github.com/NecmiyeSoylu/java_examples/blob/master/loops.java)[örnek](https://github.com/NecmiyeSoylu/java_examples/blob/master/loops2.java)
78
78
79
79
### Diziler
80
-
C'de olduğu her tipten dizi oluşturabiliriz. yine [] parantezini kullanırız C'den farklı olarak []'in içine boyutu yazmayız:)
81
-
82
-
int[] a;
83
-
float[] b;
84
-
char[] c;
85
-
86
-
gibi. int a[]; yazımıda doğrudur. hata almayız. özellikleri C'deki ile aynı. sadece char dis
87
-
disinde farklılık var.C'de string diye bir değişken tipi yoktu. O yüzden Char dizisi aynı zamanda string olaark kullanılıyordu. Char dizisi hem kendi özelliklerine hem string'in özelliklerine sahşpti diyebşliriz. Java'da ise String özelliklerine String sahiptir. char dizisi isse sadece char dizisine ait özelliklere sahip, stringin özelliklerini taşımaz.
80
+
degisken_tipi [] dizi_adı; şeklinde oluşturulur. Her değişken tipinde oluşturulabilir. dizi mantığı kullanımı, C ile aynı sadece initialing kısmında bir farklılık var.
81
+
int[] a;// dikkat edelim [indis değeri yazmadık]
82
+
int[] a={1,2,3};
83
+
int[] a=new int[2];// new kullanırken boyut belirttik
84
+
int[] a=new int[]{1,2,3};// initialize edeceksek new kullansakta boyut yazmadık
85
+
Şahsen aklımda şöyle kalıyor initilize edeceğimiz yerde java ben zaten kaç tane olduğunu görüyorum daha niye yazıyosun diyor :)) int a[]; yazımıda doğrudur. hata almayız. özellikleri C'deki ile aynı. sadece char dizisinde ufak farklılıklar var.
86
+
C'de string diye bir değişken tipi yoktu. O yüzden Char dizisi aynı zamanda string olarak kullanılıyordu. Char dizisi hem kendi özelliklerine hem string'in özelliklerine sahipti diyebşliriz. Java'da ise String özelliklerine String sahiptir. char dizisi isse sadece char dizisine ait özelliklere sahip, stringin özelliklerini taşımaz.
88
87
89
88
- char a[]="soylu"; yanlış "" bu tırnak string için kullanılır
90
-
- char a[]='soylu'; yanlış çünkü uzun tek karakter olmalı
89
+
- char a[]='soylu'; yanlış çünkü uzun. Tek karakter olmalı
91
90
- char a[]={'s','o','y','l','u'}; doğru :)) işte böyle yola gel 😁
91
+
Yazdırmaya alakalıda bize kolaylık sağlaycak bir fonksiyonıumuz var *length*
92
+
public class array_length
93
+
{
94
+
public static void main(String[] Soylu)
95
+
{
96
+
int a[]=new int[]{1,2,3,4,5};
97
+
for(int i=0;i < a.length;i++)
98
+
System.out.print(a[i]+" ");
99
+
}
100
+
}
92
101
93
102
Çok boyutlu dizilere gelirsek. Burasıda aynı.
94
103
int[][] aa;
@@ -105,19 +114,33 @@ char[][] aa;
105
114
int[][] matris1={{1,2},{3,4}};
106
115
int[][] matris2=new int[2][2];
107
116
int[][] matris3=new int[row][column];
117
+
int[][] matris4=new int[][]{{1,2},{3,4}};
108
118
int[][] matris5;
119
+
109
120
matris5=new int [3][3];
110
121
}
111
-
//sanırımm syntax anlaşılır oldu. Dikkat edeceğimiz new kullandığımız yerde initializing yapamayız
122
+
//sanırımm syntax anlaşılır oldu. Dikkat edeceğimiz new kullandığımız yerde initializing yapacaksak boyut yazmayız
112
123
// c'den net farkı
113
124
// *)int a[2][2]; şklinde tanımlama yapamayız!
114
-
// *)new malloc gibi olduğu için new ile yer alarak değişken size/ı kadar yer alınabilir.
115
-
// *)int[][]m; şeklinde pekte gözümüzün alışkın olmadığı bir tanımlama doğru :)) ki anladığım kadarıyla yaygın olanda bu :)
125
+
// *)new malloc gibi olduğu için new ile yer değişken kadar yer alınabilir.
126
+
// *)int[][] m; şeklinde pekte gözümüzün alışkın olmadığı bir tanımlama doğru :)) ki anladığım kadarıyla yaygın olanda bu :)
127
+
C'de atama yapmazsak rastgele sayılar atar. Ancak Java'da atma yapmadığımızda 0 atar. *length* fonksiyonunu burada da kullanabiliriz
128
+
public class arrayLength
129
+
{
130
+
public static void main(String[] Soylu)
131
+
{
132
+
int[][] aa={{1,2},{3,4}};
133
+
134
+
for(int i=0;i<aa.length;i++)
135
+
for(int j=0;j<aa[0].length;j++)
136
+
System.out.print(aa[i][j]+" ");
137
+
}
138
+
}//dikkat edelim aa.length bize satır sayısını, aa[0].length bize sutun sayısını verir.
116
139
117
140
### String
118
141
Geldi gönlümün efendisi :)
119
-
C'de normal string yapacağımız zaman char[] yapıyorduk. char str[]="necmiye"; gibi. Bu sabit oluyordu ve daha sonra değiştirileiyordu. İstediğimiz zaman %s ile direkt yazdırabiliyor yada istediğimiz elemana str[2] diyerek ulaşbiliyorduk. ayrıca elmanlı bir char dizisi değimiz zaman hem char a[2]=('n','s'); hem char a[2]=("necmiye","soylu"); mümkündü.
120
-
Burada ise String tanımladığımız zaman en önemli farkı isteğimiz zaman değiştirebiliyor. atamayı istediğimiz zaman yapabiliyoruz.[örenk](https://github.com/NecmiyeSoylu/java_examples/blob/master/initialize_.java)[örnek2](https://github.com/NecmiyeSoylu/java_examples/blob/master/stringArray.java)ikinci örnek daha iyi :))
142
+
C'de normal string yapacağımız zaman char[] yapıyorduk. char str[]="necmiye"; gibi. Bu sabit oluyordu ve daha sonra değiştirilemiyordu. İstediğimiz zaman %s ile direkt yazdırabiliyor yada istediğimiz elemana str[2] diyerek ulaşbiliyorduk. ayrıca 2 elmanlı bir char dizisi değimiz zaman hem char a[2]=('n','s'); hem char a[2]=("necmiye","soylu"); mümkündü.
143
+
Burada ise String tanımladığımız zaman en önemli farkı isteğimiz zaman değiştirebiliyor, atamayı istediğimiz zaman yapabiliyoruz.[örenk](https://github.com/NecmiyeSoylu/java_examples/blob/master/initialize_.java)[örnek2](https://github.com/NecmiyeSoylu/java_examples/blob/master/stringArray.java)ikinci örnek daha iyi :))
121
144
public class initialize_
122
145
{
123
146
public static void main(String[] args)
@@ -134,7 +157,8 @@ Burada ise String tanımladığımız zaman en önemli farkı isteğimiz zaman d
134
157
str1="KBU";
135
158
}
136
159
}//aklıma gelen tüm atama şekillerini yazdım :))
137
-
Stringin tek bir elamanına ulaşmak istersiek charAt() fonksiyonunu kullanırız. paremetre olarak ulaşmak istediğimiz elmanın indexini göndeririz. orneğin tek bir elemanını yazdırmak için System.out.println(str1.charAt(0)); CharAt() fonkisiyonu bizden indexi alır ve ulaştığı char'ı dödürür. bu yüzden bu fonksiyonla Stringin bir belirli elemanını değiştiremeyiz. Bunun için dolaylı yöntemler kullanıcaz. setCharAt(index,'yeni_karakter') fonksiyonu. ancak bu fonksiyon StringBuilder tipinde kullanılabilir. o zaman bu tipte yeni bir string oluturur sonra stringini buna atar ve değiştirirsin. aşşağıda incelerseniz daha net olur.
160
+
Stringin tek bir elamanına ulaşmak istersiek charAt() fonksiyonunu kullanırız. paremetre olarak ulaşmak istediğimiz elmanın indexini göndeririz. orneğin tek bir elemanını yazdırmak için System.out.println(str1.charAt(0)); şeklinde yazabiliriz.
161
+
CharAt() fonkisiyonu bizden indexi alır ve ulaştığı char'ı döndürür. bu yüzden bu fonksiyonla Stringin belirli bir elemanını değiştiremeyiz. Bunun için dolaylı yöntemler kullanıcaz. setCharAt(index,'yeni_karakter') fonksiyonu bunlardan biri. ancak bu fonksiyon StringBuilder tipinde kullanılabilir. O zaman bu tipte yeni bir string oluturur sonra stringini buna atar ve değiştirirsin. aşşağıdaki öreneği incelerseniz daha net olur.
138
162
public class string_eleman
139
163
{
140
164
public static void main(String[] args)
@@ -147,8 +171,8 @@ Stringin tek bir elamanına ulaşmak istersiek charAt() fonksiyonunu kullanırı
147
171
str=str_new;
148
172
}
149
173
}
150
-
uzatma yahu direkt str=str2; yap dersen, malesef tipleri farklı olduğu bu şekilde bir atama yapamıyoruz. bole new kullanarak dolaylı yoldan kopyalıyoruz :))
151
-
gelelim string dizisine. ops! string zaten dizi değil miydi?😳 hayır dostum değil. string bir değişken tipibu yüzden tek bir elemanına ulaşırken karnımız çatlıyo. bak şimdi string dizisinin bir elmanına ulaşırken hiç sorun yaşamıyıcaz çünkü normal bir dizi :))
174
+
uzatma yahu direkt str=str2; yap dersen, malesef tipleri farklı olduğu için bu şekilde bir atama yapamıyoruz. boyle new kullanarak dolaylı yoldan kopyalıyoruz :))
175
+
gelelim string dizisine. ops! string zaten dizi değil miydi?😳 Hayır dostum değil. string bir değişken tipi. Zaten bu yüzden tek bir karaketerine ulaşmak istediğimizde karnımız çatlıyo. Bak, şimdi string dizisinin bir elmanına ulaşırken hiç sorun yaşamıyıcaz çünkü normal bir dizi :))
152
176
public static void main(String[] Soylu)
153
177
{
154
178
String[] dizi={"atama","sekli"};
@@ -160,8 +184,8 @@ gelelim string dizisine. ops! string zaten dizi değil miydi?😳 hayır dostum
160
184
161
185
dizi2[1]="ata"; //değiştirdim işte :))
162
186
}
163
-
nasıl yazdırıcaz dersen C'de yaptığımız gibi döngüye sokup elemanları tek tek yazdırabilirsin. yada Arrays.toString() fonksiyonunu kullanabilirsin. ancak direkt print(str) şeklinde yazdıramzsın. inceleyelim
164
-
import java.util.Arrays;// fonksiyon için kütüphanemizi dahil ediyoruz :))
187
+
nasıl yazdırıcaz dersen C'de yaptığımız gibi döngüye sokup elemanları tek tek yazdırabilirsin. Yada *Arrays.toString()* fonksiyonunu kullanabilirsin. ancak direkt print(str) şeklinde yazdıramzsın. İnceleyelim.
188
+
import java.util.Arrays;// fonksiyon için kütüphanemizi dahil ediyoruz :))
165
189
public class stringPrint
166
190
{
167
191
public static void main(String[] Soylu)
@@ -180,8 +204,8 @@ nasıl yazdırıcaz dersen C'de yaptığımız gibi döngüye sokup elemanları
180
204
* [Ljava.lang.String;@251a69d7
181
205
* [necmiye, soylu, kbu]
182
206
*/
183
-
çok boyutlu String dizi. String[][] str; şeklinde oluşturulur. Yine parantezlerin içine sayı yazılmaz.
184
-
String[][] str={{"necmiye",soylu"},{"kbu","mühendislik"},{"bligisayar","mühendisligi"}}; şeklinde initilize edebililriz. yazdırmaya gelince deepToString() fonksiyonunu kullanıcaz
207
+
Çok boyutlu String dizi. String[][] str; şeklinde oluşturulur. Yine parantezlerin içine sayı yazılmaz.
208
+
String[][] str={{"necmiye",soylu"},{"kbu","mühendislik"},{"bligisayar","mühendisligi"}}; şeklinde initilize edebililriz. yazdırmaya gelince *deepToString()* fonksiyonunu kullanıcaz
C'deki fonksiyonları biliyorsun. Burada da aynı *return_tipi Fonksiyon_adi(paremetre_listesi)* bu tipi yine kullanıyoruz bunaek olarak. Dikkat edersen main'in başına static yazmıştık, bir metodun da mainden çağırılabilmesi için static olması gerekiyor. (başına static yazıyoruz yani :)) Birde erişim belirteçleri var. yine main üzerinden bakacak olursak public static void main diyoruz buaraki public erişim belirtecidir. Diğer sınıflardan da erişilebilir olduğunu gösterir. metodlarını yazarklen bunu belirtmek zorunda değilsin bu aşamada bu önemli değil. oop kısmına geçince bundan detaylı bahsederiz.
201
225
public static void main()
202
226
{
203
-
int a=10, b=20, c;
227
+
int a=10, b=20, c;s
204
228
c=addition(a,b);
205
229
}
206
230
static int addition(int x, int y)
@@ -234,8 +258,8 @@ call by refarence aynı. Değişkeni direkt gönderirsen kopyalar. değişken ü
234
258
call by refarance yapmak için dizinin direkt ismiyle gönderebiliriz. yada aynı class içindeyse fonksiyon direkt değişkenşn kendisine ulaşabiliyor ya öyle değiştirebiliriz. Yani burada pointer mantığını kullanamayız OOP yeteneğini konuştur diyor :)
kolay geldi galiba biraz :) o zaman beyinleri yakalım🔥 konumuz generic metod. Normalde generic class faln dah çok oop kısmında kullanıcaz ancak burada da bir giriş yapalım.
238
-
tipsiz fonksiyon oluştutucaz. yukarıda farklı tipte paremetrelere sahip fonksiyonlar yazdık burada ise kod partı ismi her şeyi aynı sadece paremetrelerin/retur'un tipi farklı olan metod yazmak istiyoruz. yahu adamların her şeyi aynı bir tek tip farklı bunun için farklı farklı fonksiyonlar mı yazalım? hayır yazmayalıımm:)) <> bu şekil ile tipini bizim belirleyeceğimiz metodlar yazılabliriz
261
+
kolay geldi galiba biraz :) o zaman beyinleri yakalım🔥 konumuz generic metod. Normalde generic class falan daha çok oop kısmında kullanıcaz ancak burada da bir giriş yapalım.
262
+
tipsiz fonksiyon oluşturucaz. yukarıda farklı tipte paremetrelere sahip fonksiyonlar yazdık burada ise kod partı ismi her şeyi aynı sadece paremetrelerin/retur'un tipi farklı olan metod yazmak istiyoruz. yahu adamların her şeyi aynı bir tek tip farklı bunun için farklı farklı fonksiyonlar mı yazalım? hayır yazmayalıımm:)) <> bu şekil ile tipini bizim belirleyeceğimiz metodlar yazılabliriz
239
263
public class genericMethod
240
264
{
241
265
public static void main(String[] Soylu)
@@ -265,7 +289,7 @@ tipsiz fonksiyon oluştutucaz. yukarıda farklı tipte paremetrelere sahip fonks
265
289
burada < tipsiz > diye bir genel tip belirledik. Fonksiyonda bu tipin kullanılacağını belirtmek için static'ten önce bunu yazdık C++'da < template > yazıyorduk ya o mantık. sonra normla int der gibi bu değişken tipini rahatlıla kullandık. < tipsiz > dediğimizde belli bir tip yoktu. biz bu fonksiyona int gönderdiğimizde artık o tipsiz den kasıt int oldu ve ona göre işleme devam etti. C++'taki template'den biraz farklı. C++'da template tipindeki değişkenlerle işlem yapabiliyordu. burada ise tipin n eolduğu belli olmadığı işlem yapamazsın diyor. Sadece aynı tipteki başka değişkene atama yapabliyoruz. işte buda daha çok class ve list kullanımı için.
266
290
public class genericMethod3
267
291
{
268
-
static <generic, generic2> void fonk(generic a, generic2 b)
292
+
static <generic, generic2> void fonk(generic a, generic2 b)
269
293
{
270
294
System.out.println(a);
271
295
System.out.print(b);
@@ -279,3 +303,4 @@ burada < tipsiz > diye bir genel tip belirledik. Fonksiyonda bu tipin kullanıla
0 commit comments