Java'da 'genel statik boşluk' ne anlama geliyor?


149

public static voidJava'da ne anlama geliyor?

Öğrenme sürecindeyim. Çalıştığım kitaptaki tüm örneklerde, public static voidkullanılan veya oluşturulan herhangi bir yöntemden önce gelir. Ne anlama geliyor?

Yanıtlar:


230

Tamamen farklı üç şey var:

public, yöntemin görünür olduğu ve diğer türdeki diğer nesnelerden çağrılabileceği anlamına gelir. Diğer alternatifler private, protected, packageve package-private. Buraya bakın fazla ayrıntı için bakın.

staticyöntem, sınıfın belirli bir örneğiyle (nesnesiyle) değil sınıfla ilişkilendirildiği anlamına gelir. Bu, sınıfın bir nesnesini oluşturmadan statik bir yöntemi çağırabileceğiniz anlamına gelir.

void, yöntemin dönüş değeri olmadığı anlamına gelir. Yöntem döndürülürse, bunun yerine intyazarsınız .intvoid

Bunların üçünün kombinasyonu en mainçok öğreticilerin içereceği yöntemde görülür .


12
Soru soran hala öğrenmekte olduğu için: bu anahtar kelimelerin sırası da önemlidir. İlk Bütün değiştiricileri ( public, static, privatedaha sonra, vs.) (dönüş tipi voidbu durumda).
Pindatjuh

1
@markbyres ok cevap anlıyorum, ana yöntem statik olmalı biliyorum ama neden halka açık bir fikrim yok ?? bunun özel bir nedeni var mı ??
hardik

9
Java runtime ortamı uygulamanızı başlatmak için ana yöntemi çağırmalıdır. özel olduğunda bunu yapamazdı.
Philipp

44

Üç kelimenin dik anlamları vardır.

public yöntemin diğer paketlerdeki sınıflardan görülebileceği anlamına gelir.

static, yöntemin belirli bir örneğe eklenmediği ve " this" içermediği anlamına gelir . Aşağı yukarı bir işlevdir.

voiddönüş türüdür. "Bu yöntem hiçbir şey döndürmez" anlamına gelir.


22

Kamu anahtar kelime programcı sınıfı üyelerinin görünürlüğünü kontrol sağlayan bir erişim belirteci vardır. Bir sınıf üyesinden önce genel halka varsa, o üyeye bildirildiği sınıfın dışındaki kodla erişilebilir. (Kamunun tersi özeltir, bu da bir üyenin kendi sınıfının dışında tanımlanan kod tarafından kullanılmasını önler.)

Bu durumda, main( )program başlatıldığında sınıfının dışındaki kod tarafından çağrılması gerektiğinden, genel olarak bildirilmelidir.

Anahtar kelime statik verir main( )sınıfın belirli bir örneğini gerek kalmadan çağrılacak. main( )Herhangi bir nesne yapılmadan önce Java yorumlayıcısı tarafından çağrıldığından bu gereklidir .

Void anahtar kelimesi derleyiciye main( )bir değer döndürmediğini söyler . Gördüğünüz gibi yöntemler de değerler döndürebilir.


18

Demek oluyor:

  • public - her yerden çağrılabilir
  • static - herhangi bir nesne durumu yok, bu yüzden bir nesneyi örneklemeden arayabilirsiniz
  • void - hiçbir şey döndürmez

Bir geri dönüş eksikliğinin çok fazla bir şey yapmadığı anlamına gelir, ancak örneğin veritabanında bir şeyler kaydediyor olabilirsiniz.


4

Üç anlama geliyor.

İlk public , başka herhangi bir nesnenin ona erişebileceği anlamına gelir.

static yani fonksiyonun çağrılmadan önce içinde bulunduğu sınıfın başlatılması gerekmez.

void , işlevin bir değer döndürmediği anlamına gelir.

Sadece öğrendiğiniz için, sınıfları öğrenene kadar ilk ikisi hakkında çok fazla endişelenmeyin ve üçüncüsü, işlevleri yazmaya başlayana kadar (önemli değil) çok fazla önemli değildir.

