1. Erişim değiştiricileri
Her yöntemden önce, programcılar sözde erişim değiştiricileri belirtebilir. Bunlar aşağıdaki anahtar kelimeleri içerir: public
, protected
, private
.
Bu erişim değiştiriciler, diğer sınıfların bir yönteme erişimini kısıtlamanıza izin verir.
Örneğin, anahtar kelimeyi bir yöntem bildiriminden önce yazarsanız private
, yöntem yalnızca bildirildiği sınıftan çağrılabilir. Anahtar public
kelime, herhangi bir sınıfın herhangi bir yönteminden işaretli yönteme erişim sağlar.
Bu türden toplam 3 değiştirici vardır, ancak bir yönteme 4 tür erişim vardır. Bunun nedeni, bir erişim değiştiricinin olmamasının da bir anlam ifade etmesidir.
Şuradan erişim... | ||||
---|---|---|---|---|
Değiştiriciler | herhangi bir sınıf | Çocuk sınıfı | onun paketi | onun sınıfı |
public |
Evet | Evet | Evet | Evet |
protected |
HAYIR | Evet | Evet | Evet |
değiştirici yok | HAYIR | HAYIR | Evet | Evet |
private |
HAYIR | HAYIR | HAYIR | Evet |
1. public
değiştirici
Değiştirici ile işaretlenmiş bir yönteme (veya değişkene veya sınıfa) programın herhangi bir yerindenpublic
erişilebilir . Bu, en yüksek açıklık derecesidir - herhangi bir kısıtlama yoktur.
2. private
değiştirici
Değiştirici ile işaretlenmiş bir yönteme (veya değişkene veya sınıfa) yalnızca bildirildiği sınıftanprivate
erişilebilir . Diğer tüm sınıflar için işaretli yöntem (veya değişken) görünmezdir. Sanki yokmuş gibi. Bu, en yüksek kısıtlama seviyesidir - yalnızca kendi sınıfı.
3. Değiştirici yok (varsayılan değiştirici)
Bir yöntem (veya değişken) herhangi bir değiştirici ile işaretlenmemişse, 'varsayılan değiştiriciye' sahip olduğu kabul edilir. Bu değiştiriciye sahip değişkenler veya yöntemler (hiçbiri olmadan), tanımlandıkları paketteki tüm sınıflar tarafından görülebilir . Ve sadece onlara. package-private
Bu değiştirici bazen değişkenlere ve yöntemlere erişimin, sınıflarının bulunduğu paketin tamamına açık olduğunu ima ederek, olarak da adlandırılır .
4. protected
değiştirici
Bir yöntem değiştirici ile işaretlenmişse protected
, ona aynı sınıftan, aynı paketten ve soyundan (yöntemin bildirildiği sınıfı miras alan sınıflar) erişilebilir. Bu konuyu Java Core arayışında daha detaylı inceleyeceğiz.
public
Java Sözdizimi görevinin sonuna ulaşana kadar değiştiriciyi tüm yöntemlerinizde (tüm sınıflarınız ve sınıf değişkenlerinizin yanı sıra) kullanabilirsiniz . Aktif olarak OOP öğrenmeye başladığımızda diğer değiştiricilere ihtiyacınız olacak.
Erişim değiştiricilere neden ihtiyaç duyulur?
Aynı anda onlarca ve yüzlerce programcı tarafından yazılan büyük projeler için gerekli hale gelirler.
Bazen bir programcının aşırı büyük bir yöntemi parçalara ayırmak ve kodun bir kısmını yardımcı yöntemlere taşımak istediği durumlar olabilir. Ancak aynı zamanda, karşılık gelen kod doğru çalışmayabileceğinden, diğer programcıların bu yardımcı yöntemleri çağırmasını istemez.
Böylece bu erişim değiştiricileri buldular. Bir yardımcı yöntemi private sözcüğüyle işaretlerseniz , sınıfınızdan başka hiçbir kod yardımcı yönteminizi göremez.
2. static
anahtar kelime
Anahtar sözcük static
, bir yöntemi statik hale getirir. Bunun ne anlama geldiğine daha sonra bakacağız. Şimdilik, statik yöntemlerle ilgili birkaç gerçeği hatırlamanız yeterli.
Gerçek 1. Statik bir yöntem herhangi bir nesneye eklenmez , bunun yerine bildirildiği sınıfa aittir. Statik bir yöntemi çağırmak için şunu yazmanız gerekir:
ClassName.MethodName()
Statik yöntemlere örnekler:
Sınıf adı | Statik yöntem adı | |
---|---|---|
Thread.sleep() |
Thread |
sleep() |
Math.abs() |
Math |
abs() |
Arrays.sort() |
Arrays |
sort() |
Statik yöntemi sınıfının içinden çağırırsanız, statik yöntemin adından önceki sınıf adı atlanabilir. Bu nedenle , çağrılan statik yöntemlerin her birinin adından önce yazmanıza gerek yoktur .Solution
Gerçek 2. Statik bir yöntem, kendi sınıfının statik olmayan yöntemlerine erişemez . Statik bir yöntem yalnızca statik yöntemlere erişebilir. Sonuç olarak, metoddan çağırmak istediğimiz tüm metodları main
static ilan ediyoruz.
Neden? OOP öğrenmeye başladığınızda ve statik yöntemlerin nasıl çalıştığını anladığınızda bu soruyu kendiniz cevaplayabileceksiniz.
3. throws
anahtar kelime
Muhtemelen bir yöntem bildiriminde görmüş olduğunuz başka bir anahtar sözcük daha vardır: throws
anahtar sözcük. Erişim değiştiricilerin ve static
anahtar kelimenin aksine, bu anahtar kelime yöntem parametrelerinden sonra gelir:
public static Type name(parameters) throws Exception
{
method body
}
Kesin anlamını biraz sonra istisnaları incelerken ele alacağız.
Ancak yüzeysel olarak değinmek gerekirse, throws anahtar sözcüğüyle işaretlenmiş bir yöntemin hatalar (istisnalar), yani sınıfın (ve onu miras alan sınıfların) örneklerini atabileceğini söyleyebiliriz Exception
. Bir sınıfta birkaç farklı türde hata oluşabiliyorsa, her birini virgülle ayırarak listelemeniz gerekir.
4. main
yöntem
Tüm değiştiricileri içeren bir yöntemin bildirildiği satır, bu yöntemin diğer sınıflardan ve yöntemlerden nasıl çağrıldığını etkiler. Yöntemin döndüreceği sonucun türünü etkiler ve çalışırken olası hataları belirtir.
Böyle bir satıra yöntem bildirimi denir ve aşağıdaki genel biçime sahiptir:
access modifier static Type name(parameters) throws exceptions
Nerede , , access modifiers
ile değiştirilir veya hiçbir şey yoktur;public
protected
private
yöntem statik ise, static
anahtar kelime görünür (statik olmayan yöntemler için yoktur)
Type
dönüş değerinin türü ( void
eğer sonuç yoksa)
Şimdi, yöntemin bildirimindeki tüm anahtar sözcüklerin ne anlama geldiğini muhtemelen anlamışsınızdır main
:
public static void main(String[] args) throws Exception
Yönteme erişim main()
, anahtar kelime ile belirtildiği gibi herhangi bir sınıftan mümkündür public
.
Yöntem statiktir, bu nedenle açıkça olarak çağrılabilir Solution.main()
.
Yöntem main
herhangi bir sonuç döndürmez. Dönüş türü void
(tür yok).
Yöntem main
argümanları(!) alır: bir dizge dizisi. Ve parametre adı args
aklımıza 'argümanlar' önerir. Program başladığında, ona bağımsız değişkenleri (bir dizi dizi) iletebilirsiniz. args
Yöntemdeki dizide yer alacaklar main()
.
Yöntemde (veya onun soyundan gelenler) gibi işlenmemiş hatalar Exception
oluşabilir main()
.
GO TO FULL VERSION