Android – Java Sınıflar (Class)

Java ile nesne yönelimli programlama yaparken sınıf(class) yapısını kullanırız. Java ile program yazarken sık sık değişkenler kullanmak zorunda olduğumuzu biliyorsunuz. Fakat büyüyen projelerde bu durum çok karmaşık bir hal alır ve içinden çıkılması imkansızlaşır. Bu aşamada sınıf yapıları ile projemizi şekillendiririz. Bir nesneyi düşündüğümüzde örneğin konu ile de alakalı olarak telefonu ele alalım. Bir telefonun belli özellikleri ve işlevleri vardır. Bu telefonu yazılım dili ile anlatmaya kalkarsak sınıfları (class) kullanmak durumundayız. Sınıfları nesnemizi tanımlayan bir şablon olarak düşünebiliriz.

Sınıflar özellikleri ve işlevleri olan yapılardır. Sınıfları aşağıdaki kalıp ile oluştururuz.

public class SinifinAdi {
    public degiskenTuru degiskenAdi;
    //constructor
    SinifinAdi() {
    }
    //constructor
    SinifinAdi(degiskenTuru yeniDeger) {
        degiskenTuru = yeniDeger;
    }
    //metot
    void metotAdi() {
    }
}

Bu karmaşık gelebilir örnek ile açıklayalım.

Yine telefon nesnesini ele alarak detaylı olarak anlatmaya çalışacağım. Ne demiştik sınıflar özellikler ve işlevler barındırabilir. Örneğin telefonun özellikleri olarak rengi, boyutu, ram kapasitesi vs. sayabiliriz. İşlevleri olarak da resim çekme, internete girme, müzik çalma vs. sayabiliriz.

public class Telefon {

    //Özellikler olarak aşağıdaki değişkenleri tanımladım.
    String renk = "Mavi";
    double ekran = 5.5;
    int hafiza = 32;
    int ram = 3;

    //İşlev olarakda aşağıdaki iki metotu tanımladı.

    //constructor
    Telefon(double s) {
        ekran = s;
        System.out.println("Yeni Ekran değeri:  " + ekran);
    }

    //Constructor
    void calitir(){
        System.out.println("Telefon Açıldı...");
    }

//Constructor nedir daha iyi anlamak için birkaç tane tanımladım.
    //Constructor
    public Telefon() {
        this.renk = renk;
        this.hafiza = hafiza;
        this.ram = ram;
        this.ekran = ekran;
    }
    //Constructor
    public Telefon(String renk, int hafiza ) {
        this.renk = renk;
        this.hafiza = hafiza;
        this.ram = ram;
        this.ekran = ekran;
    }
    //Constructor
    public Telefon(String renk, int hafiza, int ram, double ekran) {
        this.renk = renk;
        this.hafiza = hafiza;
        this.ram = ram;
        this.ekran = ekran;
    }
}

Sınıfı oluşturmak için public class Telefon {  parametresini kullandık. sınıf oluşturmak için class etiketi kullanılır. (public nedir sonraki yazıda anlatacağım.)
Telefon adında sınıfımızı oluşturduktan sora sınıfın içerisinde “{” parantezden sonra tanımladığım değişkenler sınıfın özellikleri, devamında tanımladığımız metotlar yada constructor (Yapıcı Metot)  sınıfımızın işlevleridir.

Kısaca bir sınıfın içerisinde değişkenler veya metotlar oluşturarak bunlara programımızın herhangi başka bir yerinden erişebiliriz. İster özelliğine yani değişkenine erişir değiştiririz, ister işlevine erişip bir işi yapmasını sağlarız.

Constructorları açıkladıktan sonra bu oluşturduğumuz sınıfın nasıl kullanılacağını açıklayacağım.

Constructor (Yapıcı Metot) : Constructor bir sınıftan nesne oluşturulduğunda ilk çalışan metotlardır. Bu metotlar ile sınıflara ilk çalıştıklarında vermek istediğimiz değerleri verebilir, varsayılan değerlere farklı değerler atayabilir veya bir metot çalıştırabiliriz. Sınıflara işlevsellik kazandırırız.

public class kullan {
    public static void main(String[] args) {
        Telefon lenovo = new Telefon();
        lenovo.ekran = 6.3;
        lenovo.hafiza = 8;
        lenovo.ram = 5;
        lenovo.renk = "Lacivert";

        System.out.println(lenovo.ekran);
        System.out.println(lenovo.renk);
        System.out.println(lenovo.ram);
        System.out.println(lenovo.hafiza);
        lenovo.calitir();

        Telefon Samsung = new Telefon(5.5);
        Samsung.calitir();

    }

}

Yukarıda gördüğünüz gibi javada main metodu içerisinde Telefon lenovo= new Telefon(); bu parametre ile yeni bir nesne oluşturdum ve ismini lenovo koydum. Sonra bu lenovo ismindeki Telefon sınıfının özelliklerine yani değişkenlerine erişerek yeni değerler atadım. En son olarak da ekrana yazdırdım ve lenovo için çalıştır “calistir()” işlevini kullandım.
Sonraki kullanımda yine bu Telefon sınıfını kullanarak Samsung adında bir nesne oluşturdum ve bu sefer fark ederseniz parantez içerisinde bir değer gönderdim. (5.5) double olarak gönderdiğim bu değer ile program benim için Telefon sınıfı içerisindeki double değer bekleyen constructoru bularak bunun içerisindeki işlemleri yaptır. Burada ekran değişkenini 5.5 olarak güncelledi. Sonra bu değeri ekrana yazdırmak için Samsung.calitir();  parametresi ile yine sınıf içerisinde tanımladığım caistir işlevini kullandım ve yeni ekran boyutunu ekrana yazdırdım.

 

 

 

Leave a Comment

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.