CodeGym /Java Blogu /Rastgele /Eski Seviye 06
John Squirrels
Seviye
San Francisco

Eski Seviye 06

grupta yayınlandı

Bir Java Geliştiricisinin Yol Haritası

Bir arkadaşım, geliştiricilerin neden her zaman bu kadar mutlu olduğunu merak ediyordu. Aldığı cevap basit ve şaşırtıcıydı: Canları ne istiyorsa onu yapıyorlar ve çok para kazanıyorlar. Yazılım geliştiricilerin dünyasına hoş geldiniz. Eski Seviye 06 - 1

yazılımcı maaşı

Size geliştiricilerin maaşlarından bahsetmek istiyorum. Arazi maaşlarla nasıl yatıyor, nereye gitmeli ve nerede çalışmamalısınız. Bir geliştirici değilseniz ve kendi başınıza çözmeye çalışırsanız, oldukça tartışmalı bir veri elde edebilirsiniz. Ana nokta, bir geliştiricinin maaşını etkileyen ana faktörün nitelik değil, istihdam yeri olmasıdır. Bazen, eşit nitelik düzeyi göz önüne alındığında, iyi ve kötü istihdam yeri arasındaki fark 2 ila 10 kat(!) Olabilir. Bir ayda iki kat daha nitelikli hale gelip iki kat daha fazla ödeme alamazsınız. Ancak bir ay içinde iş yerini değiştirebilir ve iki kat daha fazla maaş alabilirsiniz. İki aylık akışta bir kez maaşım üç kat arttı (!) – Unutulmaz bir deneyim. Öyleyse, hangi yerin en iyi olduğunu bulalım.
  1. Bir şirketin ana işinin yazılım geliştirme olup olmadığı
  2. Şirketin küresel veya yerel pazara yönelik olup olmadığı
  3. Ana ofis nerede bulunur: gelişmiş ülke veya gelişmekte olan ülke
Çalıştığınız şehrin alakasız olduğunu unutmayın. Yani, Barselona'da New York'taki arkadaşınızdan beş kat daha az kazanıyorsanız, bahsettiğim faktörler muhtemelen etkilemiştir. 

Belirli sayılar

Maaşlar dünyanın farklı yerlerinde farklı olduğu için, başlangıç ​​noktası olarak 5 yıllık deneyime sahip Kıdemli Java Geliştiricisi maaşını alıp “en fazla 5 yıl” olarak adlandırmayı öneriyorum. Aşağıdaki tüm rakamlar bu miktarın yüzdesi olarak verilecektir. İşte dünyanın farklı şehirlerindeki “maksimum 5 yıllık” maaşlardan bazı örnekler: Eski Seviye 06 - 2Aşağıda, 5 yıllık deneyime sahip bir Java Kıdemli Geliştiricisinin çalıştığı şirkete göre ne kadar kazanabileceği gösterilmektedir: Eski Seviye 06 - 3Eski Seviye 06 - 4Mevcut durumun en garip yanı nedir? Programcıların yarısı 1. ve 2. seviye şirketlerde çalışıyor. İşin püf noktası ne bilmek ister misin? 3. ve 4. seviye şirketlerde yüzlerce açık pozisyon var. Bu şirketler size daha yüksek maaşlar ve genellikle daha iyi çalışma koşulları sunmaya isteklidir. İki Java Junior tanıyorum, biri “maksimum 5 yıllık” maaşın yaklaşık %3'ünü (seviye 1 şirket) ödeyen bir işe girdi ve diğeri “maksimum 5 yıllık” maaşın %30'unu (seviye 4) ödeyen bir işe girdi. Öyleyse neden daha az olsun? Programcılara olan talep, teklifi aşıyor – size daha az ödeme yapılan yerlerde çalışmaya gitmeyin! Sonuç 1: Java geliştiricileri (herhangi bir deneyime sahip) için ortalama maaş, “maksimum 5 yıllık” maaşın %40-%50'sidir. Sonuç 2: 1. ve 2. seviye şirketlerde çalışmıyorsanız ve 3. ve 4. seviye şirketlerde çalışıyorsanız, 5 yıllık ortalama maaşınız “5 yıllık maksimum” maaşın yaklaşık %90-%110'u kadar olacaktır.

Aptalca şeyler yapmazsan neler başarabilirsin?