Programlamayı öğrendiğimde ve size ilettiğim en iyi tavsiye, hemen anlamadığınız küçük ayrıntılardan endişe etmeyin. Temel bilgiler hakkında geniş bir genel bakış edinin, ardından geri dönün ve ayrıntılar için endişelenin. Bunun nedeni, public static voidilk programlarınızda size bir sürü başka şey öğretmeden gerçekten iyi açıklanamayan bazı şeyleri (örneğin ) kullanmanızdır . Yani, şimdilik, bunun böyle yapıldığını kabul et ve devam et. Onları kısa sürede anlayacaksınız.


3

Tipik üst düzey sınıf göz önüne alındığında. Yalnızca genel ve değiştirici erişim değiştiricileri en üst düzeyde kullanılabilir, böylece herkese açık görünür veya hiç erişim değiştirici görmezsiniz.

`` static`` kullanılır, çünkü en üst düzeyde gerçek bir nesne oluşturmanız gerekmeyebilir (ancak bazen her zaman statik göremeyeceğiniz / kullanamayacağınız başka nedenler olabilir. ama bu en üst düzeydeki tipik örnek.)

voidkullanılır, çünkü genellikle üst düzeyden (sınıf) bir değer döndürmezsiniz. (bazen NULLboşluk dışında bir değer döndürmek isteyebilirsiniz, özellikle de bir değer atadığınız en üst düzeyde bir nesne bildirdiğinizde, başlattığınız durumlarda her zaman kullanılmayabilir).

Feragatname: Ben kendim bir acemiyim, bu yüzden bu cevap yanlışsa lütfen beni asmayın. Gün geçtikçe ben bir geliştirici değil bir teknoloji işe alımcısıyım; kodlama benim hobim. Ayrıca, her zaman yapıcı eleştiriye açıkım ve öğrenmeyi çok seviyorum, bu yüzden lütfen herhangi bir hatayı belirtmekten çekinmeyin.


2
  • public sınıfa sınıfın / nesnenin herhangi bir yerinden veya paketin veya sınıfın dışından erişebileceğiniz anlamına gelir
  • static ifade bloğunun sadece 1 kez kullanıldığı sabit anlamına gelir
  • void dönüş türü olmadığı anlamına gelir

6
Bu soru yeterince ele alındı, belki eski soruları yinelenen bilgilerle cevaplamak yerine yeni soruları cevaplamayı deneyin. Teşekkürler.
Kev

Tıpkı fil hakkında açıklama yapmak gibi. İnsanlar nerede durduğuna bağlı olarak açıklamaya çalışırlar. Yukarıdaki tüm cevaplardan memnunum, ama merak ediyorum nasıl birisi "Bir kitap java satın al" diyebilir.
Sulung Nugroho

2

Public - sınıfın (programın) başka herhangi bir sınıf tarafından kullanılabileceği anlamına gelir.

Static- bir sınıf oluşturur. Değişkenlere ve yöntemlere de uygulanabilir, bu da onları sınıfın belirli bir örneğine yalnızca yerel yerine sınıf yöntemleri / değişkenleri yapar.

Void- Bu, sınıf işlemeyi tamamladığında hiçbir ürünün iade edilmediği anlamına gelir. Bunu ana sınıfa bir dönüş değeri sağlayan yardımcı sınıflarla karşılaştırın, bunlar işlevler gibi çalışır; bunların beyanda geçersizdir.


0

staticbu, yöntemin o sınıfın belirli bir örneği (nesnesi) ile değil, sınıfla ilişkili olduğu anlamına gelir. Bu, sınıfın bir nesnesini oluşturmadan statik bir yöntemi çağırabileceğiniz anlamına gelir. Çünkü bir staticanahtar kelime kullanımı main()ilk çağrı yöntemidir .. staticörnek için herhangi bir nesneye gerek yoktur ... yani, main( )herhangi bir nesne yapılmadan önce Java yorumlayıcısı tarafından çağrılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.