09 Java Tricks

Merhaba Arkadaslar,
Bu yazimda onceki 8 yazimin ozeti seklinde olacaktir. Akilda tutulmasi gereken trickleri maddeler halinde paylasacagim.

Identifier(Belirtec)

  • Javada belirtecler harf, underscore (_) ve $ isareti ile baslayabilir. Rakam ile baslayamaz.
  • Ilk karakterden sonra rakam da kullanilabilir.
  • Isimlendirmede uzunluk sinirlamasi yoktur.
  • Java da camelCase yapisina uygun olarak isimlendirme kullanilir.

Deklarasyon Kurallari

  • Bir kaynak dosya (source file) sadece bir tek public class icerebilir.
  • public class ile kaynak dosyanin adi ayni olmak zorundadir.
  • Bir sinif sadece tek bir package ifadesine sahip olabilir , bir den fazla import kullanilabilir.
  • Bir kaynak dosya bir den fazla public olmayan sinif icerebilir.

Class Access Modifiers ( Sinif Erisim Duzenleyicileri)

  • Java da 3 adet access modifier vardir ; public , protected, private
  • Java da 4 adet access level vardir. public, protected, private ve default
  • Siniflar public veya default access e sahip olabilir.
  • Default access e sahip sinifa ayni paket altindaki tum siniflardan erisim saglanabilir.
  • public sinifa diger paketlerde bulunan siniflardan da ulasim saglanabilir.

Class NonAccess Modifier

  • Siniflar sunlari da alabilir ; final , abstract , strictfp
  • Bir sinif final ve abstract olamaz. Bu iki anahtar kelime hic bir sekilde yan yana gelemez.
  • final sinif kalitilamaz
  • abstract siniftan obje olusturulamaz.
  • abstract sinif hem abstract hem normal (concrete) metota sahip olabilir.

Interface (Arabirim)

  • interface (arabirim) bir sinifin ne yapacagini soyleyen fakat nasil yapacagini soylemeyen bir kontrattir.
  • interface , herhangi bir sinif tarafindan implements edilebilir. Burada kalitim agaci yapisi onemsizdir, birbiriyle alakasiz iki sinif ayni interface i implement edebilir. Arabirimlerin gucu buradadir.
  • Bir interface (arabirim) sadece abstract metotlara sahip olabilir.
  • interface metotlari varsayilan olarak public ve abstractir .
  • interface degiskenleri public, static ve finaldir. Yani degiskenden ziyade sabittir (constant)
  • Bir sinif sadece bir tek sinifi kalitabilir (extends) fakat birden fazla interface’i implement edebilir.
  • interface(arabirim) birden fazla interface’i kalitabilir (extends)
  • interface baska bir interface ‘i implements edemez.
  • abstract bir sinif bir interface ‘i implements edebilir fakat interface ‘in metotlarini override etmek zorunda degildir.

Member Access Modifier 

  • Metotlar ve instance degiskenler “member” olarak bilinirler.
  • Sinif uyeleri public, protected, default ve private erisim seviyelerinde olabilirler.
  • Eger bir sinif bir sinifa erisemiyorsa, bu sinifin uyelerine de erisemez.
  • public uyelere farkli bir paketten de ulasilabilir.
  • this anahtar kelimesi , hali hazirda calisan nesneyi temsil eder.
  • private uyelere sadece sinif icerisinde ulasilabilir.
  • private uyeler alt siniflardan gorulemezler , dolayisiyla private uyelere kalitilmazlar.
  • default ve protected uyeler arasinda fark kalitim durumunda ortaya cikmaktadir.
  • default uyelere sadece ayni pakette bulunan siniflardan ulasim soz konusudur.
  • protected uyelere hem ayni pakette bulunan siniflardan hem de kalitim aracigiliyla farkli pakette bulunan alt siniftan erisim mumkundur.

Local Variables ( Yerel Degiskenler)

  • Local (method,automatic veya stack olarak da isimlendirilir) degiskenler access modifier almazlar.( public, protected, private )
  • Local degiskenler sadece final anahtar kelimesini kullanabilirler.
  • Local degiskenlere varsayilan olarak deger atanmaz bu nedenle kullanilmadan once mutlaka ama mutlaka deger atamasi yapilmalidir.

Non Access Modifiers – Members

  • final metotlar, alt sinif tarafindan override edilemez.
  • abstract metotlar noktali virgul ile biterler
  • Bir sinif bir adet abstract metoda sahipse abstract olarak tanimlanmalidir.
  • Bir abstract sinif hem abtract hem abstract olmayan metot tanimlayabilir.
  • abstract metotlar private ve final olamazlar. Cunku abstract bir sinif kalitilmak icin vardir, private ve final alanlar kalitilamazlar.
  • sychronized anahtar kelimesi sadece metotlar ve kod bloklari icin kullanilabilir.
  • sychronized metotlar public, protected, private, static, final olarak da tanimlanabilir.
  • native , sadece metotlar icin kullanilabilir.
  • strictfp , sinif ve metotlar icin kullanilabilir.

Var-Args

  • Bir metot tanimlamasinda parametre olarak tanimlanan degisken, 0 veya 1 veya 2 … 3…5 arguman alarak cagirilabilir.Bu yapi Javada Var-Args ile kurulabilir.
  • Bir var-args yapisi sadece tek bir var-args kabul eder. method1(int …x)
  • Hem var-arg hem normal degisken de kullanilabilir fakat var-args sonda olmalidir.

Variable Declaration (Degisken Tanimlamasi)

  • Instance variable , access modifier alabilirler. final veya transient olarak tanimlanabilirler.
  • Instance variable static, abstract, syncronized, native, strictfp olarak tanimlamazlar.
  • Local degiskenle instance variable ayni isme sahip olabilir buna golgeleme (shadowing) denir.
  • final degiskenlere tekrar bir deger atamasi yapilamaz.
  • Java da final object diye bir sey yoktur. Bir object referans degiskeni final olarak tanimlanabilir.
  • transient , sadece instance variable icin kullanilabilir.
  • volatile, sadece instance variable icin kullanilabilir.

Array Declaration (Dizi Tanimlamasi)

  • Array (dizi) primitive veya obje tutabilirler. Fakat arrayin kendisi bir objedir.
  • Array tanimlarken sol tarafta boyut belirleme derleme hatasina neden olur.

Static Degiskenler ve Metotlar

  • static degiskenler ve metotlar ilgili sinifin bir objesi ile baglantili degildir.
  • static degiskenin sadece bir tek kopyasi vardir.
  • static metotlar , static olmayan uyelere direkt olarak erisemezler.

Enum

  • Bir enum,  liste seklinde tanimlanan , sabit degerlerden olusan, bir yapidir.
  • Bir enum, String veya int turunde degildir. Her bir enum , sabit degeri enum tipindedir.
  • Bir enum , bir sinif icerisinde veya disarisinda tanimlanabilir. Metot icerisinde tanimlanamaz.
  • Sinif disarisinda tanimlanan enum , static , final abstract protected veya private olamaz.
  • Enumlar, yapilandirici metot ve degisken tanimlayabilir.
  • Her enum values() isminde static metoda sahiptir ve enum in sabit degerlerini dondurur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*