Programlama alanında kendi kendine eğitiminiz üzerinde hemen şimdi çalışmaya başlarsanız, maaşınız şöyle görünebilir: Eski Seviye 06 - 5

Plan

0-3 ay (Öğrenci)

Programlama hakkında çok az şey biliyorsun. Bunu okulda veya bir kolejde temel düzeyde okumuş olabilirsiniz. Yapmanız gereken programlamayı öğrenmek ve Java öğrenmek. Hedefiniz, seviye 3 veya üzeri bir şirkette Java Junior Developer olarak iş bulmaktır. Planın ilk üç ayında hiçbir şey alamayacaksınız çünkü programlamayı yeni öğreniyorsunuz. Ama ne kadar erken başlarsan o kadar iyi. En iyi zaman ŞİMDİ. Gelecekte, bir ailen ve bir sürü kredin olduğunda, yeniden kalifiye olmak çok daha zor olacak. Hatanızı düzeltmek için, en azından bir yıllık normal yaşam için ödemek üzere bir kenara para ayırmanız gerekecek. Aptalca hatalar yapmayın.

3-15 ay (Java Junior Developer)

Zaten bir yazılım geliştiricisi olarak çalışıyorsunuz ve deneyiminiz her geçen gün artıyor. Rahatlama. Küreklere dinlenmeden önce yapacak çok şeyin var. Yapmanız gereken şey – Orta Düzey Geliştirici olarak ihtiyaç duyacağınız teknolojileri incelemek. Bunlar ne? Dünya sürekli değişiyor. Sana tavsiyeler yükleyeceğim ve hayat her şeyi değiştirecek. Web'de birkaç boş pozisyon bulun ve neye başvurmanız gerektiğini görün. Bruce Eckel'in "Java'da Düşünmek" adlı kitabını okuduğunuzdan emin olun. Java Junior Developer olarak çalışmaya başladığınız ilk yıldaki hedefiniz , Java Middle Developer seviyesine ulaşmaktır. Kimse bunun kolay olacağını söylemiyor ama hedef odaklı bir insan için bu mümkün. Maaşınızı anında "maksimum 5 yıl"ın %40'ına kadar artıracaktır (SF ve Londra için 50.000$, Bangalore için 6.000$).

2-b yıllık programlama (Java Orta Geliştirici, seviye 1)

Geçen yıl iyi bir iş çıkardınız ve şimdi bir Java Orta Düzey Geliştiricisisiniz. Kıdemli Java Geliştirici maaşının %50'sini kazanarak oldukça iyi yaşayabilirsiniz. İş yerinde size bazı ciddi görevler veriliyor ve deneyiminiz önemli ölçüde artıyor. İki veya üç yıl içinde Kıdemli Java Geliştiricisi düzeyine ulaşacaksınız. Aceleye gerek yok. Zaten maaşta büyük artışlar almayacaksın. Yapmanız gereken tasarım modellerini öğrenmek, McConnell's Code Complete'i okumak. Kodunuzun kalitesini ve ekip becerilerinizi mükemmelleştirin. Her ay bilgisayar programlama üzerine 1 kitap okuma kuralı oluşturun. Sonra, 4 yıl içinde diğerlerinden 50 kitap daha akıllı olacaksın. Ertelemeyin: daha fazla boş zamanınız olmayacak, ayrıca büyük olasılıkla bir aile kuracaksınız veya varsa, daha da büyüyecek. Senin hedefinKıdemli Java Geliştiricisi olarak uzmanlaşmak için birkaç teknoloji seçmektir. Hepsini öğrenemezsin, biliyorsun. Ve tek bir uzmanlık alanında guru olmak her zaman için iyi bir karardır. Eski Seviye 06 - 6

3-b yıllık programlama (Java Orta Geliştirici, seviye 2)

