- Access modifiers: public , protected , private
Class yalniz public veya default ola biler. protected veya private ola bilmez.
Default access package level kimi dusunule biler.Cunki default access olan class yalniz eyni paketin icinde olan classlar terefinden gorule biler.Diger paketlerde olan classlar terefinden deyil.Meselcun:
package A;
class Beverage{ }
package B;
class Tea extends Beverage { }
NOTE: Xeta verecek.Cunki Beverage class-i Tea class-in gore bilmez.Cunki ferqli paketdedirler.
Bunun compile olmasi ucun ya gerek her iki class-i eyni paketin icine qoyam ,yadaki Beverage class-mi public edemki tea class-na gorunsun.
Public access butun classlar 1-1in gore biler hetta ferqli paketlerde olsalar bele.Bununla bele eger classlar ferqli paketde yerlessede onlari istifade etmek ucun gerek hemin class-in oldugu paketi import edek.
Eger 1 class Final olaraq mueyyen edilibse o class hec 1 class-i extend ede bilmez.eger etse xeta verer.1 class eyni anda hem final hemde abstract ola bilmez.
Abstract class-lar objesi yaradilmayan classlardir.Eger Abstract class-in objesi yaradilsa xeta verecek.Burada esas meqsed onun extend etmesidir diger classlari.Tesevvur edinki sizin 1 Car adinda class-niz var ve icerisinde umumi metodlar saxliyir.Ancaq siz istemirsiz kimse Car class-nizin objesini yaratsin.Buna gore hemin class-i abstract edirikki kimse onun objesini yarada bilmesin.Abstract class-in icinde hem is goren metodlar hemde abstract metodlar olur.eger metodun 1 denesi abstract olarsa o zaman Class avtomatik olaraq abstrac olacaqdir.Abstract metodlarin { } olmur. ; ile bitir sonlari.tutaqki projemizde 1 database baglantimiz var ve baglandigimiz bu database-de insert,update,delete ve create metodlarini yazmaliyiq.Bu metodlar icerik olaraq hamisinda eynidir.Ancaq hansi database-e baglandigini ve her informasiyanin database ucun ferqli oldugunu nezere alaraq bele 1 sey dusundum.4 metodum is goren metodlar olmali ancaq database ile connection quran metodumun ici ise bos olmali ki , her istifadeci menim bu metodumu islederken connection metodunu doldurmali ve sonra diger metodlari istifade etmeli.Buradan basa dusuremki , menim isimi abstract class gore biler,cunki icine hem doldurmaq istediyim metodu hemde istifadecinin dolduracagi abstract metodu yaziram.
abstarct class-da polimorfizm mumkundur.1 abstract class diger 1 abstract class-i extend ede biler.Abstract metodlar ancaq public ve default olur.private static final ola bilmez.
Interface 1 class-da olmasi lazim olan metod ve propertileri tanimlayan 1 qurulusdur.Normal 1 class deyil.sadece neyin edilmesini gosterir ancaq nece edilmesini gostermir.Interface-in metodlarinin ici bos olur yeni ancaq abstract metodlar olur.Metodlari yalniz public ve abstract ola biler.Interfacein ozude public abstract olur.1 class interface-i implement eden zaman onun icindeki metodlari override etmek zorundadir.javada single inheritance movcuddur multi inheritance yox.Yeni 1 class yalniz 1 class-i extend ede biler 1den cox class-i deyil.Interface-in objesi yaradila bilmez.Interface-in constructoru yaradila bilmez.yaradilsa error verecek.Interface-in deyisenleri public static ve finaldir.ona gore hecvaxt verilen deyeri deyisdirile bilmez.deyisdirilse xeta verecek.Interface deyisenleri CONSTANTLAR adlanir .Interface 1 den cox interface extend ede biler.basqa hec 1 seyi extend ede bilmez ozunden basqa.Polimorfizm burdada gecerlidir.
Private access ancaq oz class-nin icindekilere gorunur sub class-da bele gorunmur.Private metodlar inherit oluna bilmir.cunki gorunmurler sub class-da.
Protected access default access ile demek olarki eynidir.ancaq 1 ferqi var.protected access inheritance vasitesile basqa paketde olsa bele sub class terefinden access oluna biler.Protected=Inheritance.
Subclass protected deyisen veya metodlara super class uzerinden dor( . ) operatoru ile access ede bilmez.eger etse xeta verecek.
Access modifier-ler local deyisenlere tetbiq olunmur.Onlar ancaq final ola biler.Eger local deyisen Finaldan basqa her hansi 1 sey qebul ederse o zaman error verecek.
Final olan 1 metod sub class terefinden override oluna bilmez.eger olsa error verecek.
Hiç yorum yok:
Yorum Gönder