- Mesajlar
- 2,410
- En iyi cevaplar
- 98
- Beğeniler
- 2,461
- Puanları
- 10,250
- Ruh hali
Herkese Merhabalar!
Sanırım bu forumda ki ilk java ile alakalı konum. Türkçe kaynaklar zor bulunduğundan dolayı bu konularda kendi bildiklerimden önemli buldukları mı ve benimde yolun başındayken en çok karşılaştığım ama aslında basit olan sorunların çözümlerini sadece sunmayıp nedenleriyle de açıklayacağım.
birçok kişinin karşılaştığı basit bir problem var, mantığını anlar ve Java'yı öğrenir iseniz sonradan bu karşılaştığınız soruna gülüp geçebilirsiniz, buradan da bir anınız olur.
"You are making progress if each mistake is a new one."
(Her hata yeni bir hatayı doğuruyor ise; ilerleme kaydediyorsun.)
Araya bu tür ingilizce türkçe farketmeksizin sözler sıkıştırabilirim, anlamlı olması bir şart olmasa da genelde anlamlı veya mesaj veren sözler olacaklardır. Programlama dillerini ve birçok şeyi araştırır, öğrenir iken gereken en önemli şey olan İngilizce bilginizi yüksek tutmanızı öneriyorum çünkü birçok döküman ingilizce olarak yazılıyor ve türkçeye çevrildiğinde bazen anlamsız / komplike kelimeler / anlamlar ortaya çıkabiliyor.
Lütfen bazı yerlerde ingilizce terimler kullandığım için beni suçlamayın, tamamen türkçe olarak öğrenip araştırmanız imkansız, elinde sonunda bu terimleri öğreneceksiniz, ben sadece bu işlemi hızlandırıyorum, çoğu zaman da zaten parantez içinde türkçesini veyahut onu yazmaz isem daha sonrasında açıklamasını yazıyorum. Yinede sorunuz var ise yorum atmakta veya bundan daha önemlisi araştırmakta özgürsünüz.
Nedir bu static?
Static, Java'da bir modifier'dır. Peki modifier ne diye sorar iseniz, modifier türkçesi değiştiriciler'dir. Değiştiriciler'i konfigüre etmek anlamında algılayabilirsiniz. Static, final, public gibi modifier (değiştiriciler) kullanarak variableleri, methodları (fonksiyon da denir, aslında denmez ama daha kolay anlayın diye .P) ve birçok şeyi konfigüre edebiliriz.
Static, bu değiştiricilerden / konfigüre edicilerden biridir. Bildiğiniz veya bilmediğiniz üzere Java, Objeye yönelik bir programlama dilidir. Yani tüm classlar varsayılan olarak java.lang.Object classından türer. Türemek ne derseniz javadaki extends ve implements kelimelerinin karşılığıdır. En basit şekilde böyle açıklanabilir yani.
Konumuz static olduğu için diğer şeylere olabildiğince az değinerek özetlemeye çalışıyorum. Eğer daha fazla bilgi edinmek istediğiniz bir şey var ise Google'a yazmanız yeterli. Bu konuların amacı da bu zaten. Size her şeyi ben öğretemem ve her konu da ben yardım edemem. Bir yerden sonra kendinizi eğitip sorunlarınıza kendiniz çözüm bulmanız gerekecek.
This nedir, ne değildir?
This, javada şu an yürütülen kodun ait olduğu objeye bir referanstır. Kod yürütülüyor ise; This asla null (boş / olmayan değer) olamaz. Peki bunun static ile bağlantısı nedir diye soracak olur iseniz; Static class'ın kendisine aittir, static olmayan her şey ise objeye spesifiktir. Yani bir şeyi static yapar isek objeye spesifik şeylere; dolayısı ile de this referansına erişemeyiz. This kelimesi çoğu zaman gereksizdir (static değil ise objeye aittir, ve dolayısı ile this kullanılır) ve başlangıçta kullanmanızı önermem çünkü compiler (IDE) bu işi sizin için yapacaktır.
Bukkit ile nasıl kullanılır?
Bukkit, olması gerektiği gibi her plugini bir birinden ayırmak için her plugine yani eklentiye özel objeler oluşturur. Bu objeleri oluşturmak için gereken bilgiyi aslında Bukkit'e biz sağlarız, bukkit sadece bizim pluginimizi bizim verdiğimiz bilgilerden obje olarak oluşturur ve bize sağlar.
Bir kullanım örneği yok mu?
Sanırım bu forumda ki ilk java ile alakalı konum. Türkçe kaynaklar zor bulunduğundan dolayı bu konularda kendi bildiklerimden önemli buldukları mı ve benimde yolun başındayken en çok karşılaştığım ama aslında basit olan sorunların çözümlerini sadece sunmayıp nedenleriyle de açıklayacağım.
birçok kişinin karşılaştığı basit bir problem var, mantığını anlar ve Java'yı öğrenir iseniz sonradan bu karşılaştığınız soruna gülüp geçebilirsiniz, buradan da bir anınız olur.
"You are making progress if each mistake is a new one."
(Her hata yeni bir hatayı doğuruyor ise; ilerleme kaydediyorsun.)
Araya bu tür ingilizce türkçe farketmeksizin sözler sıkıştırabilirim, anlamlı olması bir şart olmasa da genelde anlamlı veya mesaj veren sözler olacaklardır. Programlama dillerini ve birçok şeyi araştırır, öğrenir iken gereken en önemli şey olan İngilizce bilginizi yüksek tutmanızı öneriyorum çünkü birçok döküman ingilizce olarak yazılıyor ve türkçeye çevrildiğinde bazen anlamsız / komplike kelimeler / anlamlar ortaya çıkabiliyor.
Lütfen bazı yerlerde ingilizce terimler kullandığım için beni suçlamayın, tamamen türkçe olarak öğrenip araştırmanız imkansız, elinde sonunda bu terimleri öğreneceksiniz, ben sadece bu işlemi hızlandırıyorum, çoğu zaman da zaten parantez içinde türkçesini veyahut onu yazmaz isem daha sonrasında açıklamasını yazıyorum. Yinede sorunuz var ise yorum atmakta veya bundan daha önemlisi araştırmakta özgürsünüz.
Nedir bu static?
Static, Java'da bir modifier'dır. Peki modifier ne diye sorar iseniz, modifier türkçesi değiştiriciler'dir. Değiştiriciler'i konfigüre etmek anlamında algılayabilirsiniz. Static, final, public gibi modifier (değiştiriciler) kullanarak variableleri, methodları (fonksiyon da denir, aslında denmez ama daha kolay anlayın diye .P) ve birçok şeyi konfigüre edebiliriz.
Static, bu değiştiricilerden / konfigüre edicilerden biridir. Bildiğiniz veya bilmediğiniz üzere Java, Objeye yönelik bir programlama dilidir. Yani tüm classlar varsayılan olarak java.lang.Object classından türer. Türemek ne derseniz javadaki extends ve implements kelimelerinin karşılığıdır. En basit şekilde böyle açıklanabilir yani.
Konumuz static olduğu için diğer şeylere olabildiğince az değinerek özetlemeye çalışıyorum. Eğer daha fazla bilgi edinmek istediğiniz bir şey var ise Google'a yazmanız yeterli. Bu konuların amacı da bu zaten. Size her şeyi ben öğretemem ve her konu da ben yardım edemem. Bir yerden sonra kendinizi eğitip sorunlarınıza kendiniz çözüm bulmanız gerekecek.
This nedir, ne değildir?
This, javada şu an yürütülen kodun ait olduğu objeye bir referanstır. Kod yürütülüyor ise; This asla null (boş / olmayan değer) olamaz. Peki bunun static ile bağlantısı nedir diye soracak olur iseniz; Static class'ın kendisine aittir, static olmayan her şey ise objeye spesifiktir. Yani bir şeyi static yapar isek objeye spesifik şeylere; dolayısı ile de this referansına erişemeyiz. This kelimesi çoğu zaman gereksizdir (static değil ise objeye aittir, ve dolayısı ile this kullanılır) ve başlangıçta kullanmanızı önermem çünkü compiler (IDE) bu işi sizin için yapacaktır.
Bukkit ile nasıl kullanılır?
Bukkit, olması gerektiği gibi her plugini bir birinden ayırmak için her plugine yani eklentiye özel objeler oluşturur. Bu objeleri oluşturmak için gereken bilgiyi aslında Bukkit'e biz sağlarız, bukkit sadece bizim pluginimizi bizim verdiğimiz bilgilerden obje olarak oluşturur ve bize sağlar.
Bir kullanım örneği yok mu?
Java:
package me.takmaad.projeismi; // değiştirin
public final class Başlangıç {
// static sabit değer, final = sabit, değişemez (literal, constant, readonly vb de denir)
static final String FORUM_LİNK = "https://forum.gamer.com.tr/";
public static void main(final String[] komutSatırıArgümanları) {
// getURL static olmadığı için new Konu(...) kullandık.
System.out.println(new Konu(417306).getURL()); // konu ID'yi değiştirebilirsiniz
}
public static final class Konu {
private final int id;
public Konu(final int id) {
this.id = id;
}
public int getID() {
return this.id;
}
public String getURL() { // FORUM_LINK static olduğu için new Başlangıç() yerine direk Başlangıç kullandık.
return Başlangıç.FORUM_LİNK + "konu/" + this.getID() + "/";
}
}
}
Özet
Static - Bir değiştirici.
This - şu an yürütülen koda ait objeye bir referans.
Eğer bu konuya "this can not be used in a static context" tarzı bir hata ile karşılaştıktan sonra geldi iseniz, static değiştiricisini kaldırmanız sorunu çözecektir. Eğer "non static method can't be accessed without instance" tarzı bir hata ile geldiyseniz de static değiştiricisi eklemeniz sorunu çözecektir.
Sağlıcakla kalın, sonraki konular da görüşmek üzere..
Son düzenleme: