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 publickelime, 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. publicdeğ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. privatedeğ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-privateBu 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. protecteddeğ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.

publicJava 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. staticanahtar 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ı mainstatic 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. throwsanahtar kelime

Muhtemelen bir yöntem bildiriminde görmüş olduğunuz başka bir anahtar sözcük daha vardır: throwsanahtar sözcük. Erişim değiştiricilerin ve staticanahtar 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. mainyö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
Bir yöntem bildiriminin genel biçimi

Nerede , , access modifiers ile değiştirilir veya hiçbir şey yoktur;publicprotectedprivate

yöntem statik ise, staticanahtar kelime görünür (statik olmayan yöntemler için yoktur)

Typedönüş değerinin türü ( voideğ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
mainYöntemi bildirmek

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 mainherhangi bir sonuç döndürmez. Dönüş türü void(tür yok).

Yöntem mainargümanları(!) alır: bir dizge dizisi. Ve parametre adı argsaklı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 Exceptionoluşabilir main().