Artık deneyimli bir Orta Düzey Geliştiricisiniz ve Kıdemli Geliştirici olmayı düşünüyorsunuz. Keyifli olduğu kadar prestijli. Maaşınız “maksimum 5 yıl”ın %60'ını aşıyor (Bangalore'da 10.000 $, Kiev'de 25.000 $, Berlin'de 40.000 $, New York'ta 80.000 $). Bu andan itibaren talep üzerine sizin gibi profesyoneller için teklif yükseliyor. Her zaman birkaç gün içinde bir iş bulabilirsin ve neredeyse hiçbir zaman şu an kazandığından daha az kazanamayacaksın. Bu, elbette, aptalca bir şey yapmazsan. yapman gereken şeyseçtiğiniz teknolojileri incelemeye devam edin. Daha iyi çalış. İşvereninizin iyiliği için değil, kendi iyiliğiniz için. Gelecek vaat eden teknolojileri içeren projelere katılmak için başvurun (şu anda bu makalenin yazıldığı sırada BigData gibi). Her halükarda günde 8 saatinizi ofiste geçireceksiniz, bunun için neden biraz daha para almıyorsunuz ve daha da önemlisi, gelecekte ihtiyaç duyacağınız en değerli deneyim. Amacınız yeni bir iş bulmak. İyi bir ekip her zaman bulunur. Yeni projeler ve teknolojilerle karşılaşacaksınız. Koltuğunuza kök salmanıza gerek yok. Hâlâ üçüncü düzey bir şirkette çalışıyorsanız, dördüncü düzey bir şirkette çalışmayı düşünün.

