Merhaba..
JAVA nesne tabanlı bir dil olduğu için OOP (nesne tabanlı programlama) yapısına uygundur. Bu yapıda adı geçen NESNE kavramı, önceden tanımlanmış bir CLASS'ın bilgilerini ve içeriğini kullanabilen CLASS çocuklarıdır.
CLASS (SINIF)
Java'da bir nesne oluşturabilmek için , öncelikle bu nesnesin türeyeceği bir CLASS oluşturmak gerekir.. Class'lar kendi içlerinde değişkenler,tanımlamalar ve metodlar (fonksiyon) oluşturabilirler.. Class isimleri yazılırken ilk harfleri büyük yazmak zorunluluk olmasada, kabul edilen JAVA yazım biçimlerine uygun olacaktır..
GENEL KULLANIM
class Class_Adi {
// alanlar(değişken,tanım vs)
// metodlar (fonksiyonlar)
}
Örneğin Araba isminde bir Class oluşturup , içine bazı değerler ekleyelim..
class Araba {
// class alanları (değişken,tanım vs)
Private String vites="Duz";
Public int kapi=5;
// class için metod (fonksiyon)
Public void model_yili() {
System.out.println("2014");
}
}
DENE
Yukarıda araba class'ı için VİTES ve KAPI değişkenleri ile MODELYILI() metodu oluşturulmuş olur. Artık bu Class tipindeki nesneler bu değerlere ulaşabilirler.
CLASS METODLARI
Class'lar içeriisnde belirtilen değerlerden biri metodlardır. Tüm programlama dillerinde kullanılan , fonksiyonlar ile aynı işlevdedir. Örneğin Araba class'ında modelyili() bir metoddur. İçerisinde kendine ait kodlar barındırır. Modelyılı metodu, ekrana 2014 yazdıracaktır..
Public void model_yili() {
System.out.println("2014");
}
Metodlar çağrılırken , metod adı yazılarak sonuna parantezleri eklenir. MEtod çağrıldığında içlerindeki kodlar otomatik olarak çalıştırılır ve program metodtan sonraki satıra geçer..
modelyili(); // metod cagrilir.
"Java Metodlar" konusunda metodlar için daha detaylı bilgiler bulabilirsiniz...
CLASS DEĞERLERİ İÇİN ERİŞİM BELİRTEÇLERİ
Değişken ve Metodlardan önce eklenen PRIVATE ve PUBLIC ekleri , bu değerlerin gizliliğini belirleyen parametrelerdir. Bunların dışında STATIC , PROTECTED gibi eklerde bulunur.
- PRIVATE : Tanımlanan değerin sadece bu class için ulaşılmasına izin verir..
- PUBLIC : Tanımlanan değere diğer classlardanda ulaşılmasına izin verir..
- PROTECTED : Tanımlanan değerin Class'ın bağlı olduğu paket ve alt class'lar tarafından kullanılmasıa izin verir..
- STATIC : MEtodlar için kullanılır.Static tanımşlanan bir metodu kullanmak için , önce nesne oluşturmaya gerek yoktur. Javadaki math.sqrt() gibi hazır kütüphane metodları STATIC olarak belirtilmiştir..
- DEFAULT : HErhangi bir gizlilik ön eki belirtilmediği durumlardır. Bu durumda tanımlanan değer sadece class'ın bağlı olduğu paket tarafından kullanılabilir.
OBJECT (NESNE)
Class oluşturduğumza göre , artık bu class'a bağlı bir nesne oluşturabiliriz. Nesneler oluşturulurken mutlaka hangi class tipinde olduğu başta belirtilmelidir. Nesnelerin MAIN class'ı içerisinde oluşturulması gerekir..
GENEL KULLANIM
Class_Adi Nesne_Adi = new Class_Adi()
Örneğin yukarıda oluşturduğumuz Araba Class'ı için FORD ve BMW adında bir nesneler oluşturalım..
class Main {
public static void main(String[] args) {
Araba ford=new Araba(); // ford adında araba nesnesi
Araba bmw=new Araba(); // bmw adında araba nesnesi
}
}
Yukarıda hem FORD hemde BMW artık Araba class'ının nesneleri oldukları için, class değerlerini kullanabilirler..
NESNE DEĞERLERİNE ULAŞMA
Ford , artık Araba Class'ının bir nesnesi olduğuna göre , bu class içerisinde tanımlanan değerlere ulaşabilir. Nesnelerin Class içerisindeki özellikleri kullanabilmeleri için nesne adı ile class özelliği arasına nokta (.) eklenir. Örneğin ford için class içerisinde belirtilen değerlere aşağıdaki gibi ulaşılabilir..
ford.vites // class değişkeni
ford.kapi // class değişkeni
ford.modelyili(); // class metodu
Vites, kapi, değişkenleri için oluşturulan değerler artık ford nesnesi için kullanılabilir. Örneğin ford'un bazı özelliklerini yazdıralım..
class Main {
public static void main(String[] args) {
Araba ford=new Araba(); // ford adında araba nesnesi
System.out.println(ford.vites);
ford.modelyili();
}
}
Düz
2014
Yukarıda ford nesnesinin vites değeri yazdırıldıktan sonra, modelyili() metodu çağrılmış. Metod içeriğine göre ekrana 2014 yazdırılır..
NESNE DEĞERLERİNİ DEĞİŞTİRME
Nesneler , ulaştıkları class değerlerinin içeriklerini kendilerine özgü olarak ta değiştirebilirler. Bu durumda Class içindeki asıl değerler etkilenmez.
class Main {
public static void main(String[] args) {
Araba ford=new Araba(); // ford adında araba nesnesi
ford.vites = "Otomatik"; // ford için vites değeri "otomatik" oluyor
Araba bmw=new Araba(); // bmw adında araba nesnesi
System.out.println(ford.vites); // ford vitesi yazdırılıyor
System.out.println(bmw.vites); // bmw vitesi yazdırılıyor.
}
}
Otomatik
Düz
Yukarıda FORD nesnesi için , vites değişkeni otomatik yapılmasına rağmen, sonra tanımlanan BMW nesnesi için vites değeri, Class'ta tanımlandığı gibi yani "Düz" olarak kalır.
ÖRNEK CLASS ve NESNE
Aşağıda, içerisinde nüfus , yüzölçümü ve bölge değişkenleri ile bu değişkenlerden nüfus yoğunluğu hesaplayan nufus_yogunlugu() metodu olan şehir Class'ı oluşturulmuş ve bu class'tan İZMİR ve İSTANBUL nesneleri üretilerek , nüfus yoğunlukları yazdırılmıştır..
JAVA
//yeni Class
class Sehir {
public double nufus;
public double yuzolcumu;
private String bolge="";
// class için metod (fonksiyon)
public double nufus_yogunlugu() {
double sonuc= yuzolcumu/nufus;
return sonuc;
}
}
class Main {
public static void main(String[] args) {
Sehir izmir=new Sehir();
izmir.nufus=1000;
izmir.yuzolcumu=1000000;
Sehir istanbul=new Sehir();
istanbul.nufus=10000;
istanbul.yuzolcumu=1500000;
System.out.println(izmir.nufus_yogunlugu());
System.out.println(istanbul.nufus_yogunlugu());
}
}
EKRAN
1000.0
150.0
ONLINE COMPILER ÜZERİNDE DENE
Görüşmek üzere...