JAVA ÖĞRENİYORUM -2
Merhaba arkadaşlar,
İlk dersimizde beraber basit bir HelloWorld uygulaması yapmıştık.. İkinci dersimizde tam bir java sınıfı nasıl oluşturulur nelere dikkat edilmelidir. Bunlardan bahsedeceğiz..
Nesneye dayalı program dillerindeki tüm kurallar java dilinde de geçerlidir. Ancak birkaç ufak farklılık arz eder... Java sınıflarının çalışma prensibi biraz farklıdır.. Oluşturduğumuz java sınıfları bağlı oldukları veya extend ettikleri diyelim sınıflarını öncelikli olarak oluşturup akabinde kendilerini oluştururlar ve en önemli kural; hiç bir java sınıfı java object sınıfının bir örneği oluşturulmadan kendini oluşturamaz. Bu kısmı biraz daha açalım...
public class Insan extends Canli
{
..............
............
}
bu kodda insan sınıfı canli sınıfını extend yani miras yolluyla tüm özelliklerini alıyor. Burda bu insan sınıfının çalışması için önce canli sınıfının bir örneği oluşturulmalıdır.
public class Canli
{
...........................
.........................
..............
}
canli sınıfının çalışması için ise java object sınıfının bir örneğinin çalıştırılması gerekiyor...
Sanırım burası anlaşıldı..
Şimdi sınıflarımızın olmazsa olmazı yapılandırıcılar (constructors) lardan bahsedelim... Malumunuz yapılandırıcılar sınıflarımızın içinde yer alan özel fonksiyonlardır. Bu fonksiyonlarda oluşturulacak örneğin özelliklerini girme imkanımız veya farklı fonksiyonlar çalıştırma imkanımız oluyor. Örnek ile açıklarsak;
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
public Kedi() {}
}
}
burada hiçbir özellik atamadığımız bir yapılandırıcı görüyoruz. Java nın bir özellliği olarak bu tarz yapılandırıcıları yazmaksak da bir problem olmuyor. Yani
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
}
şeklinde tanımladığımız sınıfımız çalışıyor. Ancak farklı işlevsel taşıyan bir yapılandırıcı eklersek;
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
public Kedi(String renk, int yasi) {}
goz_rengi=renk;
yas=yasi;
}
}
bu şekildeki sınıfımızı derlediğimizde hata alıyoruz. Çünkü derleyicimiz hiç bir yapılandırıcı olmadığı takdirde default constructor yani işlevselsiz yalın yapılandırıcıyı kendisi gizli kod ile ekliyor ancak biz işlevselli bir yapılandırıcı eklediğimizde o özellik kayboluyor ve olmazsa olmaz olan default constructor olmadığından hata alıyoruz...
Umarım faydalı olmuştur. Bir sonrak derste görüşmek üzere..
İlk dersimizde beraber basit bir HelloWorld uygulaması yapmıştık.. İkinci dersimizde tam bir java sınıfı nasıl oluşturulur nelere dikkat edilmelidir. Bunlardan bahsedeceğiz..
Nesneye dayalı program dillerindeki tüm kurallar java dilinde de geçerlidir. Ancak birkaç ufak farklılık arz eder... Java sınıflarının çalışma prensibi biraz farklıdır.. Oluşturduğumuz java sınıfları bağlı oldukları veya extend ettikleri diyelim sınıflarını öncelikli olarak oluşturup akabinde kendilerini oluştururlar ve en önemli kural; hiç bir java sınıfı java object sınıfının bir örneği oluşturulmadan kendini oluşturamaz. Bu kısmı biraz daha açalım...
public class Insan extends Canli
{
..............
............
}
bu kodda insan sınıfı canli sınıfını extend yani miras yolluyla tüm özelliklerini alıyor. Burda bu insan sınıfının çalışması için önce canli sınıfının bir örneği oluşturulmalıdır.
public class Canli
{
...........................
.........................
..............
}
canli sınıfının çalışması için ise java object sınıfının bir örneğinin çalıştırılması gerekiyor...
Sanırım burası anlaşıldı..
Şimdi sınıflarımızın olmazsa olmazı yapılandırıcılar (constructors) lardan bahsedelim... Malumunuz yapılandırıcılar sınıflarımızın içinde yer alan özel fonksiyonlardır. Bu fonksiyonlarda oluşturulacak örneğin özelliklerini girme imkanımız veya farklı fonksiyonlar çalıştırma imkanımız oluyor. Örnek ile açıklarsak;
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
public Kedi() {}
}
}
burada hiçbir özellik atamadığımız bir yapılandırıcı görüyoruz. Java nın bir özellliği olarak bu tarz yapılandırıcıları yazmaksak da bir problem olmuyor. Yani
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
}
şeklinde tanımladığımız sınıfımız çalışıyor. Ancak farklı işlevsel taşıyan bir yapılandırıcı eklersek;
public class Kedi extends Hayvan
{
String goz_rengi;
int yas;
public Kedi(String renk, int yasi) {}
goz_rengi=renk;
yas=yasi;
}
}
bu şekildeki sınıfımızı derlediğimizde hata alıyoruz. Çünkü derleyicimiz hiç bir yapılandırıcı olmadığı takdirde default constructor yani işlevselsiz yalın yapılandırıcıyı kendisi gizli kod ile ekliyor ancak biz işlevselli bir yapılandırıcı eklediğimizde o özellik kayboluyor ve olmazsa olmaz olan default constructor olmadığından hata alıyoruz...
Umarım faydalı olmuştur. Bir sonrak derste görüşmek üzere..
Yorumlar
Yorum Gönder