5. yıl programlama (Java Kıdemli Geliştiricisi, seviye 1

Artık bir Kıdemli Geliştiricisiniz. Belki de haketmedin ve hissediyorsun. Yine de tebrik ederim. Şu anda bulunduğun konuma layık olup olmaman önemli değil, önemli olan gelecekte buna layık olman. İyi bir iş bulmanın ve gereken seviyeye geldikten sonra bunun tersinin daha iyi olduğu konusunda hemfikir olacağınızı düşünüyorum. Ayda bir kitap okuma tavsiyemi umarım unutmamışsınızdır? Artık herhangi bir öğrenci bilgi ve becerilerinizi kıskanacak. Daha spesifik olmak gerekirse, onlar için dua edecek. Bir düşünün: ciddi bir kazancınız var, “maksimum 5 yıllık” maaşın %90'ına yakın. Muhtemelen hala gençsin. Dünya ayaklarınızın altında. yapman gereken şeyseçtiğiniz teknolojileri yeniden değerlendirmek için. Belki de uzmanlığı değiştirmeniz gerekir. Dünya değişti, teknolojiler değişti ve son iki yılda oldukça fazla bilgi edindiniz. Şimdi seçtiğiniz şey, önümüzdeki birkaç yıl boyunca sizin için manşet olacak. En sevdiğiniz teknolojileri seçme zamanı. Amacınız büyüme yönünüzü seçmektir. Sayıları çoktur, kimse hepsini adlandıramaz, ancak seçiminiz hemen şimdi yapılmalıdır. Bugün küçük bir değişiklik yaparsanız, gelecekte büyük bir değişiklik elde edeceksiniz.

6. yıl programlama (Java Kıdemli Geliştirici, seviye 2)

Geleceğinize karar verdiniz ve hayalinizin gerçekleşmesi için çalışıyorsunuz. İlerleme arzusuyla birlikte doğru seçilmiş bir yön ve sonuç uzun sürmeyecek. Tebrikler. Hayalini gerçekleştiren bir kişinin daha olduğunu görmek beni mutlu ediyor. Derin bir gerçek var. İnsanlar genellikle bir yılda başarabileceklerini abartır ve beş yılda yapabileceklerini hafife alır. Beş yıl öncesine bakın. Böyle. Yapmanız gereken akılsız kararlardan kaçınmak ve tembel olmamaktır. Amacınız yön seçmek ve ilerlemek. Yoksa burada bittiğini mi düşündün? Mezuniyetini hatırla. Bu bir son değil, sadece başlangıç.

Gelecekteki uzmanlığınız

Eski Seviye 06 - 7Teknik uzman (üst branş), yönetim (alt branş) veya kiralık profesyonel/bağımsız danışman (orta branş) olarak büyüyebilirsiniz. Her şey neyi tercih ettiğinize bağlı.

Java Developer'ın kariyeri

Geliştiricinin kariyeri diğerlerinden farklıdır. İyi para kazanmak için yönetici olmanıza gerek yok. Bir Kıdemli Geliştiricinin yönetici-patronundan daha fazla kazandığı sıklıkla olur. Ne kadar çok deneyim kazanırsanız, patronunuzla iş ilişkileriniz o kadar güçlü olur, "patron-ast"tan "yıldız ve yönetici"ye dönüşür. Geliştiricilerin, projeleri ve boş pozisyonları seçtiklerini bildikleri için şımarık . Kendimiz için mutlu olalım. Peki bu kadar değerli ve dünya çapında popüler bir geliştirici olmak için neye ihtiyacınız var? En çok talep edilen ve yeni teknolojilerde büyük deneyime sahip olmalısınız. Bu nasıl elde edilir? Aşağıya bakınız. Eski Seviye 06 - 8Developer olarak işe girer girmez başınıza iki şey gelmeye başlar; yine de her zaman görünür değiller. 1. Gerçek projelerde deneyim kazanır ve hızla gelişirsiniz. Bu işte bir yıl, size üniversitede 5 yıldan daha fazla deneyim sağlar. Tecrübe o kadar önemli bir konu ki, açılan ilanlara “Java geliştiricisi 3 yıllık tecrübe gerekiyor” yazıyorlar. 2. Günde 8 saat yeni teknolojiler çalışıyorsunuz ve bunun için iyi para alıyorsunuz. Bu gerçeği gerçekten abartamazsınız. Bazı durumlarda, edindiğiniz beceriler o kadar değerlidir ki, onları elde etmek için ücretsiz olarak çalışabilir, hatta ödeme yapabilirdiniz. Üzerinde çalışacağınız projeleri akıllıca seçerseniz, baş döndürücü bir yazılım geliştirici kariyerine sahip olmak üzeresiniz. Peki… ne seçilir? Çoğu zaman hangi teknolojinin yararlı olacağını bilmezsiniz, bu nedenle "beğenip beğenmemek" ve "moda trendleri" arasında seçim yapmaya başlarsınız. Şanslı olabilirsin ya da olmayabilirsin. Bu yüzden gideceğiniz yeri önceden bilseniz iyi olur. Programcılar için gelişmenin tonlarca yolu var, bu yüzden basitleştirmek için bunlardan birkaçını seçeceğim ve ilerideki durum vizyonumu yazacağım. Bu kalıbın katı bir çizgi olduğunu düşünmeyin; açıklığa kavuşturmak için sunulan şeylerin basitleştirilmiş bir görünümüdür.

İki yüz yaşındaki geliştirici

En çok programlamayı seviyorsanız, o zaman bu sizin yolunuz: Kıdemli Geliştirici, ardından Teknik Lider Geliştirici ve bir mimar. Bu şekilde 50 yıl ve daha uzun süre geliştirici olarak çalışabilirsiniz. Çoğu durumda Kıdemli Geliştiricilerin ve Teknoloji Lideri Geliştiricilerin maaşları, yöneticilerininkinden fazladır. Öyleyse paranızın karşılığını alın.

Müdür. diğerleri gibi olmadığın için şanslısın

Düşmanın yanına gittin. Şaka yapıyorum. Harika organizasyon becerileri keşfederseniz, yollarınız: Takım Lideri ve ardından Proje Yöneticisi. Size bölüm başkanı olma ve kendi işinizi açma şansı verecektir. İstediğin bu, değil mi?

Ev kalbinin olduğu yerdedir

Eski Seviye 06 - 9Halihazırda bir aile kurduysanız , belki de ekonomisi güçlü bir ülkede güzel ve sakin bir yaşam sürmek istersiniz. Belki Kanada, ABD, İsviçre ve hatta Avustralya'ya taşınmayı düşünürsünüz. Mükemmel becerileriniz ve talep gören bir mesleğiniz var. Bulaşıkları yıkamaktan başlamanıza gerek kalmayacak. Java Kıdemli Geliştiricisi olarak başlayacaksınız. Muhtemelen, çok kazanıyor. Fena değil ha?

Napoli'yi görün ve ölmeyin.

Henüz bir ailen yok ve seyahat etmeyi seviyorsun . oMasa senin her şeyin. Bir müşteri bulun, saat başına 20-50$'lık bir ücreti kabul edin, yanınıza bir dizüstü bilgisayar alın ve gidin! Maaşınız dünyanın herhangi bir yerinde yaşamak için yeterli olacaktır. Neden hayallerinizi gerçekleştirmeye hemen başlamıyorsunuz?

Programlamak istemiyorum, ben bir kızım..

Eğer bir kızsanız , doğum iznine ihtiyacınız olabilir . Kulağa cinsiyetçi bir şaka gibi geliyor, ki öyle. Yine de, içinde çok fazla sağduyu var. Büyük olasılıkla, doğum izni alarak çok fazla doğum izni parası alabilirsiniz (yüksek sosyal korumaya sahip ülkelerde). Hiçbir şey ödemeyen şirketler var ve iyi ödeyenler var. Öğrencilerimden biri doğum iznine giderken yıllık maaşının üçte birini aldı. Ve bu, 2009 baharında işten çıkarmalar sırasında oldu. Ve bir buçuk yıl içinde en azından Orta Geliştirici olarak geri dönebilirsiniz.

Seviye 6

Eski Seviye 06 - 10

1 Elly. Nesne görünürlüğü. hükümsüz

- Selam dostum! - Merhaba Elly! Bugün bana ilginç bir şey anlatır mısın? -Bugün size bir cismin ömründen bahsedeceğim . Bir nesne oluşturulduktan sonra, en az bir değişken adresini depolayana kadar (en az bir nesne referansı vardır) var olur (yaşar). Artık referans yoksa, nesne ölür. Örnekler: Eski Seviye 06 - 11- «kedi Tommy» nesnesi, yaratıldığı andan itibaren tek satırda bulunmaktadır. Bir sonraki satırda, referansını depolayan tek değişken null olarak ayarlanır ve Java sanal makinesi nesneyi yok eder. - «cat Sammy» nesnesi oluşturulduktan sonra cat1 değişkeninde saklanır. Veya daha doğrusu, cat1 nesneye bir referans depolar. Daha sonra bu referansın altındaki birkaç satır cat2 değişkenine kopyalanır. Bundan sonra başka bir nesneye yapılan referans cat1'de saklanır ve "cat Sammy" referansı sadece cat2'de kalır. Son olarak, main yönteminin son satırında, nesneye yapılan son başvuru null olarak ayarlanır. - «cat Maisy» nesnesi yaratıldığı andan itibaren tek satırda bulunmaktadır. Bir sonraki satırda cat2 değişkenine başka bir değer atanır ve «cat Maisy» referansı kaybolur. Nesne ulaşılamaz hale gelir ve çöp (ölü) olarak kabul edilir. - «cat Ginger» nesnesi, yaratıldığı andan itibaren yöntemin sonuna kadar mevcuttur. Çalışma zamanında, yöntemden çıkıldığında, cat1 değişkeni yok edilecek ve "cat Ginger" nesnesinden sonra da yok edilecektir. - Apaçık. - Bununla birlikte, Cat nesnesini bir yöntemde yaratır ve referansını bir sınıf değişkeninde saklarsanız, mevcut başka bir nesneden ona bir referans olduğu sürece Cat var olacaktır. - Genellikle bir nesne hemen yok edilmez. Java sanal makinesi, kullanılmayan nesneleri kaldırmak için zaman zaman çöp toplamayı etkinleştirir. Bunu sana daha sonra anlatacağım. - Bir değişkenin bir nesne referansını depolamayı durdurmasını istiyorsanız , ona boş değer veya başka bir nesneye referans atayabilirsiniz .

2 Profesör, Çöp toplama

Eski Seviye 06 - 12- Selam dostum! İşte Java'daki çöp toplama hakkında yararlı bir bağlantı. Bu kesinlikle benim mükemmel derslerim değil, ama bu yeterince iyi: Java Çöp Toplama Temelleri

3 Elly, bitir

- Tekrar merhaba! Şimdi size finalize() yöntemine kısa bir giriş yapacağım . Bu yöntem, nesne yok edilmeden önce Java sanal makinesi tarafından nesne üzerinde çağrılır. Aslında, bu yöntem yapıcının tersidir. Bu yöntemde, bir nesne tarafından kullanılan kaynakları serbest bırakmak mümkündür. - Object sınıfında bu yöntem vardır, bu nedenle her sınıfta buna sahiptir ( Java'daki tüm sınıfların Object sınıfından miras alındığı ve onun yöntemlerinin bir kopyasını içerdiği kabul edilir ). Sınıfınıza finalize() yöntemini yazarsanız, bu sınıfın nesneleri yok edilmeden önce çağrılacaktır. Örnek: Eski Seviye 06 - 13- Anlaşıldı. - Ama bir şey var. Java sanal makinesi bu yöntemi çağırıp çağırmamaya kendisi karar verir.Çoğu zaman, yöntemde oluşturulan ve çıktıktan sonra çöp olarak bildirilen nesneler, herhangi bir finalize() yöntemi çağrılmadan hemen yok edilir. Bu yöntem, harici (JVM dışı) kaynak tahsisi üzerinde bir kontrol aracıdır. Nesnenin yok edilmesini istediğinizde, kullanılan tüm harici kaynakları serbest bırakmanız ve saklanan referansları sıfırlamanız daha iyi olur. Size bu yöntemin avantajlarını ve çalışma detaylarını 10 veya 20 seviyede anlatacağım. Bu arada, iki şeyi bilmelisiniz: böyle bir yöntem var ve ( sürpriz! ) her zaman çağrılmıyor.

4 Elly, Nesne ömrü

- Ayrıca size nesnenin ömrü hakkında birkaç ilginç şey söylemek istiyorum. Java'da nesneyi kazara kaybetmek çok zordur; bir nesne referansınız varsa, nesnenin kesinlikle canlı olduğu anlamına gelir. - Bir nesne referansının içinde bu nesnenin bir numarasını – adresini bellekte saklar. Bu sayıyı değiştiremez, artıramaz veya azaltamazsınız. Hafızada sadece adres varken referans oluşturamazsınız. Yalnızca yeni bir nesne oluşturabilir ve referansını bir değişkene atayabilirsiniz. Yeni bir referans almanın tek yolu bu. - Anlıyorum. Yani, tüm nesne referanslarını null (silme) olarak ayarlarsam, nesne referansını asla alamayacağım ve ona erişemeyeceğim? - Evet. Ancak çoğu zaman bunun tersi doğrudur - kullanılmayan çok fazla canlı nesne vardır.Çoğu program düzinelerce nesne oluşturur ve bunları çalışma zamanında farklı listelerde saklar, ancak bu listeleri asla temizlemez. - Çoğunlukla, programcılar istenmeyen nesneleri "silinmiş" olarak etiketler, hepsi bu. Listelerden çıkarılması kimsenin umurunda değil. O kadar büyük Java programları şişme eğilimindedir - kullanılmayan nesneler bellekte canlı kalır. - Bu kadar. Gelecekte her zaman dikkatinizi kullanılmayan nesnelere ve bunların uygun şekilde imha edilmesine çekeceğim. - ОK, teşekkürler. Referanslarla ilgili birkaç şeyi açıklığa kavuşturdunuz.

5 Diego, Nesne ömrü görevleri

- Selam dostum! İşte size birkaç görev:
Görevler
1 1. Cat sınıfının finalize() yöntemi Korumalı
bir yöntem yazın void finalize() , Cat sınıfında Fırlatılabilir atar
3 2. Kedi ve Köpek Sınıfları ve her sınıf için finalize() yöntemi
Her Kedi ve Köpek sınıfında , ekrana nesnenin yok edildiğini belirten bir mesaj görüntüleyen bir finalize() yöntemi yazın.
3 3. Cat sınıfından 50.000 nesne ve Dog sınıfından 50.000 nesne
Bir döngüde Cat sınıfından 50.000 nesne ve Dog sınıfından 50.000 nesne oluşturun. (Java sanal makinesi kullanılmayan nesneleri yok edecektir, bu nedenle finalize() yöntemi en az bir kez çağrılacaktır).
4 4. Cat sayacı Cat sınıfı yapıcısında [public Cat()], cat sayacını (aynı sınıfın statik değişken catCount) 1 artırın . finalize()
yönteminde 1 azaltın.

6 Elly, Statik sınıflar ve yöntemler

- İşte yeni ve ilginç bir konu. Size statik değişkenler ve yöntemlerden bahsetmek istiyorum. - Statik değişkenleri zaten duymuştum. Statik yöntemler hakkında da sanırım. Ama daha fazla ayrıntıya sahip olmak istiyorum. - Bir sınıfta değişkenleri bildirirken, bu değişkenlerin tek bir paylaşılan örnekte mi yaratıldığını yoksa her nesne için kopyalarının mı oluşturulması gerektiğini belirtiriz. Varsayılan olarak, bu sınıfın her nesnesi için sınıf değişkeninin yeni bir kopyası oluşturulur. İşte göründüğü gibi: - cat1.name ve cat2.nameEski Seviye 06 - 14 değişkenleri aynı sınıfta bildirilse de - Cat, farklı nesnelere bağlı oldukları için farklı değerler depolarlar. - Apaçık. - Tek bir örnekte statik bir değişken var; bir sınıf adı kullanarak erişmeniz gerekiyor: Eski Seviye 06 - 15- Bu da açık. - Sınıf yöntemleri de iki kategoriye ayrılır. Sıradan yöntemler nesne üzerinde çağrılır ve bu nesnenin verilerine erişime sahiptir. Statik yöntemlerin böyle bir erişimi yoktur çünkü bir nesne referansı yoktur. Statik yöntemler, bu sınıfın statik değişkenine veya diğer statik yöntemlere erişebilir. - Statik yöntemler, statik olmayan yöntemlere veya statik olmayan değişkenlere erişemez! - Neden öyle? - Her sıradan sınıf değişkeni bir nesnenin içine yerleştirilir. Herhangi bir yöntem, yalnızca o nesneye bir referansı olduğunda bu değişkene erişebilir. Böyle bir başvuru, statik yönteme geçirilmez. - Ya sıradan yöntemler? - Sıradan yönteme, bu yöntemin çağrıldığı nesneye gizli referans iletilir. Bu referansı saklayan değişkene this denir . Böylece, yöntem her zaman kendi nesnesinin verilerini alabilir veya aynı nesnenin statik olmayan başka bir yöntemini çağırabilir. - Nesne başvurusu yerine statik bir yönteme bir boş değer iletilir. Bu nedenle, statik bir yöntem, statik olmayan değişkenlere ve yöntemlere erişemez - yalnızca bağlı oldukları nesneye referansı yoktur. - Anlıyorum. - Statik olmayan sıradan yöntemler böyle çalışır: Eski Seviye 06 - 16- Statik yöntemler de böyle çalışır: Eski Seviye 06 - 17- Bir değişken veya yöntem, static anahtar kelimesiyle bildirilmişse statiktir. - Ve eğer bu kadar sınırlıysa, bu tür yöntemlerin ne faydası var? - Bu yaklaşımın da avantajları vardır. - İlk olarak, statik yöntemlere ve değişkenlere erişmek için herhangi bir nesne referansı iletmeniz gerekmez . - İkincisi, bazen değişkenin türünün tek örneği olması gerekir . Örneğin, System.out değişkeni gibi (System sınıfından statik değişken). - Ve üçüncüsü, bazen herhangi bir nesne yaratabilmeniz için önce bir yöntem çağırmanız gerekir . - Hangi vesileyle? - Neden main yönteminin statik olarak bildirildiğini düşünüyorsunuz ? Herhangi bir nesne oluşturmak mümkün olmadan önce sınıf belleğe yüklendikten hemen sonra onu çağırmak .

7 Risha, Statik sınıflar ve yöntemler

- Statik metotlara ek olarak statik sınıflar da vardır . Bu durumu daha sonra ele alacağız, size bunun bir örneğini göstereceğim: Eski Seviye 06 - 18- Cat sınıfından istediğiniz kadar nesne oluşturabilirsiniz. Tek bir örnekte bulunan statik bir değişkenin aksine. - Bir sınıf bildiriminden önce static değiştiricisinin ana amacı, Cat sınıfı ile StaticClassExample sınıfı arasındaki ilişkiyi sürdürmektir . Genel olarak konuşursak, Cat sınıfı StaticClassExample nesnesine bağlı değildir (gizli referansı yoktur) ve sıradan (statik olmayan) StaticClassExample değişkenlerine erişemez. - Diğer sınıfların içinde sınıflar oluşturabilmem için mi? - Evet. Java bunu mümkün kılar. Şimdi, bunun hakkında fazla düşünme. Daha sonra başka şeyler de açıklayacağım ve her şey biraz daha kolaylaşacak. - Umarım.

8 Diego, Statik yöntemdeki görevler

- Selam dostum! Statik yöntemlerle ilgili bazı ilginç görevler şunlardır:
Görevler
1 1. Cat Sınıfı ve statik değişken catCount Cat sınıfına bir statik değişken int catCount
yazın . Verilen değişkenin 1 artırılması gereken bir yapıcı [ public Cat() ] oluşturun.
2 2. Statik yöntemler: int getCatCount() ve setCatCount(int)
Cat sınıfına iki statik yöntem ekleyin: int getCatCount( ) ve setCatCount (int).
3 3. Sınıf Kullanımı
Statik bir yöntem uygulayın double getDistance(x1, y1, x2, y2) . Noktalar arasındaki mesafeyi hesaplamalıdır. Geçen parametrenin karekökünü hesaplamak için double Math.sqrt(double a) yöntemini kullanın.
4 4. ConsoleReader Sınıfı
4 statik yöntemi olan bir ConsoleReader sınıfı yazın:
- Klavyeden dizeleri okumak için string readString()
- sayıları klavyeden okumak için int readInt()
- klavyeden kesirli sayıları okumak için çift readDouble()
- void readLn () enter tuşuna basmayı beklemek için [readString() kullanın]
5 5. StringHelper Sınıfı
2 statik yöntemi olacak bir StringHelper sınıfı yazın:
- String multiple(String s, int count), stringin tekrarlanan sayım sürelerini döndürmelidir.
- String multiple(String s), 5 kez tekrarlanan string s'yi döndürmelidir.

Örnek:
Amigo → AmigoAmigoAmigoAmigoAmigo

9 Profesör, nesne statik kapsamı ve ömrü

Eski Seviye 06 - 19- Yine ben. Ne yazık ki, bugün size herhangi bir bağlantı veremem. O harika dersler bir yerlerde kayboldu. Korkarım bugün kendi başına yapmak zorundasın. Ama Elly ve Risha'yı daha çok dinlesen iyi olur, sana her zaman bir şeyler öğretebilirler. Yine de şunu deneyin: Nesne Yaşam Döngüsü

10 Temmuz

- Selam dostum! Bugün harika bir iş çıkardın. Bu yüzden sana daha fazlasını veremem. Haydi oturun, gösteri başlıyor:

11 Kaptan Sincap

- Merhaba asker! - Günaydın efendim! - Size harika haberlerim var. İşte becerilerinizi pekiştirmek için hızlı bir kontrol. Bunu her gün yapın ve becerilerinizi hızla geliştireceksiniz. Görevler, Intellij IDEA'da yapılacak şekilde özel olarak tasarlanmıştır.
Intellij Idea'da yapılacak ek görevler
1 Cat sınıfı ve statik değişken catCount Cat sınıfına public int catCount
statik bir değişken yazın . Bir yapıcı [public Cat()] oluşturun. Bir cat (yeni bir Cat nesnesi) oluşturduğunuzda catCount statik değişkeninin 1 artmasına izin verin . 10 nesne Cat oluşturun ve catCount değişkeninin değerini görüntüleyin .
2 2. Statik kediler
  1. Cat sınıfına bir genel statik değişken olan Cats (ArrayList<Cat>) ekleyin.
  2. Ne zaman bir cat (yeni bir Cat nesnesi) oluştursanız, bu yeni cat'ın cat değişkenine eklenmesine izin verin . 10 nesne oluşturun Kat.
  3. printCats() yöntemi tüm kedileri göstermelidir. Yöntemde kediler değişkenini kullanmanız gerekir.
İpucu: cat
değişkeni oluşturmak için kod satırını kullanın: public static ArrayList<Cat> cats = new ArrayList<Cat>();
3 3. Bir statik değiştiriciyi taşıyın
Kodun derlenmesi için bir statik değiştiriciyi taşıyın.
4 4. Minimum sayıda statik anahtar sözcük Kodun derlenmesini ve programın başarıyla tamamlanmasını sağlamak için
minimum sayıda statik anahtar sözcük ekleyin.
5 5. Yeni fikirler var mı? Düşünelim...
  1. Çözüm sınıfına genel bir statik sınıf Fikri yazın
  2. Boş olmayan herhangi bir iletiyi döndürmek için Idea sınıfına public bir String getDescription() yöntemi yazın
  3. Çözüm sınıfında, fikrin açıklamasını görüntülemek için statik bir yöntem olan public void printIdea(Fikir fikri) oluşturun - bu, getDescription() yönteminin döndürdüğü şeydir
6 6. KissMyShinyMetalAss
KissMyShinyMetalAss adında bir sınıf yazın. Bu sınıftan bir nesne oluşturun, ardından ekranda görüntüleyin.
7 7. Üç statik değişken adı
3 genel statik değişken yazın: String Solution.name , String Cat.name , String Dog.name
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION